Houdini制作程序化藤蔓HDA 学习笔记(Part 1 主干)

此文章主要用于记录Houdini Titan项目制作用于在Ue中使用的HDA资产,仅用于个人记录,如果不正确之处请大家及时帮我指正。

由于文章篇幅比较长,图文量较大,以多章方式发布。

B站视频链接:UE5&Houdini技术项目Project Titan官方教程及开发过程合集持续更新[中英双字机译]_哔哩哔哩_bilibili

 原视频链接:

Project Titan | SideFXProject Titanhttps://www.sidefx.com/titan/首先创建随便一个形状的物体,最好是有朝下方向平面的形状,因为要测试向下方垂着的藤蔓。

并且Merge在一起

 接下里添加一个Remesh to Grid节点

此步是为了解决模型布线不一,导致最后输出效果不尽人意的问题。

按W观察其布线密度,Division Size为0.1足矣。

接下来添加一个Peak节点,此节点的作用是将模型表面往外推出一定距离,解决生成出的藤蔓与模型表面完全重叠,导致藤蔓与模型穿模的问题。

给到一个Distance = 0.02即可,如有不合适后续再更改。

接下来添加一个Clip节点用于裁剪底部,毕竟底部不会产生藤蔓,除非是个浮空的东西,因为这是一个需要有是否底部生成需求的节点,那么我们需要在属性里写一下表达

由于在Houdini中Y是高度轴,那么我们需要在Y轴一栏中填写bbox(0,D_YMIN)

鼠标悬浮是还会提示关于bbox()的写法,其实就是获取到了物体最大范围边框的底部D_YMIN

那么在此基础上调整属性内的Distance即可控制藤蔓的最低处从哪里开始生成,暂时给到0.1


 接下来创建一个attribnoise节点用来在物体表面上生成一些噪波图形

  1.  首先要把数据类型从vector(向量)改为float(浮点)
  2. 并且将其更名为mask
  3. 最后点积导航一样的图标来在窗口预览

 如果预览出来是彩色的,那么你需要多一步操作

 在齿轮中选中Grayscale(灰度),那么就能够看到和我一样的灰度噪波图了

 

 接下来添加一个Blast节点,用于控制藤蔓生成范围,其实就是把不需要的地方给删除掉了

从上至下依次是

  1. 写出表达式 @mask>0.4 ,用于表达只获取灰度值大于0.4部分的区域
  2. 将组模式更改为Points(点)
  3. 勾选Delete Non Selected(删除未选中),类似于反选

最后得出如下结果,那么这就是藤蔓生长的区域了

 


此时还需要再添加一个attribnoise节点,这个节点用于控制藤蔓的生长密度

和上面一样,数据类型改为Float,数据名称这次改为density,并且调整噪波的强度以及尺寸

就能得出如下结果:

 紧接着创建Scatter节点,用于在模型表面随机散布一些点

它默认会采用数量方式,我们需要将其取消勾选,以密度生成,观察点的分布情况,最后给到Density Scale = 100 ,得出以下结果

 我希望获取到其中大概50个点作为我的藤蔓生成起点,创建一个grouprange节点,并且将Start的值调整为50并且将其命名为beginPts,再把数据类型更改为Points,同时也要把Invert Range勾选上以反选这些点得出正确的结果

但是这些点都飞在奇怪的地方肯定不行,因为在随机散布点的时候每一个点的编号乱掉了,所以需要重新排一下序,在grouprange节点之前添加一个sort节点。并且把Point Sort类型改为 By Y,从Y轴以下往上,从小到大进行排序,结果便是正确的了

 


 然后添加Labs Random Selection节点用于随机选择一定量的点(注意此节点必须安装Labs)

 从上往下依次是

  1.  将比率改为0.3,意思是接近1/3的点
  2. 勾选上,将这些随机选中的点创建成一个组
  3. 将这个组命名为endPts

 我们现在拥有了起始点beginPts和结束点endPts,我们接下俩要把他们都连接在一起

创建出Connect Adjacent Pieces节点,此节点用于连接相邻的元素,首先需要把连接类型(Connection Type)更改为Adjacent Points(相邻点),再将Max Search Points(最大寻点数)更改为8,因为对于我们的需求来说默认值1000太过于大了,能够得出如下结果:

 接下来要完成最基础的藤蔓生长路径了,在上一步我们将所有的点连接到了一起,现在应该寻找到每一条路径最短的行程,Houdini内置了一个节点为我们解决这个问题,find shortest path,其中的属性需要我们填写一下

Start Poiunts(起始点)填入我们的beginPts

End Points(结束点)填入我们的endPts

然后将Output paths(输出路径类型)更改为From any start to each end(每一个起始到结束的循环)

哒哒!我们有了藤蔓的雏形

 接下来添加一个Labs Delete Small Parts节点用于删除路径过短部分的藤蔓毛刺

Mode(模式)更改为Permeter

Threshold(阈值)更改为0.2

即可将过小部分的藤蔓删除掉

 

 添加一个Carve节点用于控制藤蔓生长的多少,下图分别为属性Second U = 0.3,0.6,0.9的效果

 

 主干部分到这里就结束了,下一章是主干部分的点数优化以及支干的制作。

 

 

 

 

 

 

 

 

 

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值