MAYA最令人称道的是它的粒子—动力学技术,这使用建模和动画方面的技术不可能实现的效果成为可能,比如爆炸,旋风或者成群飞舞的昆虫。maya的粒子—动力
学
系统相当强大,一方面它允许使用相对较少的输入方便的控制粒子的运动,令外可与各种不同的动画工具混合使用,也就是说可以与场,关键帧,Expressions
等相当方便的结合使用。MAYA粒子—动力学
系统让即使在控制大量粒子时的交互性作业成为可能。
以下的教程能帮助读者逐步了解MAYA粒子—动力学
系统的使用。它将描述使用粒子相对快捷的建立一个爆炸效果的过程,但maya基础使用命令将不再一一详述。大
部分内容对于有经验的读者应相对容易理解,最后教程还会对重要步骤给出附加信息和注释。
粒子设置:
1.首先设置一个directional Emitter(Base)
粒子发射器。directional Emitter发射的粒子要与另外三个发射器:Omni Particle Emitter"(Fire, Smoke & Sparks)通过Emit from Object相联接。
2.Base粒子发射器有以下属性:Direction Y = 1 , Direction X = 0, “Spread” = 0.7, “Speed” = 5
3.Base发射强度Rate设置关键帧为:frame 0 = 0, frame 60 = 100, frame 70 = 0
Grapheditor里改用Stepped类型的Tangenten 见图
4.设置Fire, Smoke 和 Sparks发射器为:
Fire_Emitter: Rate = 35 Speed = 0.2, NormalSpeed: 0.3
Smoke_Emitter: Rate = 30, Speed = 0.2, NormalSpeed = 1
Sparks_Emitter: Min Distance = 0.3, Rate = 50, Speed = 0.7, SpeedRandom = 0.3, Normal Speed = 1
5.粒子特性设置为:见图1—3
Fire_Particle:
Dynamics Weight = 0.3, Inherit Factor = 0.5, Lifespan: Random range (3.000 / 0.500), Particle Render Type: Cloud (s/w)
- radiusPP* = Ramp, Vinput = particle age, Array Mapper Min: 0.100,
max 0.300
- rgbPP* = Ramp, Vinput = Particle age, ramp 由白到黄
Smoke_Particle:
Inherit Factor = 0.4, Lifespan: Random range (8.000 / 2.000), Particle Render Type: Cloud (s/w)
- radiusPP* = Ramp, input = particle age, Array Mapper Min: 0.000,
max 1.300
Sparks_Particle:
Inherit Factor = 0.5, Lifespan: Random range (0.700 / 0.300), Particle Render Type: Tube (s/w), Radius0 = 0.100, Radius1 = 0.050,
Tail Size = 4.000
* 注: PerParticle Attributes必须通过"Add Dynamic Attributes"添加
rgbPP, radiusPP 表示 "RGB Color" 和 "Radius"要从PerParticle Atttibutes目录里选出,选取General项==> Particles项找到相应属性添加。然
后可以看到新添加的属性,右键建立ramp贴图,Vinput = particle age。再修改Arraymapper。
6.动画
添加重力场控制粒子动画,并与相应粒子建立连接。
GravityField1 施加于 Fire: Magnitude = 2
GravityField2 施加于 Smoke,Sparks: Magnitude = 0.5
TurbulanceField 施加于 Smoke: Magnitude = 1
7.材质设定
Sparks:设定color为亮黄色,transparency为低值,incascendance 为高。
Smoke: 在Life Transparency 用ramp控制颜色和透明度。浅灰和深灰的过渡,见图4。
Fire:在Life Transparency 用ramp控制颜色和透明度,但这里是透明度先减后加。见图5。Fire颜色已在rgbPP里确定了,但要通过Particle Sampler Info
Node与材质连接。这样做的好处不仅是可通过粒子寿命控制颜色而且可使用Expression控制。
ramp设定可见图1—5参考。
技巧:还有几个常用粒子技巧。一个常见问题是回放与最终渲染有偏差。这是由于粒子动画每次都要被重新逐帧演算。可以使用Create Particle Diskcache,这样粒子的位置就可以被存储并被随后用于渲染,而且可以缩放动画时间。另外应用Dynamic Relationships Editor连接场和粒子,方便关联建立和删除。举例如图。
Particle Expressions:最后再简单谈谈Particle Expressions。一个例子:发射器盘旋运动,同时粒子随机得到蓝色调并闪烁。
使用Omniemitter并设定Conserve Value为0.95。这样粒子的运动能量会随时间递减。
然后写个盘旋运动Expressions:
emitter1.translateX = time;
emitter1.translateY = sin (time);
emitter1.translateZ = cos (time);
再用PerParticle Attribut的 rgbPP写变色Expressions:
particleShape1.rgbPP = rand (<<.2,.2,.6>>,<<.3,.3,.8>>;
这里的<<.2,.2,.6>> <<.3,.3,.8>> 表示RGB值随机产生。如果作为Runtime expression使用,粒子每过一帧就会随机变色。
同理作闪烁Expressions:
particleShape1.opacityPP = rand (0,1);
可作这样的Runtime Expression:
particleShape1.opacityPP = particleShape2.velocity;
它会让Opacity值随粒子速度变化。可以再发展一下,使它们互相影响:
particleShape1.opacityPP = particleShape1.velocity * rand (0,1);
如上所示用几个公式集,数学变化和有趣的想象就可以做出各种各样的粒子效果。以上两个粒子可在MAYAforum.de
下载。