Maya粒子制作水面波纹
http://tech.ddvip.com 2007年08月19日 社区交流
内容摘要:本教程为Maya Master Class2003中的一篇。这个教程将教会你在粒子碰撞水面的准确位置产生波纹。
本教程为Maya Master Class2003中的一篇。这个教程将教会你在粒子碰撞水面的准确位置产生波纹。
1、碰撞事件
首先打开rippleStart.ma文件。可以看到这个场景中用上一个例子中的方法设置水流,我们现在想让粒子在碰到水面时产生波纹。选择粒子和水面。执行particles->make collide操作,再创建一个碰撞事件particle->particle collision events。

图1
将新生成的粒子与重力连接。设置geoconnector的值如图2。

图2
设置新生成的粒子(splash)的生命值为0.5。
2、波纹的运行规则
现在我们需要知道粒子击中的是nurbs曲面的哪个具体的位置。我们需要用collisionU和collisionV这两个属性。给粒子(P)添加collisionU和collisionV属性。粒子在没有击中曲面的时候,它们的collisionU和collisionV的值都会是-1。你可以把粒子的render type设置成numeric,然后在下面的attributeName里填上collisionU或者collisionV进行查看。

图3
我们想让粒子P一撞到曲面就让它消失,可以给粒子P写一个runtime表达式,如下:
if(collisionU!=-1)lifespanPP=0;
现在进行播放,粒子仍然会穿过水面,并没有消失。把粒子的lifespanMode设置为lifespanPP only.再播放,好了。现在我们需要记录一些数据,碰撞点的UV坐标和碰撞发生的时间。我们将用一个全局变量来记录这些数据,稍后用于波纹的纹理。用全局变量其它的表达式才可以调用这些数据。将前面的表达式替换为下面的:
责编:豆豆技术应用