3DStudioMAX3通过专门的空间变形来控制一个粒子系统和场景之间的交互作用,还可以控制粒子本身的可繁殖特性,这些特性允许粒子在碰撞时发生变异、繁殖或者死亡。简单地说,粒子系统是一些粒子的集合,通过指定发射源在发射粒子流的同时创建各种动画效果。在3DStudioMAX中,粒子系统是一个对象,而发射的粒子是子对象。将粒子系统作为一个整体来设置动画,并且随时调整粒子系统的属性,以控制每一个粒子的行为。在3DStudioMAX1.0版本中,粒子系统只有Spray(喷射)和Snow(雪)两种,虽然它们是最简单的粒子系统但是效果很好,在制作流水、喷泉、灰尘时依然使用。并且高级粒子系统的创建思想也基于Spray和Snow的创建原则,只是加强了动画设计师控制粒子行为的功能。
本章将讲解基本的粒子系统,附带讨论3DStudioMAX3新粒子系统中增加的新功能。在不使用外挂模块的情况下3DStudioMAX3中共有6种粒子系统,基本粒子系统Spray(喷射)和Snow(雪)变化不大。高级粒子系统包括Blizzard(暴风雪)、PArray(粒子列阵)、Pcloud(粒子云)和SuperSpray(超级喷射),这些高级粒子系统增加了粒子“繁殖”选项,允许任意的对象成为一个粒子。每一种粒子系统都有一些相似的参数,但也都存在差异,如何优化它们的性能并运用于三维创作领域就看你的想象力了。
7.13DStudioMAX3的粒子系统
打开3DStudioMAX3粒子系统命令面板的方法是单击Create(创建)/Geometry(几何体),在下拉框中选择Particle Systems(粒子系统),我们看到6种粒子系统出现在面板中:Spray、Snow、Blizzard、PArray、Pcloud和SuperSpray,如图7-1所示。
图7-13DStudioMAX3的6种粒子系统
7.1.1粒子系统的创建
当在3DStudioMAX3中准备创建一个粒子系统时,不仅要确定粒子系统在哪里建立,而且还要确定其起始方向。起始位置被称为发射源。在视图中发射源以非渲染模式表示,用来说明粒子从何处来和到何处去。
1)用鼠标单击Spray(喷射)粒子系统的按钮,该粒子系统的所有可编辑的参数区卷展栏将显示出来。在顶视图中单击鼠标左键并拖动鼠标,建立一个矩形作为一个发射源。发射源是以一个平面同一条与该平面垂直且与它相交于中心处的小直线段定义的。如图7-2所示.与面垂直的线代表了粒子移动的方向,矩形面的尺寸将决定粒子从中射出的孔的大小。一个小的发射源会创建一个所有粒子集中于起始区域的对象,而一个大的发射源则扩大粒子的分布。在高级系统和某些第三方外挂模块中,任意一个对象均可作为发射源。当几何体作为发射源时,发射源的图标方向依然很重要。
2)现在你在视图中看不到发射源有任何粒子存在,这取决于当前视图处在哪一帧。因为粒子系统是基于时间的,在第0帧处,通常观察不到任何东西。下面拨动控制动画的时间滑块到0~100之间的任意一帧,我们看到很多粒子像雨滴一般洒落下来,如图7-3所示。发射源的喷射方向取决于在哪一个视图中创建粒子系统,和使用的栅格对象有关。当使用主栅格作为一个创建平面时,发射源总被建立在与视图平行处,而这条规律在透视视图中则是个例外,在这种情况下,建在主栅格上发射源的方向指向下。当使用一个栅格对象作为一个创建平面时,创建的结果是发射源总被建立在栅格所在的无限平面上,与所显示的平面无关;而发射源的方向取决于栅格对象自身的定向,但其方向总是在栅格的Z轴上。当使用栅格对象时,最好将对象建立在一个不与其栅格表面平行的视图中。否则,对象将被建在无限远处,这会使你在视图中难以控制。
图7-2Spray(喷射)粒子系统的发射源
图7-3.很多粒子象雨滴一般洒落下来.
7.1.2基本粒子系统
当单击任意一个粒子系统的按钮后,该粒子系统的参数区卷展栏便同时出现,Spray(喷射)和Snow(雪)是3DStudioMAX3中最基本的粒子系统,它们的参数面板基本相同,如图7-4所示。尽管高级粒子系统具有较高的速度和兼容性,功能也要强大一些,但Spray(喷射)和Snow(雪)这两个基本粒子系统仍有其自身的价值,在某些方面甚至还要超过高级粒子系统。而且它们与高级粒子系统有一些公共的参数,所以,无论你使用或不使用它们,都必须理解Spray与Snow的基本特性。刚才提到过,Spray和Snow参数的设置是基本相同的,本节中将共同探讨它们的参数设置。
1)Spray和Snow都提供了两个参数来指定粒子数。一个是ViewportCount参数,该值仅影响在视图中显示的粒子数量,有效范围从0~1000000000。注意,最大值是计算机难以承受的数值,一般不要使用。ViewportCount参数数量尽可能保持低数目,但同时也要保证视图中仍能看到一定数量的粒子显示。
2)RenderCount只影响被渲染的粒子数,而对视图中的粒子数没有影响。一般说来该值应设置得较高,因为渲染品质是动画片的关键因素。粒子系统中的粒子是几何体,与其他对象一样具有面和节点,因此,视图中的粒子数或渲染粒子数越多,计算机的运行会越慢。如果少量的粒子数便能取得良好的效果,就要控制粒子数目。
3)DropSize用来设置雨滴的尺寸。
4)Speed设置每个粒子的初始速度。速度值采用它自己的单位系统,在所经历时间内变更一个粒子的位置。速度为1,可使一个粒子在25帧内大约迁移10个单位;默认值是10,这意味着一个粒子在2.5帧内迁移10个单位。
5)Variation控制尺寸和方向。其默认值为0,将创建一个均匀粒子流,准确地沿发射源所指的方向做规律性运动。当增加变化量时,有两种情况发生:首先,粒子的速度增加;其次,Variation变化量使每个粒子的方向和速度出现随机变化。增加的数值越大,这种随机变化将变得越明显。在设计中,当需要让粒子沿各个方向射出时,就要让Variation值大于指定的默认值。
6)粒子有三种显示方式:Drops(或Flakes)、Dots及Ticks。在Spray(喷射)中使用Drops时,粒子以直线段的形式显示,它在尺寸上的增减由DropSize值决定。在Snow(雪)中选用Flakes时,粒子以14点星的形式显示,尺寸上由FlakeSize值决定最终渲染时粒子的大小。使用Dots时,粒子将以一个细小像素点的形式出现在视图中,当不想让粒子系统干扰你的视图时选择该选项。当视图缩放时也不受影响。
图7-4Spray的参数区卷展栏
Ticks以5×5个像素点构成的小十字形式在你的视图中出现。像Dots一样,当视图缩放时,以Ticks设置的粒子仍保持同样大小。
7)Render用于设置渲染时粒子的形状。在喷射中,此项包含两种方式:Tetrahedron(四面体)和Facing(面)。在Snow(雪)中包含三种方式:Six Point(六角形)、Triangle(三角形)和Facing(面)。
8)Timing为粒子系统定时控制,如图7-5所示。在高级粒子系统中,只有PArray和PCloud支持任意对象作为发射源。PArray是唯一把对象碎片作为粒子的系统。其他高级系统(Blizzard、SuperSpray和PCloud)拥有它们自己的发射源,并都支持Standard粒子、MetaParticles和InstancedGeometry。粒子系统是以帧为度量单位对粒子进行定时控制的。Start的值设置发射源开始送出粒子的所在帧,这个值可以是包括负数帧在内的任何帧值。Life值以帧为单位设置每个粒子的生命周期,需要为每个粒子分别指定。如果你想要粒子始终在场景之中出现,应将此值设置为动画的总帧数。
9)Constant选项在默认情况下处于被勾选状态。该选项提供一个均匀的粒子流。在Constant复选下方的MaxSustainableRate显示的是在保持规定范围内的粒子数的同时,每帧所能创建的粒子数。当改变粒子的Life值时,此值也将变化。默认Life值为30,可得到每帧创建3.3个粒子的持续速率。如果不勾选Constant选项,则可在BirthRate区中指定每帧创建粒子的最大数量。假如你想要一个均匀的粒子流,应将BirthRate设置为小于等于MaxSustainableRate。假如你想要瞬间的爆炸或不均匀发射的粒子流,将此值设置为高于MaxSustainableRate。通常修改工作均在修改命令面板中进行。
10)Emitter是控制发射源尺寸的区域。.如果需要缩放发射源的尺寸,最好是改变Length和Width的值,而不使用比例缩放变换工具。一个细长形状的发射源创建一个狭窄的从中发射粒子的间隙,一个面积宽大的发射源使粒子扩散。从发射源内随机发射出的粒子,它们的分布将由发射源的尺寸控制。如果将发射源的尺寸设置成动画,可以模拟出诸如拧开的水管或从一个越来越大的区域里飞出火花这样的效果。
11)Hide是用来确定是否隐藏发射器。
图7-5粒子系统定时控制及发射器控制面板
7.1.3高级粒子系统
本节讨论高级粒子系统。打开高级粒子系统参数区卷展栏的步骤是单击Create(创建)/Geometry(几何体)/ParticleSystems(粒子系统)/PArray,如图7-6所示。之后可在Modify(修改)面板中修改。高级粒子系统是以Spray和Snow为基础的,实际上每一个粒子系统都有特殊用途,都对发射源、粒子生成、类型、旋转、对象运动继承性提供参数控制。但是,高级粒子系统添加了更多的参数控制,如BubbleMotion、ParticleSpawn等。在高级粒子系统中,相当多的参数控制对计算机的性能是个考验。暂时减少粒子数量或提高粒子在视图中的显示百分比可以相对减轻电脑的负担。虽然在高级粒子系统中各类卷展栏的组织很有逻辑。但是因为其中一部分的设置控制着另外一部分的设置,所以可能造成混淆,学习时要多费些心思。
1)ParticleGeneration卷展栏包含了控制粒子运动的主要设置,如图7-7所示。UseTotal设置和UseRate设置使你可以用每帧粒子数或总体粒子数的方法设置粒子数量。ParticleMotion部分控制速度及其随机变化。在PArray中还可控制粒子的分散程度。ParticleTiming部分与Spray(喷射)和Snow(雪)相应的部分相似,控制发射的起始和结束时间、粒子存在的时间、生命周期中的随机变化及什么时候整个系统从屏幕上消失。Life和Variation微调器可以设置动画,EmitStart、EmitStop和DisplayUntil则不能设置动画。在高级粒子系统中,可以用Variation设置添加随机性到生命周期中,而且它还有一个不可设置成动画的DisplayUntil设置。DisplayUntil是高级粒子系统的新特性,它的作用是不显示粒子,即使在DisplayUntil指定的帧后仍有粒子生成也不显示它们。在ParticleSize部分,能设置粒子的大小和变化,在描述粒子穿越空间并逐渐消失或者水下的气泡时很有用。用GrowFor或FadeFor也可以改变粒子尺寸。Uniqueness用于设置随机粒子,单击New可以变化新的粒子。
2)ParticleType卷展栏提供四种粒子StandardParticles、MetaParticles、ObjectFragments和InstancedGeometry,如图7-8所示。StandardParticles(标准粒子)的8种类型包括了2D和3D选项。Triangle、Tetra、Faceing、Six-Point粒子是从基本粒子延续而来的。Cube和Sphere是基本几何体。Constant产生的面粒子的大小保持一致。Special与Face粒子相似。面粒子非常有用,在Spray(喷射)和Snow(雪)中可以使用它们,它们是使用最方便的标准粒子,总是面向摄像机。MetalParticle粒子类型利用Metaball作为粒子,主要用来模仿流体效果。Metaball是有特殊功能的球,彼此相互影响,相互施加压力。最初的Metaball仅限于球,随着外挂模块的发展,Metaball可以为球、椭圆体、立方体和任何由放样曲线的组合体。你可以模仿流体运动和几个流体对象汇合成一个单独的流体对象,比如模拟融化的金属沿着一条路径运动的效果。Tension设置控制粒子混合的趋向,Tension越高,粒子越坚硬,就越难融合。Variation增加和控制提供给Tension的随机性。EvaluationCoarseness设置通过计算量控制粒子在渲染过了的场景中的光滑程度。ObjectFragments粒子类型在与PBomb空间变形同时作用时可控制将对象爆炸为碎片。在3DStudioMAX中,对象被爆炸为2D三角面,看起来不太自然,并且强迫碎片创建在TrackView的某个可见轨迹中。在3DStudioMAX3中,Parray粒子系统中依然有这个选项,在ObjectFragmentsControls下选择AllFaces即可。你也可以通过NumberofChunks选项创建不规则的碎片。在高级粒子系统中,只有PArray和PCloud支持任意对象作为发射源。PArray是唯一把对象碎片作为粒子的系统。其他高级系统,如Blizzard、SuperSpray和PCloud拥有它们自己的发射源,并都支持Standard粒子、MetaParticles和InstancedGeometry。InstancedGeometry粒子类型允许你使用任意几何体作为一个粒子。因为粒子是几何体,所以粒子越复杂,繁殖它们所消耗的系统资源越多。为了将动画了的对象作为粒子,你应该使用优化了的低网格的几何体。使用细节所需的最低要求来创建效果,并尽量少使用复杂的透明材质。
3)RotationandCollision.卷展栏用于细化粒子的运动,命令面板如图7-9所示。SpinSpeedControls用于确定粒子的旋转值和时间。SpinAxisControls用于指定旋转轴,通常使用默认的Random设置.InterparticleCollisions用于设置爆炸或碰撞时的效果。
4)ObjectMotionInheritance卷展栏设置粒子发射器的运动对粒子运动的影响程度,如图7-10所示。设为最大值时,粒子运动由发射器确定。Multiplier设置正向或负向效果。
5)BubbleMotion卷展栏用来创建水泡从水底向上升时的摇摆效果,可以设置振幅、振动周期、变量、相位等并做成动画效果。参数面板如图7-11所示。
6)ParticleSpawn卷展栏是高级粒子系统中功能强大的一个参数面板,如图7-12所示。如果勾选DieAfterCollision,则可以选择粒子碰撞后消失时的持续性和变化的百分比。选择SpawnonCollision后,可以确定粒子繁殖的数量、新生粒子的百分比、每个Spawn事件中创建的粒子数和用百分比决定的随机性。三个Chaos设置用来控制繁殖的粒子与原粒子存在多少区别。当DirectionChaos为0时没有变化,为100时将产生随机方向,为50时新粒子偏离原粒子90°。SpeedChaos控制新粒子的运动与原粒子的关系,可设为快、慢或两者兼顾。InheritParentVelocity如果被勾选,新粒子速度的快慢将决定于父粒子。UseFixedValue复选框可以停止新粒子的变化速度。ScaleChaos的参数类似SpeedChaos。LifespanValueQueue可以为每个Spawn事件指定不同的生命周期。
7) Load/SavePreset卷展栏可以保存、提取或删除任意的粒子系统设置。把设置好的效果十分出色的粒子系统存储起来以便将来使用可以节省时间。参数命令面板如图7-13所示。
图7-6高级粒子系统的参数区卷展栏
图7-7ParticleGeneration卷展栏
图7-8ParticleType卷展栏提供四种粒子
图7-9RotationandCollision卷展栏
图7-10ObjectMotionInheritance卷展栏
图7-11BubbleMotion卷展栏
图7-12ParticleSpawn卷展栏
图7-13Load/SavePreset卷展栏
7.2Spray粒子系统
Spray(喷射)粒子系统善于模拟雨水、喷泉、导火索上的火花或从茶壶中倒出的茶水。一般来说,粒子以一个恒定的方向迁移,即一滴水在它的整个生命周期内总是朝下降落的,但是,你也能创建摆动的喷洒系统这样的对象。
7.2.1创建Spray粒子系统
下面结合倒茶水的实例讲述喷射粒子系统。用粒子系统中的Spray(喷射)模拟倒茶的效果时,Spray由许多水滴Drop或点Dot组成,它们由喷射器源源不断地发射出来。当摄像机离茶流很近时,渲染时看到的实际上是水滴而不是现实世界的水流。若模拟比较真实的茶流,应使摄像机和茶流保持一定的距离。
1)制作两个茶杯和一把茶壶,放在一张木桌上并赋予材质,添加场景灯光,如图7-14所示。.
2)拖动时间滑块到第40帧,打开动画记录按钮。利用旋转和移动工具,在前视图中将茶壶旋转一定角度并移动,最后效果如图7-15所示。
3)下面制作发射器。单击Create(创建)/Geometry按钮,在下拉框中选择ParticleSystems。单击Spray按钮,如图7-16所示。
4)激活顶视图并画一个矩形,该矩形代表Emitter(发射器)的大小。单击Modify(修改)命令面板,拖动卷展栏到最下方,将Parameters下面Emitter中的长宽参数均设为6。注意要先使粒子流向上喷射,以后使用动力学中的重力效果使茶水呈弧线形流下。
5)在视图中移动和旋转Spray01到壶嘴处。单击主工具栏中的SelectandLink按钮,把鼠标移到Spray01上,这时鼠标的形状变成连接按钮的形状。按住鼠标左键不放并移动到茶壶上,松开鼠标,茶壶变为选择状态,表明已将Spray01连接到茶壶物体上。
6)单击Create(创建)/SpaceWarps按钮,单击ParticlesandDynamics,单击Gravity(重力)按钮,如图7-17所示。
7)在顶视图中创建一个正方形,选择Spray01,单击主工具栏中连接空间变形按钮,把鼠标再次移到Spray01上,鼠标变成连接空间变形按钮的形状,按住鼠标左键并拖动鼠标到Gravity01,并松开鼠标左键,将Gravity01连接到Spray01上。
8)激活透视视图,单击播放动画按钮,可以看到茶水的下落曲线较为圆滑,符合现实生活的真实情况,如图7-18所示。
9)单击Modify命令面板,选取Gravity01,在参数栏内修改参数,如图7-19所示。
10)点选Spray01,在Modify命令面板中修改参数,如图7-20所示,勾选Hide复选框。
图7-14两个茶杯和一把茶壶放在一张木桌上
图7-15茶壶旋转和移动后的效果
图7-16选择ParticleSystems并单击Spray按钮
图7-17在ParticlesandDynamics项中单击Gravity
图7-18茶水的下落曲线较为圆滑
图7-19选取Gravity01并在参数栏内修改参数
图7-20点选Spray01并在Modify命令面板中修改参数