Maya硬件渲染粒子与软件渲染元素结合(3)

4/5/2006来源:Maya教程人气:8225

Maya硬件渲染粒子与软件渲染元素结合
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

  粒子堆积在地上,它们就像是被重力拉下来的,接着又被紊乱场拉上天。赋予紊乱,粒子就像是液体在运动。