Maya硬件渲染粒子与软件渲染元素结合(3)
2006-04-05 19:41:11 来源:WEB开发网III、创建一个特效装备
在完成一个作品时,越多的给予使用者超越解算的控制越好,基于这种考虑,越复杂的参数设置会使使用者工作起来越困难。
你想要做的最后一件事就是:提供终端使用者一个复杂的表达式,这需要调试每个镜头。创建一个控制装备,用它驱动一个表达式的结果,你就可能给终端使用者一套控制表示式(表示式控制场景)的工具,这样,他们就不用自己编辑表达式就可以控制场景。
1、选择发射器和粒子物体,把它们编成组。
2、重新命名结果组节点为dustcontrols
3、选择组节点,并打开AddAttribute窗口
4、添加下面的属性,维持Float,Scalar属性:
rate
rateRand
randSpeed
发射的表达式:
float$rate=100;
float$rateRand=0.5
float$radomSpeed=10;
替换成
float$rate=dustControls.rate;
float$rateRand=dustControls.rateRand
float$radomSpeed=dustControls.randSpeed;
现在你可以从表达式外控制这些变量。
控制节点的通道盒应该仅仅显示相关的属性,那些对解算没有影响的属性应该被挪开。变形属性,旋转属性和缩放属性不需要用来控制解算,所以,可以用channelControl窗口将它们关掉。将它们从通道盒挪开之前,先锁定它们,这样,使用者就不会偶尔变形,旋转或缩放该组。
IV.创建尘土粒子运动
1、重新命名particle1为dustParticles
2、设置ParticleRenderType为SPRites
3、设置InheritFactor为0.2
4、点击play
粒子紧随车后,注意粒子能随在车后多长距离,那些以随意爆发速度发射的粒子是怎样漂浮远去的。粒子保存属性设置为1,意味着每帧保持100运动。既然粒子继承了发射器20的运动,粒子就收到初始的爆发速度。粒子绝不会丢失速度,会继续沿着那个方向运动。
1、选择dustParticles
2、设置conserve为0.9
现在回放场景,你会看见粒子最初随着汽车运动,但是它们会很快就丢失向前运动的动力并开始落后,最后停止运动。
降低conserve,你可以用场来更好地控制粒子的运动。
1、创建一个紊乱场并指派到尘土粒子
2、设置Magnitude为100
3、设置Attenuation为0
4、设置Frequency为3
5、点击play
粒子在紊乱场内继续运动并在随意方向扩展范围。紊乱场是3DNoise,就像一个三维程序上的纹理。将声音视为一个大理石质地的纹理,如果你动画纹理布置,你就会在空间运动三维声音。
选择dustControls节点,添加一个turbulenceRise属性,设置其值为0.1。
打开你一直在用于发射的表达式,在它的最后添加一行:
//TurbulenceRise
//
TurbulenceField1.ty=dustControls.turbulenceRise*frame;
当你回放场景时候,你看见尘土粒子沿Y轴向上运动,这是因为紊乱纹理随着场的变换而向上运动,粒子继续被这些纹理吸引。
依靠你正试图创建的尘土类型,不管它是一种细而轻的像粉笔一样的东西,还是更重的像被汽车踢起的泥土,在Y轴运动的紊乱场参数都会给你的粒子重力感觉:
不像气态物质,比如烟雾或者蒸汽(固体或液体变化成一种气体并升上天),尘土会保持固体状,但它是一种非常轻的固体,可以踢到空气中,并逗留在最轻的空气流上,最后落地。尘土越厚,就越重,落地越快。要获得尘土落地运动状态,做到以下两点:
1、创建一个重力场并指定给dustParticles
2、设置重力场magnitude为2
回放时候,即使紊乱场继续将粒子向上拉,粒子看起来还是更重。对于这种效果,重力场的大小与场景大小不相关。对重力场的magnitude调整,应该建立在你追求的外观基础上。
粒子现在穿透了地面,如果是一个非常细小的尘土,粒子落到地面就ok了,但是对于一个更厚重的尘土,你希望地上尘土堆积得厚重一点。
1、选择地面平面、粒子,并碰撞。
2、设置TessenllationFactor为2000
3、设置Resilience为0.1
4、设置Friction为0.3
粒子堆积在地上,它们就像是被重力拉下来的,接着又被紊乱场拉上天。赋予紊乱,粒子就像是液体在运动。
更多精彩
赞助商链接