用户名: 密码:

MAYA粒子特效:制作动态旋风特效(2)

2010-08-01 13:06:17 作者:未知 来源:互联网 网友评论 0

MAYA粒子特效:制作动态旋风特效

          现在给粒子的位置属性设置表达式:float $para=sin(1.57*particleShape1.age/particleShape1.lifespan);float $poi[]=`pointOnCurve -pr $para -p axis`;float $rad=0.6+pow(particleShape1.age/1.5,6);float $ang=particleShape1.age*3+(particleShape1.particleId+rand(0.1,0.3))*0.25;float $x=$rad*sin($ang);float $z=$rad*cos($ang);particleShape1.position=<<($x+$poi[0]),$poi[1],($z+$poi[2])>>;

\

  然后对梗骨骼的位移进行动画,龙卷风就会跑起来。下面,我来对表达式进行解释。

\

  float $para=sin(1.57*particleShape1.age/particleShape1.lifespan);这句大家可以发现"particleShape1.age/particleShape1.lifespan",particleShape1.age的值是从0到particleShape1.lifespan,而particleShape1.lifespan的值始终是2,不变,所以"particleShape1.age/particleShape1.lifespan"的值就是从0到1,而1.57是弧度值对应的角度值是90度。所以"$para=sin(1.57*particleShape1.age/particleShape1.lifespan)"的值就是从0到1,这是粒子中常用的技巧。
  而第2句float $poi[]=`pointOnCurve -pr $para -p axis`利用到了$para,我来解释下这句,pointOnCurve是个获得曲线信息的命令-pr是曲线参数命令,后面跟的是个数,而$para的范围正好覆盖了整个曲线,0-1(因为重建曲线时已经标总化,大家可以回头看看)-p得到的是每个点的空间坐标,是个失量,axis是曲线名,必须跟在后面.然后将得到的每个点的空间位置存在一个数组$poi[]中.记住加单引号,是ESC键下面那个,别搞错了。这样就找到了曲线上每点的空间位置信息.float $x=$rad*sin($ang);float $z=$rad*cos($ang);这两句比较好理解,是圆周运动必要的。前面的$rad是半径。float $rad=0.6+pow(particleShape1.age/1.5,6);用一个函数定义了半径的变化,也就是龙卷风从下到上的半径变化。为什么用这么一个函数呢?因为他的曲线符合我的要求,你们也可以用别的函数来定义。

关键词:MAYA粒子特效

[错误报告] [推荐] [收藏] [打印] [关闭] [返回顶部]

  • 验证码:

最新图片文章

最新文章