1 、创建一个简单的 nurbs-plane ,将它的 patches u 和 patches v 都设为 3 。 2 、选择这个平面,按 f4 进入动力学菜单,给平面一个粒子发射器,不过先进入命令后面的黑色方块按钮( optionbox ),设置发射器的选项,( f4 -%26gt; particles -%26gt; emit from object-%26gt; optionbox )。 我们准备让叶子往 -y 方向下落,将 emitter type 设为 surface , rate 为 10-20 之间(多少你自己看了),把 basic emission speed attributes 中的 normal speed 设为 -2 ,然后按 create 。你现在点播放动画,就会看到粒子了。 打开 outliner (大纲),选中 particle1 (粒子),给它一个 gravity (重力场),将 gravity 里面的 magnitude 设为 5 , attenuation 为 0 。 然后我们再加入 turbulence (扰乱场),将里面的 magnitude 、 attenuation 分别设为 10 和 0 ,这些设置只是我个人的,你如果觉得飘的慢或快,你也可以加大或缩小设置,看看效果。现在就我的过程中,还得在 particleshape1 里将conserve 设为 0.92 。 3 、现在,我们用 polygan 做一两张树叶,然后用( particle-%26gt;instancer )粒子替换命令,大家就会看到那些粒子变成树叶了 4 、 ctrl+a 打开( attribute editor )粒子属性,在 particle-shape 中的 add dynamic attribute 里点击 "general" ,创建新属性(设置如下图)。 5、 在 "per particle (array) attributes" 中,会看到新增加了一个属性 ——rotpp ,现在我们用鼠标右键点击它,创建一个表达式( creation-expression ),看下图: 设为 particleshape1.rotpp = rand (0,360); 6 、我们还得创建一个 runtime-expression (下图),来控制粒子的随机运动值。设为 particleshape1.rotpp += 0.001; "+=" 在这里面的意思是每帧加 0.001 的值。 7 、现在我们打开 particleshape 属性框,将 rotation options 里面的 rotation 设为 "rotpp" 。 8 、 我们按 play 测试动画,叶子在空中无规则的旋转飘落。 9 、 我们想象怎么能让叶子落到地面上去呢?其实很简单。我们再做个平面(如图),记住要比第一个面大。然后先选择刚做的平面,按住 shift 再选择 particle1 (就是叶子,也可在大纲视图里选),给它们一个( particles-%26gt;make collide )碰撞命令 , 设置 friction 为 0.8-1 (如图)。 10 、播放动画,大家会看到粒子落到地面后还是在那旋转,这不是我们想要的。我们还得进入表达式编辑器里设置 "velocity" 值( attribute-editor-%26gt;particleshape ) , 在 per particle (array) attributes 里的 "rotpp" 上用鼠标右键点击,然后编辑 runtime 表达式。我们增加新的一小段 mel (如图)。 11 、现在粒子落到地面不会动了:)因为速度周转率为 0 ( velocity=0 -%26gt; $vel=0 ),完成。 |
关注Cgsousou
关注Cgsousou