|
首先在场景中创建一个多边形杯子的一个平面做为水面,如图。 
点击菜单Particles > Create Emitter 创建发射器,进入创建属性。设置如下: Emittler Type发射器类型为:Volume (体积); Volume Shape体积形状:Cylinder (圆柱体); Along Axis沿着轴大约为:1。
将速度改为10个单位左右。 
选择粒子,给予菜单Fields >Turbulence (紊乱场)。 Magnitude为: 1; Attenuation为: 0。 
再选择粒子,点击菜单Fields > Uniform (统一力场),Direction Y : 1。 
打开粒子属性点激General创建属性。从Add Attribute中选Particle粒子,在列表中找到radiusPP 项并创建。再在radiusPP栏上右键Creation Expression 创建表达式使粒子在0.1-0.2之间随机大小变化,如下图:particleShape1.radiusPP = rand( 0.1 , 0.2 )。 
分别选择杯身和水面,分别执行菜单Particles > Make Collide命令,使杯和水面和粒子产生碰撞。 
打开Windows >Relationship Edits>Dynamic Relationships 动力学关系窗口,左边选择粒子,选择模式为collision(碰撞)把杯和水面都选上使碰撞生效。 
再在场景中创建一个定位器,移动到大约在水面的位置,并改名为water_height。

打开粒子属性Lifespan Mode,并将粒子寿命改为lifespanPP only控制。再在lifespanPP栏上右键进入Creation Expression创建表达式,如图。 
再右键lifespanPP栏,进入Runtime Before Dynamic Expression,创建表达式,如图。使用if语句,关键字if可使表达式两个或多个项目比较结果做决定,water_height就是上面创建的定位器,= rand(13) 中的13用来控制粒子在水面停留时间。可以随意调整。 
最后效果出来了,如图。 
对于在本教程的学习中遇到任何疑问或有更好的建议,请到技术论坛讨论。
|