您所在的位置:首页 > CG多媒体 > 3DMAX > 正文
3DSMAX图文教程:事件驱动粒子系统——喷泉效果(三)
http://design.chinaue.com 2008-9-24 14:55:15 中国大学生网 我要评论() 

  5)事件“溅起水花_event”设置好了,那么父粒子从哪里来呢?很显然,落到水面上的粒子就是“产卵”的父粒子。

  拖动事件“粒子发射_event”中collision 01运算符的输出手柄到事件“溅起水花_event”中的spawn运算符的输入手柄上释放鼠标。



  6)这时如果播放动画可以看到一个缺陷,就是溅起的小水花运动速度有点夸张,像爆炸的弹片一样四散飞离。我们需要添加一个drag(阻力)空间弯曲来延缓其运动。

  a.暂时退出粒子视图,打开create(创建)->space warps(空间弯曲),单击drag按钮在场景中拖动,将这个空间弯曲命名为“减速_drag”,进入修改面板设置其作用的时间和动画等长,x、y、z三个轴向的强度均设置为5%。

  b.回到粒子视图中,拖放一个force运算符到事件“溅起水花_event”中,放在spawn 01测试下方,选择这个新建立的force 01运算符,在右侧的属性面板中单击add或者by list按钮选择空间弯曲。

  7)拖放一个delete运算符到事件“溅起水花_event”中,放在最下方,选择delete 01,在右侧的属性面板中选择remove(删除)方式为by particle age(按照粒子生命),设置life span(生命长度)为20左右。




  7、涟漪效果

  现在我们开始制作水面上的涟漪,显然形成涟漪的事件应当接受来自事件“粒子发射_event”中的collision测试的输出。制作涟漪效果可以使用shape mark运算符。

  1)在粒子视图中,从下方的运算符库中拖放一个shape mark运算符到上方视图的空白出,这样会自动建立一个新事件,将其命名为“激起涟漪_event”。



  我们需要将事件“粒子发射_event”的collision测试的输出和事件“激起涟漪_event”的splash mark运算符的输入连接起来。但是在前面的操作中我们已经将collision输出指向事件“溅起水花_event”了。所以还必须想办法“分流”出一部分粒子。

  2)从粒子视图下方的运算符库中拖放一个split amount测试到事件“溅起水花_event”中,并放置在最顶端。

 3)将split amount的测试输出和事件“激起涟漪_event”的输入连接起来。



  4)选择shape mark 01运算符,在右侧的参数面板中单击contact object按钮,然后在场景中单击选择水面物体(watersurface)。



  现在我们来理一下思路,在事件“粒子发射_event”中粒子不断产生(由rate、speed等运算符控制产生的数量和速度),这些粒子经过collision检测的测试,凡是和空间弯曲“水面_pomniflect”发生碰撞的粒子都会被传递给事件“溅起水花_event”,“溅起水花_event”通过split amount运算符将一部分粒子交给事件“激起涟漪_event”处理,在“激起涟漪_event”中我们就要通过shape mark 01运算符来模拟水面的涟漪效果。

 5) 这时如果播放动画可以看到,当粒子碰到水面时,水面上会出现微小的多边形,但是面积太小,几乎看不见。打开shape mark 01的参数面板,在in world space中设置width和length为较大的值,比如20左右。



  6)现在还有一个比较棘手的问题,那就是水花落到水面时出现的涟漪是逐渐扩大的,如何制作这种效果呢?我们可以使用scale运算符。

  从下面的运算符库中拖放一个scale运算符到shape mark 01运算符下方,注意位置不能放错,否则就失效了。选择这个新添加的scale运算符,设置其type(类型)为relative first,scale factor(缩放指数)均为10%,scale variation(缩放变化)均为5%。


 

1页;当前位置:1/1 [1]
现有人对本文发表了评论   [查看所有评论]
匿名发表 申请加精