浙江铃声推荐联盟

Houdini流体粒子龙卷风特效制作教程part1

电影特效报告2019-06-18 03:27:11

制作原理

通过建立一个球体并scatter(离子化)后,球体表面会产生点,通过copy节点将这些点复制,然后再创建一条S形曲线,通过VCP节点将球上的点按照曲线进行排列,也就可以实现曲线控制形态的效果。

曲线设置

创建一条S形态的曲线,然后利用transform调整好位置

创建并连接Point-Old节点,在Force选项中找到Edge Force选项,设置为Add Edge Force 

创建Attribute Rename(可删除或重命名点或面的属性)节点,利用其功能将edge_dir属性命名为tangent

创建一个Null命名为OUT_GuideCurve(养成用NUll作为结束点)

球体设置

创建一个球体,类型为primitive

创建scatter节点

Scatter geometry node

通过物体表面或一定体积随机得散射出新的点。

这个数值会影响后面的totalPoints和cruveCount


球体连接scatter后,就会以点的形态呈现出来

接着我们要思考一下我们所需要的数据:

点的数量属性名、点的序列、复制后点的序列点的总数量以及初始位置(球体上的点与线段的点相减获得的初始位置向量)。

很难理解的话我们可以用十个定位器来显示所求坐标的位置。

这些定位器分别对应在球体上点的位置


获取点位置的信息:

创建attribvop然后命名未attribvop_restPos,点击进去,创建节点如下

Bind VOP NOTE 讲解

可以将自定义的属进行映射,并在其他的VOP节点中使用(必须使用attribvop节点创建)。



创建copy节点,NumberofCopies设为100,Stamp勾选:

Variable 1:lookup Value 1:$CY

接着我们用attribcreate节点给球体创建一些属性


cruveCount(曲线总数)【类型:integer】

value:npoints(opinputpath(".",0))


cruve_Id(曲线ID)【类型:integer】

value:$PT


lookup(复制序列数)【类型:integer】

value:stamp("../copy1/","lookup",0)

创建一个Null命名为OUT_points(养成用NUll作为结束点)

创建attribvop命名attribvop_CurveTangent,将OUT_points 和 OUT_GuideCurve两个节点,然后双击这个VOP节点进行设置。


设置attribvop_CurveTangent

几乎所有的曲线效果都在这个VOP节点里设置,

我们大致可以把数据分为 数据采样、轮廓、路径方向、旋转效果、噪波等,下面是完整的VOP连接示意图

连接示意图

数据采样区的设置

路径区的设置

轴向区的设置

旋转区的设置

噪波区的设置

输出区的设置

小知识点

Fit Range VOP node  的工作原理


原 理 剖 析


例如fit(.3,0,1,10,20)结果是13

0.3在【srcmin,srcmax(使用源范围)】0-1范围内

它将【destmin,destmax(目标范围)】10-20划分为了10个数

0.3在0-1范围内属于排第三,那么输出结果在目标范围内的第三个数即13


fit(.03,0,1,10,20)结果是10.03

0-1被划分为了100个数(1/0.01=100)(0、0.01、0.02、0.03.....0.98、0.99、1)

10-20之间也就被划分为了100个数,每个数递增顺序为(10.01、10.02、10.03......19.08、19.09、20)


Ramp Parameter VOP node  的工作原理

输入的值是Ramp对应索引值,这个索引对应的值才是结果值

控制效果

下一章我们会对所有参数进行一个界面化的处理方便调试


点击“阅读原文”获取源文件