Houdini动态图形设计案例解析
上QQ阅读APP看书,第一时间看更新

↘ 1.用粒子碰撞分裂模拟水花

1 在Houdini的obj模块,按下Tab键弹出搜索菜单,然后按下G键,搜索到Geometry节点,单击创建,如下左图所示。

2 删除file文件,用上面的方法建立circle节点,调节Center(中心位置)为5,将圆形移动到视图的上方,如下右图所示。

3 建立POP Network节点,这样就创建了一个粒子系统,然后单击circle1节点下方的下三角,拉出虚线到popnet1节点上方第一个接口点击鼠标,虚线变实线证明链接完成,如下左图所示。

4 建立grid节点,设置Grid下Size(大小)的X、Y分别为10、20,然后链接grid节点到popnet1节点的第二个接口,单击popnet1右侧的立方体图标为紫色,眼睛图标为蓝色,模板显示当前节点,如下右图所示。

5 双击popnet1节点进入内部,建立source节点,然后调节Geometry Source为Use First Context Geometry(使用第一接口为粒子发射源),如下图所示。

6 继续调节粒子发射器的各项参数,Impulse Activation(脉冲发射开关)为$FF==1,即只在第一帧发射粒子;Impulse Birth Rate(脉冲粒子出生速率)为1,即每帧发射的粒子数量为一个粒子;Const.Activation(恒定发射开关)为0,即每秒钟发射粒子的开关关闭;Const.Birth Rate(恒定粒子出生速率)为100,即每秒钟发射的粒子数量;Birth Probability(出生概率)即粒子在模型单位面积上粒子的分布数量、数值愈大,粒子单位面积数量愈多、愈聚集,可以理解为疏密程度;Birth Group(粒子组)为a1,即产生的粒子在一个组内;勾选Preserve Group(保护组,即在变化时间内产生的所有粒子在同一个粒子组内);Life Expectancy(粒子生命周期)为100秒,即粒子100秒后消亡;Life Variance(随机粒子生命周期)为0秒,该值在粒子生命周期上进行随机增加或减少,如下图所示。以上粒子属性的使用频率很高,希望大家认真领会,正确使用。

7 继续调节各参数,更改Initial Velocity为Set initial velocity(设置初始速度),Velocity(速度)y轴的数值为-3,Variance(速度变量)为0,如下图所示。

8 增加color节点,在Source Group下选择粒子a1组,然后在Color上单击鼠标右键,在弹出的菜单中选择Delete Channels(删除通道命令),接着设置颜色为白色,便于视图粒子的查看,如下图所示。

9 建立collision碰撞节点,在Source Group下选择a1组,然后设置Geometry Source为Use Second Context Geometry(使用第二个接入口),即使用grid1平面作为粒子发射源,Behavior(行为方式)选择Die on Collision(碰撞消失),Collision Event(碰撞事件)为a2,这里注释一下其他选项:Bounce on Collision(碰撞弹跳),Stop on Collision(碰撞停止),Stick on Collision(碰撞粘黏),Slide on Collision(碰撞滑动),如下图所示。

10 建立split(分裂)节点,然后在Activation中输入popevent(“a2”)开启碰撞事件,接着设置Birth Probability(分裂粒子数量)为250,Birth Group为a3,勾选Preserve Group保护组,Life Expectancy(粒子生命周期)为3秒,Life Variance(随机生命周期)为0.5秒,Initial Velocity为Set initial velocity(自定义粒子速度),Velocity(速度)的y轴为3,Variance(速度变量)为1,如下图所示。

11 添加drag节点,默认设置即可,如下图所示。

12 添加force节点,然后设置Force(力)的y轴为-2,接着设置Noise下Frequency(频率)的xyz轴分别为3、2、5,Amplitude(振幅)的xyz轴分别为2、1、2,如下图所示。

13 添加speedlimit(速度限制)节点,然后设置Source Group为a3,Speed Limit的最小值为rand($ID)/2,最大值为rand($ID)*5,如下图所示。

14 播放动画,查看粒子的形态,可以看到圆盘向下发射了一颗粒子,粒子碰到地面后分裂散发出少许粒子,这些粒子受到重力的影响缓缓下落,如下图所示。

15 添加color节点,将颜色调为红色,如下图所示。

16 选择节点split1、drag1、force1、speedlimit1、color2,然后按下Control+C与Control+V组合键,复制一组,接着选择复制出的split2节点,更改Velocity的y轴为3.5,如下图所示。

17 选择force2节点,然后更改Frequency的xyz轴的数值分别为3、4、1,Amplitude的xyz轴的数值分别为2、2、1,如下图所示。

18 将Geometry与粒子重新命名为splash001,并更改color3(颜色)为绿色显示,如下图所示。

19 添加collect粒子合并节点,将两组节点合并在一起,如下图所示。

20 播放动画,在视图中显示粒子的形态,红色的为第一组创建的粒子,绿色的为复制的第二组粒子,如下图所示。

21 继续增加collision2节点,然后更改Geometry Source为Use Second Context Geometry(第二个接入口),即sop下的grid1平面,Behavior为Die on Collision(粒子碰撞到地面后消失),如下图所示。

22 播放动画,此时下落的粒子碰撞到grid1平面后消失,如下图所示。

23 单击层级图标或按下U键返回上一级sop级别,添加delete节点,然后在Group下选择a1,即为圆盘发射的那颗粒子,接着设置Entity(类型)为Points(点类型),删除该粒子,只保留分裂出的粒子,如下图所示。

24 选择splash001与delete1节点,然后按下Control+C与Control+V组合键,复制出一组,并重命名为lizi001,接着双击该节点进入内部,删除右侧部分的节点,选择左侧的split1节点,更改相关参数,如下图所示。

25 修改split(分裂)节点下的Birth Probability(分裂粒子数量)为500,Life Expectancy(粒子生命周期)为3,Life Variance(随机生命周期)为2,然后设置Set initial velocity(自定义粒子速度),Velocity(速度)的y轴为-15,Variance(速度变量)的xyz轴的数值分别为5、10、5,如下图所示。

26 选择drag1节点下的Scale为3,如下图所示。

27 选择force1节点,然后设置Force(力)的y轴为0.5,更改Frequency为0.5,Amplitude为0.6,如下图所示。

28 修改color2(节点颜色)为紫色,如下图所示。

29 为了使粒子的运动形态变化大一些,增加一个curlnoise1节点,然后设置Noise Type(澡波类型)为Alligator Noise,Amplitude(振幅)为1.6,其他节点不作调整,如下图所示。

30 再次复制出POP Network,并重命名为qiu001,然后按下I键或回车键进入内部,保留source1与collision2节点,将其余节点删除,如下图所示。

31 此时播放动画,在视图中的粒子形态如下图所示。在下面的制作中,需要将grid上面的粒子生成流体表面,以表现水滴落入水中后溅起的水花效果,grid下面的粒子表现水珠落入水中产生的气泡效果。