[转帖]3DS Max 7.0 PF Source粒子全攻略[PConline,作者 ...

来源:百度文库 编辑:超级军网 时间:2024/04/30 13:43:42
<TABLE cellSpacing=0 cellPadding=6 width="99%" background=http://www.pconline.com.cn/images/point.gif border=0>

<TR>
<TD align=middle colSpan=3>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>

<TR>
<TD align=middle width="68%"><FONT color=#339900 size=3><B>3DS Max 7.0 PF Source粒子全攻略</B></FONT></TD>
<TD vAlign=bottom align=right width="17%">出处:PConline</TD></TR></TABLE></TD></TR>
<TR>
<TD width=145>[ 2005-06-17 10:19:02 ] </TD>
<TD align=middle>作者:顾金海 </TD>
<TD align=right>责任编辑:xietaoming</TD></TR></TABLE>
<P>PF Source(粒子流来源)是3DS Max 6.0 以后的版本新增加的功能,这个新增加的粒子的功能可以说是超乎我们的想象,因为使用这个粒子可以做到你能想象得到的各种各样的粒子动画效果,无论是天空中的雨、雪,还是群鸟飞翔、鱼群跳跃、粒子变物等等,只要你能想得到的,这个粒子都可以胜任。</P>由于这个粒子系统命令参数众多,对于初学者来说学习起来很困难,PConline软件资讯栏目制作了这个专题,给大家讲解PF Source粒子的各个命令的功能及用法,关于一些基础的流程操作大家可以参看PConline软件资讯的3DS Max栏目以前发过的一些关于PF Source粒子使用的文章,在这个系列教程的最后我们安排一些实例来巩固所学的知识。
<TABLE cellSpacing=0 cellPadding=6 width="99%" background=http://www.pconline.com.cn/images/point.gif border=0>

<TR>
<TD align=middle colSpan=3>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>

<TR>
<TD align=middle width="68%"><FONT color=#339900 size=3><B>3DS Max 7.0 PF Source粒子全攻略</B></FONT></TD>
<TD vAlign=bottom align=right width="17%">出处:PConline</TD></TR></TABLE></TD></TR>
<TR>
<TD width=145>[ 2005-06-17 10:19:02 ] </TD>
<TD align=middle>作者:顾金海 </TD>
<TD align=right>责任编辑:xietaoming</TD></TR></TABLE>
<P>PF Source(粒子流来源)是3DS Max 6.0 以后的版本新增加的功能,这个新增加的粒子的功能可以说是超乎我们的想象,因为使用这个粒子可以做到你能想象得到的各种各样的粒子动画效果,无论是天空中的雨、雪,还是群鸟飞翔、鱼群跳跃、粒子变物等等,只要你能想得到的,这个粒子都可以胜任。</P>由于这个粒子系统命令参数众多,对于初学者来说学习起来很困难,PConline软件资讯栏目制作了这个专题,给大家讲解PF Source粒子的各个命令的功能及用法,关于一些基础的流程操作大家可以参看PConline软件资讯的3DS Max栏目以前发过的一些关于PF Source粒子使用的文章,在这个系列教程的最后我们安排一些实例来巩固所学的知识。
[此贴子已经被作者于2005-10-7 10:53:08编辑过]
第一篇 PF Source(粒子流来源)命令面板参数
  前言:PF Source(粒子流来源)是3DS Max6以后的版本新增加的,这个新增加的粒子的功能可以说是超乎我们的想象,因为使用这个粒子可以做到你能想象得到的各种各样的粒子动画效果,无论是天空中的雨、雪,还是群鸟飞翔、鱼群跳跃、粒子变物等等,只要你能想得到的,这个粒子都可以胜任。由于这个粒子系统命令参数众多,对于初学者来说学习起来很困难,从今天开始我就给大家讲解PF Source粒子的各个命令的功能及用法,关于一些基础的流程操作大家可以参看PConline软件资讯的3DS Max栏目以前发过的一些关于PF Source粒子使用的文章,在这个系列教程的最后我还会安排一些实例来巩固,好了闲话少说,下面就让我们开始吧!
1、创建PF Source(粒子流来源)。在命令面板上单击Geometry钮,在其下拉列表中选择Particle Systems项,此时在创建命令面板上我们就可以看见有PF Source(粒子流来源)一项,如图1-1所示。

图1-1
  2、在命令面板上单击PF Source项,在Top视图中拖动鼠标,这样我们就创建了一个PF Source粒子,如图1-2所示。

图1-2
3、Setup(设置)卷展栏。在命令面板上单击Modify钮进入修改命令面板中,否则在创建命令面板上显示的参数是不完全的。首先我们来看一下Setup卷展栏下的命令参数的用法,该卷展栏中的参数主要用来控制粒子系统的打开和关闭,可以在这个卷展栏中打开粒子视图,关于粒子视图我们后面会讲到,如图1-3所示。

图1-3
  (1) Enable Particle Emission(激活粒子发射):打开或者关闭粒子系统,默认情况下是打开的,我们也可以在粒子视图中使用编辑菜单的关闭命令关闭粒子流,使用粒子流时这个选项必须勾选。
  (2)Particle View(粒子视图):单击此项后会打开粒子视图,在制作粒子动画时大都是在这个粒子视图中进行的,关于粒子视图的操作使用及命令参数我们后面会讲到。
  4、Emission(发射)卷展栏。如图1-4所示,该卷展栏中的参数主要用来设置发射器图标的物理属性和在视口中产生的粒子的百分比数量。

图1-4
  (1) Emitter Icon(发射器图标)选项组
  Logo Size(标志尺寸):主用来设置粒子流中心标志的尺寸,它的大小只影响标志在视图中的显示的大小,对粒子的发射不会有任何的影响。
  Icon Type(图标类型):这个选项主要用来设置图标在视图中的显示方式,主要有长方形、立方体、圆、球四种方式,默认为长方形。
  Length/Diameter(长度/直径):这个选项在命令面板中没有显示出来,这是由于我们使用了长方形显示的原因,如果将图标的类型转变为立方体或是设置为圆形即可显示,主要用来设置长方形和立方体图标的长度,圆和球形图标的直径。
  Width(宽):用来设置长方形和立方体图标的宽度。
  Height(高):用来设置长方形和立方体图标的高度。
  Show Logo/Icon(显示标志/图标):主要用来分别控制打开或者关闭标志或者图标在视图中的显示,这个设置项只对视图显示有影响,并不会影响到粒子的实际动画效果。
(2) Quantity Multiplier(数量累增器)选项组。这个选项组主要用来设置在视图中显示的或是在渲染时每个流的粒子的整体数量的百分比。
  Viewport(视口):主要用来设置视图中显示的粒子的多少,它的改变不会对最终渲染的粒子的数量有任何影响,默认值为50.0,范围是从0.0到10000.0。
  Render(渲染):主要用来设置最终渲染时创建的系统中粒子的整体数量百分比,它的值的大小将会直接影响最终渲染的粒子的多少,其默认值为50.0,范围是从0.0到10000.0。
  5、Selection(选择集)卷展栏,如图1-5所示。 这个卷展栏中用来选择粒子用的,这级两个子物体,分别对应的是粒子(即图中的圆点)和事件(即图中圆点右侧的方框)。需要注意的是: 此卷展栏仅出现在修改器面板中。

图1-5
  (1)Particle(粒子):通过单击或者拖曳一个区域来选择粒子。
  (2)Event(事件):通过事件来选择粒子。
  (3)Select by Particle ID(通过粒子ID选择)选项组
  每个粒子都有对应的ID号,从1开始算起,通过ID号可控制选择或者取消选择粒子,我们可以在视图中打开显示操纵器中的显示粒子ID来显示粒子的ID号码。
  ID:主要用来设置要选择的粒子的ID数量。
  Add(增加):当设置好要选择的ID数目后,单击Add(增加)按钮可将其增加到选择集合中。
  Remove(删除):设置好要选择的ID数目后,单击Remort(删除)按钮可以将其从选择集合中删除。    Clear Selection(清除选择):当选中此复选框时,增加粒子选择时将取消所有其他的粒子选择。   Get From Event Level(从事件层获取):只有在粒子层有效。
  Select By Event(通过事件选择):在这个列表中将会显示所有的粒子流中的所有事件,被选择的事件会高亮显示。
  1 Particles Selected(被选粒子):显示被择的粒子的数量。
  6、System Management(系统管理)卷展栏,如图1-6所示。该卷展栏中的参数主要用来限制系统中的粒子数量,指定更新系统的频率。

图1-6
  (1) Particle Amount(粒子数量)选项组
  Upper Limit(上限):用来限制粒子的最大数量,默认值为100 000,范围从0到10000000。
  (2)Integration Step(综合步幅)选项组
  Viewport(视口):用来对视图中的动画回放的综合步幅进行设置。默认单位为帧,范围从1/8帧到帧。
  Render(渲染):用来设置渲染时的综合步幅。默认值为半帧,范围从1tick到帧,1秒有4 800 tick;所以在每秒30帧的NTSC视频速率下每帧有160 tick。
Script(脚本)卷展栏,如图1-7所示。该卷展栏可以通过使用脚本来控制粒子系统的动画。

图1-7
  (1)Every Step Update(每步更新)选项组
  主要用来在每一综合步幅结束时都执行脚本,当执行完粒子系统的所有操作之后,在设置历史属性时,执行每步幅更新是非常重要的,否则最后粒子的位置可能会有很大差别。
  Enable Script(激活脚本):选中时,使得内存中的脚本在每一个综合步幅都被执行。
  Edit(编辑):单击此项后打开当前脚本文本编辑框,在这里我们可以对脚本进行编辑操作。
  Use Script File(使用脚本文件):选中时,通过单击下面的NONE按钮加载脚本文件,单击后会打开指定文件加载路径的对话框,当文件加载后,名称会显示在按钮上。
  (2) Final Step Update(最后步幅更新)选项组。此选项组中的参数和每步更新选项组中的参数相同,请参看上面。
  8、本节小结:本节我们主要学习了PF Source(粒子流来源)命令面板参数的主要功能及用法,下节我们将学习Particle View Menu Bar(粒子视图菜单栏),请大家继续关注PConline软件资讯的3DS Max栏目。
第二篇 Particle View Menu Bar(粒子视图菜单栏)命令详解
  1、打开Particle View(粒子视图)。在视图中创建一个PF Source粒子后,在Modify命令面板上我们单击Particle View钮即可打开粒子视图,也可以按下键盘上的快捷键6同样能打开粒子视图,如图1-1所示。

图1-1
  2、Edit(编辑)菜单栏。单击Particle View视图菜单栏上的Edit菜单,如图1-2所示。

图1-2
  New(新建):主要用来新建一个包含被选动作的新事件到事件显示中。
  Insert Before(前插):在每一个高亮显示的动作之前增加被选择的条目,此选项只有一个或者多个动作高亮时才有效。
  Append To(添加到):用来将被选择的条目增加到每个高亮动作之后,此选项只有在一个或者多个动作高亮时才有效。
  Turn On All(打开所有):单击此选项后将打开所有的动作和事件。
  Turn Off All(关闭所有):单击此选项后将关闭所有动作和事件。
  Turn On Selected(打开被选):用来打开高亮显示的关闭的动作和事件,此选项只有在关闭了一个或者多个高亮条目事件时才有效。
  Turn Off Selected(关闭被选):用来关闭高亮显示的打开的动作和事件,此选项只有当打开一个或者多个高亮条目事件时才有效。
  Make Unique(使惟一):此选项只有在一个或者多个关联动作高亮时才有效,主要用来转换关联动作到事件。
  Wire Selected(线接被选):用来将一个或者多个测试线连接到高亮事件上,或者是将一个或多个高亮的全局事件连线接到一个高亮出生事件上,此选项只有当一个或者多个测试和单一事件高亮时才有效,或者一个或者多个全局事件和单一出生事件高亮时有效。
  Copy(复制):用来复制任意的选择的事件、动作和线接到剪贴板。
  Paste(粘贴):用来将剪贴板中的内容粘贴到事件显示当中。
  Delete(删除):用来删除高亮显示的条目。
  Rename(重命名):用来对高亮显示的条目进行重新命名。
3、Select(选择)菜单。Select菜单如图1-3所示。

图1-3
  Select Tool(选择工具):单击此选项后将会激活选择工具,勾选此选项后,在对事件显示使用了移动和缩放工具之后,会自动返回选择工具。
  Select All(选择全部):单击此选项后,在事件显示窗口中的所有项目都会高亮显示。
  Select None(无选项):取消事件显示窗口中的所有项目的选择。
  Select Actions(选择动作):单击此项后在事件显示窗口中的所有操作器和测试都会高亮显示。
  Select Operators(选择操作器):单击此项后事件显示窗口中的所有操作器都会高亮显示。
  Select Tests(选择测试):事件显示窗口中的所有测试高亮显示。
  Select Sources(选择源对象):事件显示窗口中所有的粒子流来源对象会高亮显示。
  Select Events(选择事件):事件显示窗口中的所有事件会高亮显示。
  Select Wires(选择线接):事件显示窗口中的所有线接会高亮显示。
  Select Downstreams(选择下游):单击此选项后,当前所显示的高亮事件之后的所有事件会高亮显示。
  Save Selected(保存被选):用来保存当前事件中高亮显示的元素到.max文件。
  Get Selection From Viewport(从视图中获取选择集):视图中被选择的源图标的全局事件会高亮显示。
  Assign Selection To Viewport(指定选择集到视图):用来传递事件选择集到视图中,使用此命令后可渲染指定事件的粒子。具体的操作方法是:首先在粒子视图中,使要渲染的事件高亮显示,然后选择该命令,最后在主工具栏Reder Type的下拉列表中选择Selected的渲染类型来渲染。
  Sync Source/Events Selection In Viewport(视图中同步源/事件选择集):用来选择视图中被选的所有源图标的事件。
4、Display(显示)菜单。Display菜单如图1-4所示,此菜单中的前5个命令与粒子显示对话框右下角的显示工具命令相对应。

图1-4
  Pan Tool(平移工具):用来在事件显示窗口中拖拽以移动视图。
  Zoom Tool(缩放工具):用来在事件显示窗口中拖拽以缩放视图。
  Region Zoom Tool(区域缩放工具):单击此选项后,在事件显示窗口中拖拽可以对选择的区域进行放大或缩小。
  Zoom Extents(缩放范围):单击此选项后在事件显示窗口中会显示整个粒子图表。
  No Zoom(无缩放):用来将事件显示窗口还原为默认状态,即刚开始打开的粒子视图。
  Parameters(参数):用来锁定粒子视图对话框右侧的参数面板的显示。
  Depot(库):用来锁定在粒子视图对话框下面的库的显示。
  Description(描述):用来锁定库右侧的描述面板。
  5、Options(选项)菜单。Options菜单如图1-5所示。

图1-5
  Default Display(默认显示):此选项用来确定显示操作对粒子系统和事件应用于局部还是全局。默认为局部。
  Global(全局):在创建一个新的粒子系统时,粒子流会添加一个单一的显示操作到全局事件。
  Local(局部):为粒子流添加一个显示操作到每一个新事件当中。
  Action Order(动作顺序):通常的情况下,全局和局部事件都会使用类似的动作。当互相可以比较的动作在全局事件和其他事件中同时存在的情况下,粒子流以此处指定的顺序将其应用到系统中,默认状态为局部优先。比如,在全局事件中如果包含Cube的形状操作,在同一系统中其他事件包含Tetra或者Sphere的形状操作,默认情况下,粒子流在每一个综合步幅的最后应用全局形状操作覆盖任意局部形状,即:所有的粒子都将是Cube。但是如果我们设置为Globals First,则最后会使用局部形状,粒子显示为Tetra或者Sphere。
  Globals First(全局优先):在每一个综合步幅,粒子流首先应用全局事件的动作。其结果是局部事件的动作覆盖全局事件中的可比较动作。
  Locals First(局部优先):在每一个综合步幅,粒子流首先应用局部事件的动作。其结果是全局事件的动作覆盖局部事件中的可比较动作。
  Update Type(更新类型):当参数改变时,粒子流更新系统的方式。
  Complete(完整):当设置改变时,粒子流在第一帧更新整个系统。
  Forward(向前):当设置改变时,粒子流在当前帧更新整个系统。
  Track Update(追踪更新):提供粒子视图中显示粒子系统状态的选项。
  Particle Count(粒子计数):用来显示事件中粒子的数量。当在全局事件中使用此项功能时,显示的计数是粒子系统中粒子的整体数量。
  Update Progress(更新进步):当粒子流执行动作时以颜色高亮显示该动作。
  Use Dynamic Names(使用动力学名称):默认为打开状态。打开此选项时,在事件中的动作名称会被重要设置跟随,关闭此选项时,仅显示名称。
  8、本节小结:本节我们主要学习了Particle View Menu Bar(粒子视图菜单栏)的命令详解,下一节我们将学习Particle View粒子视图当中的Operators(操作器)的功用,请大家继续关注PConline软件资讯的3DS Max栏目。
[此贴子已经被作者于2005-10-7 12:21:15编辑过]
第三篇 Operators(操作器)的功用②
  8、Material Frequency Operator(材质频率操作器)。命令面板如图1-9所示。

图1-9
  功用:材质频率操作器允许将材质指定给事件,并且指定每一个子材质在粒子中显示的相对频率。如果材质是多维/子材质或者其他复合材质,可以通过最多设置10种不同材质的百分比来指定频率。软件基于这些百分比以随机序列指定粒子ID。也可以使用其他子材质的材质,例如Double Sided 和Top/Bottom等。 
  Assign Material(指定材质):勾选此项后,操作器将一个材质指定给多个粒子,默认为选中。
  None按钮:使用此按钮将材质指定给操作器。单击按钮并使用材质/贴图浏览器选择材质。可以交互式的将材质从材质编辑器样本槽拖拽到该按钮。
  Assign Material ID(指定材质ID):勾选此项后,操作器为每一个粒子定义材质ID的数目,然后启用其它的参数,默认为打开状态。
  Show In Viewport(在视口中显示):选中时,粒子显示为几何体时,视口中显示指定到粒子的材质。
  # Sub-Materials(子材质):显示指定材质中子材质的数量。
  Material ID #1~10(材质ID1~10):指定粒子要被分配相应材质ID的相对可能性。为所有ID或者子材质指定数值。例如,包含5种子材质的多维/子材质,则需设置材质ID为从1到5。
  Uniqueness(惟一性)选项组。利用该组参数,通过设置其下方的种子数值,可以在相同的参数设置下产生不同的随机效果,以确保其随机性。
  New(新建):系统随机产生一个新的种子数。
  Seed(种子数):使用数值框让用户来指定一个随机化的种子数。
9、Material Static Operator(材质静态操作器)。命令面板如图1-10所示。

图1-10
  功用:材质静态操作器主要用来给予粒子在整个事件保持恒定的材质ID,同时基于材质ID指定材质到每个粒子,可以对所有粒子指定相同的材质ID,或者以循环或者随机方式指定不同ID到连续粒子
  Assign Material(指定材质):勾选此项后,操作器将指定一个材质给多个粒子,默认为选中状态。
  None按钮:使用此按钮可以将材质指定给操作器。单击按钮并使用材质/贴图浏览器选择材质。可以交互式的将材质从材质编辑器样本槽拖拽到该按钮。
  Assign Material ID(指定材质ID):勾选此项后,操作器会为每一个粒子定义一个材质ID数目。默认值为关闭状态。
  Show In Viewport(视口中显示):勾选此项后,粒子显示为几何体时,视口中显示指定到粒子的材质。
  Material ID(材质ID):为场景中所有的粒子指定相同的材质ID。
  Cycle(循环):从1到N指定每个粒子的材质ID,指定的方式为递增顺序。
  Random(随机):为每一个粒子从1到N随机指定材质ID。
  # Sub-Materials(子材质):使用循环或者随机选项时,指定给粒子的最大ID数。
  Rate(速率)选项组
  Per Sec(ond)(每秒):用来设置指定材质ID每秒增加的次数。如果该速率等同于粒子进入事件的速率,则为每个粒子指定一个ID。
  Per Particle(每个粒子):用来设置在材质ID改变之前必须显示的粒子数量。例如,如果设置Per Particle为3,材质ID每三个粒子改变一次。
  Loop(循环):勾选此项后,如果已经指定了最后一个ID,将返回到第一个ID并继续循环。未选中时,指定最后循环ID到所有接下来的粒子。
  Uniqueness(惟一性)选项组。利用该组参数,通过设置其下方的种子数值,可以在相同的参数设置下产生不同的随机效果,以确保其随机性。
  New(新建):系统随机产生一个新的种子数。
  Seed(种子数):使用数值框让用户来指定一个随机种子数。
  10、Position Icon Operator(位置图标操作器)。命令面板如图1-11所示。

图1-11
  功用:默认情况下,粒子由粒子流图标生成和发射。使用位置图标操作器主要用来控制发射器上粒子的初始位置。可以设置发射器从表面、体积、边、顶点或者中心发射粒子。
  Lock On Emitter(锁定发射器):选中此项时,所有的粒子都保持在发射器的初始位置。未选中时,每个粒子的出生位置由发射器的当前位置决定。默认为未选中。
  Inherit Emitter Movement(继承发射器移动):勾选时,将每一个粒子运动的速率和方向设置为粒子出生时发射器速率和方向。禁用时,发射器的移动不会影响粒子的移动。 只有“锁定发射器”处于禁用状态时才可以使用该选项。 默认设置为禁用。
  Multiplier(倍培器):主要是用来确定粒子继承发射器运动的程度,以百分比来决定粒子继承发射器运动的内容。只有在打开Inherit Emitter Movement时有效,默认为100.0。如使粒子以一半于发射器的速度移动,将倍增器设置为50。
  Location(位置)选项组。在位置下拉列表框中可指定粒子显示的发射器位置。可以通过改变图标类型、位置设置和发射方向创建多种发射行为。
  Pivot(轴心):从图标中心发射粒子。
  Vertices(顶点):对立方体和长方形图标类型,从图标的四角发射粒子。对于球形图标,从定义球的三个圆的6个交叉点发射粒子。对于圆形图标,从圆的中心发射粒子。
  Edges(边):沿着图标的边随机地发射粒子。
  Surface(表面):沿着图标表面的随机点发射粒子。
  Volume(体积):沿着图标的体积的随机点发射粒子。
  Distinct Points Only(仅特殊点):限定发射到在指定位置类型中指定的点。
  Total(总数):用来设置发射点的总数。默认为10。
  Subframe Sampling(子帧取样):勾选时,操作器基于tick(一秒有4800tick)获取发射器动画。默认为不选中。
  Uniqueness(惟一性)选项组。利用该组参数,通过设置其下方的种子数值,可以在相同的参数设置下产生不同的随机效果,以确保其随机性。
  New(新建):系统随机产生一个新的种子数。
  Seed(种子数):使用数值框让用户来指定一个随机化的种子数。
11、Position Object Operator(位置对象操作器)。命令面板如图1-12所示。

图1-12
  功用:默认情况下,粒子由粒子流图标生成和发射。使用位置对象操作器可以从任一其他对象或者对象集合发射粒子。使用位置对象设置扩展发射器上粒子的初始位置。可以设置发射器从表面、体积、边、顶点或者轴心点发射粒子。也可以用指定到对象的材质来控制粒子发射。
  Lock On Emitter(锁定发射器):选中时,所有的粒子都将保持在发射器的初始位置。未选中时,每个粒子的出生位置由发射器的当前位置决定。默认为未选中。
  Inherit Emitter Movement(继承发射器移动):选中时,在粒子出生时设置其运动的速率和方向为发射器的速率和方向。未选中时,发射器的运动不影响粒子的运动。只有在不选择Lock On Emitter时有效,默认为未选中。注意: 如果事件后面有速度操作器,它将覆盖由Inherit Emitter Movement产生的运动。
  Multiplier(倍增器):确定粒子继承发射器运动的程度,以百分比决定粒子继承发射器运动的内容。只有在打开Inherit Emitter Movement时有效,默认为100.0。如使粒子以一半于发射器的速度移动,将倍增器设置为50。
  Variation(变化):以百分比为单位来决定粒子继承发射器运动的变化程度。要确定每个粒子的最后的运动累加,可以将Variation(变化)数值乘以-1.0到1.0中间的随机数值,然后加上Multiplier(倍增)数值。该数值默认为0。
  Emitter Objects(发射器对象)选项组。 利用该选项组指定用作粒子发射器的对象。该组列表中显示用作发射器的对象,或者关联几何体。如果选择大概的发射器对象,粒子的分割决定于Location中的选项。如果选择轴点,每个对象有一个发射点并且每个对象发射同样数目的粒子。但如果设置为其他选项,对象发射粒子的数目与每个对象有效的发射点成比例。例如,如果将Location设置为体积,那么大的对象比小对象发射的粒子要多。同样的,Location设置为节点,有100个节点的对象发射的粒子是有50个节点对象的两倍。
  Add(增加):向列表中增加对象。单击增加按钮,并在视口中单击对象即可。
  By List(由列表添加):用来将多个对象增加到列表中。单击此按钮,打开Select Emitter Objects对话框,高亮显示对象以将其作用于发射器,然后单击选择按钮。
  Remove(删除):删除高亮显示的对象。
  Animated Shape(动画图形):选中该选项可允许粒子分布在对象表面或沿着对象表面运动,这些对象的动画是由Morphing(变形)或修改器所创建形成的。
  Subframe Sampling(子帧取样):选中时,操作器以tick为基础而不是以帧为基础获取发射器图形的动画。可以使粒子位置能够更加精确地跟随发射器对象外形的动画。
  Location(位置)选项组。在位置下拉列表中可指定粒子出现在每一发射器上的位置。 默认为曲面。
  Pivot(轴心):从发射器对象轴心的初始位置发射粒子。移动轴点不影响该选项。
  Vertices(顶点):从发射器对象被选顶点随机发射粒子。
  Edges(边):从发射器对象的边子对象的随机点发射粒子。
  Surface(表面):沿着图标表面的随机点发射粒子。
  Volume(体积):沿着图标体积的随机点发射粒子。
  Selected Vertices(选择顶点):从当前顶点子对象选择集发射粒子。
  Selected Edges(选择边):从当前边子对象选择集发射粒子。
  Selected Faces(被选表面):从当前面或者多边形子对象选择集发射粒子。
  Surface Offset(曲面偏移):指定粒子位移距离对象表面的距离范围。
  Min/Max(最小/最大):指定离开对象表面的距离范围的最大和最小数值。
  Density by Material(材质决定密度):基于应用于发射器的材质的属性而使得发射器表面的发射不同。例如,如果指定黑白变化的漫反射贴图到对象,并且选择Grayscale选项,粒子只从白色check中发射。需要注意的中,要在视口中合理显示材质影响的发射,下面两个条件必须具备:至少一个视口设置为着色显示模式。使用材质或者贴图必须在材质编辑器中打开Show Map In Viewport(视口显示贴图)。
  Grayscale(灰度):软件在内部将基于材质的颜色(漫反射)转换成Grayscale,然后在较亮的区域发射更多的粒子,较暗的区域发射较少的粒子。
  Opacity(不透明性):粒子在不透明区域显示的机率大于透明区域。
  Grayscale & Opacity(灰度和不透明):将上面两种情况结合在一起:更多的粒子显示在亮的不透明区域而不是暗的透明区域。
  Red/Green/Blue:只考虑指定的颜色通道。在任意给定的像素数值越高,粒子显示的几率越大。
  Use Sub-Material(使用子材质):选中时,使用从多维/子对象材质指定到发射器的子材质。此选项允许不可见材质的使用。如果发射器使用多维/子材质而几何体不使用对应的子材质ID,将不显示子材质。
  Mtl ID(材质ID):指定用作粒子发射的子材质的材质ID。
  Separation(分离):选中时,以在Distance中指定的数值保持粒子分离。
  Distance(距离):指定粒子分开的距离。默认为1.0。
  Distinct Points Only(仅特殊点):限定发射到在指定Location(位置)类型中指定的点。
  Total(总体):设定发射点总数。
  Delete Particles(删除粒子):选中时,如果不能按照当前选项放置粒子,就将其删除。未选中时,粒子位置未定义,即取决于其他变量。默认为未选中。
  Uniqueness(惟一性)选项组。利用该组参数,通过设置其下方的种子数值,可以在相同的参数设置下产生不同的随机效果,以确保其随机性。
  New(新建):系统随机产生一个新的种子数。
  Seed(种子数):使用数值框让用户来指定一个随机种子数。
  Attempts Max(尝试最大):使用分离选项时,此命令指定粒子流设置粒子保持要求距离位置的次数的最大值。
12、Rotation Operator(旋转操作器)。命令面板如图1-13所示。

图1-13
  功用:旋转操作器主要用来在事件过程中设置粒子的动画以及随机方向。可以按照5种不同矩阵中的任意一个使用定位,其中两个是随机的,三个是explicit(明确的)。
  Orientation Matrix(发射器对象)选项组。方向矩阵设置包括让粒子产生随机方向的选项,或者以三种不同方式指定方向。默认为随机的3D。
  Random 3D(随机3D):为每个粒子给定任意的、随机的3D方向。
  Random Horizontal(随机水平):只在Z轴方向为每个粒子给定随机的3D方向。围绕X轴和Y轴的旋转不会更改变化,这样使所有的粒子保持垂直。
  World Space(世界空间):在世界坐标空间中指定方向。
  Speed Space(速度空间):粒子方向的坐标空间由粒子进入事件的方向决定。
  Speed Space Follow(速度空间跟随):粒子方向的坐标空间由进入事件中的粒子决定。即默认情况下,粒子不断的调整方向以瞄准它们正在运动的方向。
  X/Y/Z:指定绕着粒子局部轴的基本方向。
  Divergence(偏离):指定粒子方向的变化范围。默认为0。
  Restrict Diverg. To Axis(限定偏离轴):选中时,使用偏离轴控制设定应用偏离的轴。未选中时,对每个粒子使用随机轴。默认为不选中。
  Divergence Axis(偏离轴):使用X/Y/Z设置来设定使用偏离的轴,默认为1,0,0,范围是-1.0到1.0。
  Uniqueness(惟一性)选项组。利用该组参数,通过设置其下方的种子数值,可以在相同的参数设置下产生不同的随机效果,以确保其随机性。
  New(新建):系统随机产生一个新的种子数。
  Seed(种子数):使用数值框让用户来指定一个随机的种子数。
  13、Spin Operator(自旋操作器)。命令面板如图1-14所示。

图1-14
  功用:自旋操作器主要用来在事件过程中设置粒子的角速度。自旋在每个粒子的每个事件中使用一次,除了使用Speed Space Follow;还可以设定记录动画。
  Spin Rate(自旋速率):每秒的旋转度数。
  Variation(变化):每秒自旋转角度变化的最大值。实际变化随机计算一次。
  Spin Axis(自旋轴)选项组
  Random 3D(随机3D):为每个粒子的自旋给定随机的3D方向。
  World Space(世界空间):在世界坐标空间指定旋转轴。
  Particle Space(粒子空间):在每个粒子的局部坐标空间指定自旋轴。
  Speed Space(速度空间):粒子方向的坐标空间由粒子进入事件粒子的方向决定。
  Speed Space Follow(速度空间跟随):粒子方向的坐标空间由粒子在事件中的方向决定。粒子不断的调整方向以使自旋转轴对齐运动方向。
  X/Y/Z:设定自旋转轴。默认为0,0,1。范围是-1.0 to 1.0。
  Divergence(偏离):指定自旋转轴的变化范围。默认为0。范围是0到180。
  Uniqueness(惟一性)选项组。利用该组参数,通过设置其下方的种子数值,可以在相同的参数设置下产生不同的随机效果,以确保其随机性。
  New(新建):系统随机产生一个新的种子数。
  Seed(种子数):使用数值框让用户来指定一个随机种子数。
第三篇 Operators(操作器)的功用③
  14、Scale Operator(缩放操作器)。命令面板如图1-15所示。

图1-15
  功用:缩放操作器用于在事件过程中设置动画粒子的尺寸。
  Type(类型):缩放类型设置包括在事件中一次或者重复缩放粒子的选项,以绝对或者相对因素缩放。默认为Overwrite Once。
  Overwrite Once(一次覆盖):以绝对百分比数值一次设置缩放,忽略以前的缩放。
  Inherit Once(一次继承):以现存缩放的百分比设置一次缩放。现存缩放由先前的缩放修改器指定。
  Absolute(绝对):以绝对百分比数值连续设置粒子在事件中时缩放,忽略先前的缩放。
  Relative First(相对):以现存缩放百分比数值连续设置粒子在事件中的缩放,现存缩放必须由先前缩放操作器或者形状关联指定。
  Relative Successive(相对连续):相对于同一事件中早期缩放设置连续缩放粒子。
  Scale Factor(缩放因素)选项组
操作器在每个粒子局部轴缩放,可以在单个轴或者任意复合轴缩放。
  X/Y/Z:以粒子当前尺寸百分比设置缩放,打开Constrain Proportions进行等值缩放,然后改变轴设置。范围从0到10 000 000,默认为100。
  Constrain Proportions(约束属性):选中时,保留缩放因素设置当前比率,所以改变任一轴设置将改变所有。默认为选中。
  Scale Variation(缩放变化)选项组
  X/Y/Z:以粒子先前尺寸百分比设置缩放变化,选中Constrain Proportions复选框则进行等值缩放,然后改变轴设置。范围从0到100,默认为0。
  Constrain Proportions(约束属性):选中时,保留变化设置当前比率,所以改变任一轴设置将改变所有。默认为选中。
  Bias(偏移):选择在指定范围内分布缩放变化的方法。默认为None。
  None(无):没有偏移,在范围内平均分不变化。
  Centered(中心):缩放变化集中在范围中间;即在0.0%.
  Towards Minimum(趋向最小):缩放变化集中在范围下端;即绝大多数变量小于缩放数值。
  Towards Maximum(趋向最大):缩放变化集中在范围上端;即绝大多数变量大于缩放数值。
  Animation Offset Keying(动画偏移关键帧)选项组。如果为Scale Factor或者Scale Variation设置或者为两者同时设定动画,软件开始即将开始关键帧或者当前事件第1帧动画应用到所有的粒子动画,或者基于粒子年龄应用动画。例如,如果将Sync By 设置为 Particle Age,将Scale Factor关键帧设置在0和30,如果粒子在缩放事件或者优先事件中,那么每个粒子的缩放因素动画介于粒子出生和第30帧之间。  Sync By(同步):选择使用动画参数的时间帧。
  Absolute Time(绝对时间):参数设置的任意帧在设置的实际帧被使用。
  Particle Age(粒子年龄):参数设置的任意帧在每个粒子的存活期的相应帧被使用。
  Event Duration(事件持续):参数设置的任意帧在每个粒子开始其第一次进入事件时被使用。
  Uniqueness(惟一性)选项组。利用该组参数,通过设置其下方的种子数值,可以在相同的参数设置下产生不同的随机效果,以确保其随机性。
  New(新建):系统随机产生一个新的种子数。
  Seed(种子数):使用数值框让用户来指定一个随机种子数。
 15、Script Operator(脚本操作器)。命令面板如图1-16所示。

图1-16
  功用:脚本操作器使用MAXScript脚本激活粒子流系统中的粒子控制。增加一个新的脚本操作器,就包含一个减慢粒子的默认脚本,减到足够慢时,将前50个粒子分离为一个沿着X轴负方向移动的流,其他沿着正方向移动。
  Edit Script(编辑脚本):单击此按钮打开脚本编辑器窗口中的当前脚本。
  Uniqueness(惟一性)选项组。利用该组参数,通过设置其下方的种子数值,可以在相同的参数设置下产生不同的随机效果,以确保其随机性。
  New(新建):系统随机产生一个新的种子数。
  Seed(种子数):使用数值框让用户来指定一个随机的种子数。
  16、Shape Operator(图形操作器)。命令面板如图1-17所示。

图1-17
  功用:图形操作器是定义在粒子系统中使用的几何体的默认操作器,用来指定粒子形状为四棱锥形、立方体、球体或者顶点。注意: 所有由形状创建的原始几何体粒子在它们的几何体中心都有轴心点。
  Shape(形状):用来设定粒子形状,默认为Pyramid。
  Vertex(节点):使用该选项可创建非渲染粒子。在使用脚本操作器时有用。
  Tetra:这些四面体形状的粒子有4个三角形侧面。只有4个代表性四面体是可渲染粒子形状中最简单的。
  Cube(立方体):这些立方体形状的粒子有6个同样大小的正方形侧面。
  Sphere(球体):创建球状粒子。球体在可渲染粒子形状中有最多的代表性,其方向不明显。
  Size(尺寸):设置粒子的全面尺寸,默认为10.0。设置为0使得粒子不可见。
  Scale(缩放):以尺寸数值百分比设置粒子尺寸。缩放是可以设置动画的。
  17、Shape Facing Operator(图形朝向操作器)。命令面板如图1-18所示。

图1-18
  功用:图形朝向操作器将粒子创建为总是面向指定对象、摄像机或者方向的矩形。例如烟、火、水、泡沫或者雪花。默认情况下,粒子上下面平行于水平平面,设置Orientation可以改变默认对齐方式。需要注意的是,因为图形朝向操作器必须知道当前粒子位置才能计算粒子方向,所以将其放置于位置操作器下面。
  Look At Camera/Object(瞄准摄像机/对象)选项组
  None按钮:拾取瞄准对象后,其名称显示在该按钮上。
  Use Parallel Direction(使用平行方向):未选中该复选框时,所有粒子不断旋转以保持面对瞄准对象。选中时,所有粒子面对由Particle Source gizmo(粒子源线框)和瞄准对象之间线条的同一方向。  Size/Width(尺寸/宽度)选项组
  In World Space(世界空间):使用世界坐标系统设置绝对尺寸。
  Units(单位):选择In World Space选项时,以系统单位设置粒子尺寸。范围从0到1 000 000 000,默认为1。
  In Local Space(局部空间):在局部空间相对于现存尺寸设置粒子尺寸。
  Inherited %(继承百分比):以现存尺寸百分比设置面向指定对象的粒子的尺寸。范围从0到100,默认为100。
  In Screen Space(屏幕空间):以屏幕宽度百分比设置面向指定对象的粒子的尺寸。只有在瞄准对象是摄像机并且不选中Use Parallel Direction复选框时有效。
  Proportion %(比例百分比):以屏幕看到的百分比设置粒子尺寸。默认为1。
  Variation %(变化百分比):设置粒子尺寸变化百分比。默认为0。
  Pivot At(轴点位置):指定粒子保持面对方向时旋转围绕的部分。可选的选项有Top、Center和Bottom。默认为Center。
  W/H Ratio(宽度/高度比):定义形状矩形的宽度与高度的比率。
  Orientation(方向)选项组。选择粒子的旋转方式,默认为Align to Horizon。
  Align to Horizon(水平对齐):保持顶部边水平对齐。
  Align to Speed Follow(速度跟随对齐):使用每个粒子的右侧作为引导边,所有上下边与粒子运动方向对齐。
  Random(随机):随机定位上部边。
  Allow Spinning(允许旋转):选择此选项旋转粒子。
  Uniqueness(惟一性)选项组。利用该组参数,通过设置其下方的种子数值,可以在相同的参数设置下产生不同的随机效果,以确保其随机性。
  New(新建):使用随机格式计算一个新的种子数。
  Seed(种子数):指定一个随机种子数。
18、Shape Instance Operator(图形实例操作器)。命令面板如图1-19所示。

图1-19
  功用:图形实例操作器允许使用场景中的任一关联对象作为粒子。中能为每个事件定义一个有效的关联对象,但此对象可以包含任意数量的子对象,这些子对象可被看作独立的粒子。使用测试可以将粒子流分成多个分支并为其定义不同的粒子形状。关联几何体关联到粒子系统,其任何物理改变都会立即反映到粒子系统。隐藏初始几何体,仍然显示粒子;删除初始几何体,粒子同时被删除。
  Particle Geometry(粒子几何体)选项组
  None按钮:单击该按钮,可在场景中选择用作粒子形状的几何体对象。合理的对象包括复合形状对象,例如组和层。
  Separate Particles For(尺寸/宽度)选项组。3ds max提供合并相异的几何体为单一实体的几种方法,包括组、用链接建立的层和结合。默认情况下,使用复合形状几何体做粒子几何体时,每个粒子包含全部成员对象。
  Group Members(组成员):选中时,组成员被看作分离的粒子。
  Object and Children(对象和孩子):选中时,链接的对象被看作分离的粒子。
  Object Elements(对象元素):选中时,单一Mesh对象的元素子对象会被看作分离的粒子。
  Vertices/Faces(节点/面):显示每个粒子的节点和三角形数量。
  Number of Shapes(形状数量):显示不同粒子形状的数量。
  Scale(%)(比例百分比):指定所有粒子均匀缩放的百分比。范围从0到100 000,默认为选中,数值为100。
  Variation %(变化百分比):指定缩放变化的随机百分比。范围从0到100,默认为0。
  Acquire Mapping(获取贴图):粒子从关联对象获取贴图。默认为选中。
  Acquire Material(获取材质):粒子从关联对象获取材质。默认为选中。
  Multi-Shape Random Order(复合形状随机顺序):选中时,以随机顺序指定形状到粒子。未选中时,粒子流将复合形状对象作为单一粒子发射形状,以形状的X坐标,即X轴坐标最小的先发射。默认为不选中。
  Animated Shape(动画形状):选中时,使用关联对象的动画。未选中时,粒子没有动画。
  Acquire Current Shape(获取当前形状):选中时,粒子进入事件时,粒子流从关联对象获取粒子形状。
  Animation Offset Keying(动画偏移关键帧)选项组
这些选项在选中Animated Shape时有效。
  Sync By(同步):选择关联对象与粒子动画同步的方式。
  Absolute Time(绝对时间):在给定的运动中所有粒子有相同形状。
  Particle Age(粒子年龄):关联对象的动画与粒子年龄同步。
  Event Duration(事件持续):关联对象动画的第0帧对应粒子进入事件的运动。
  Rand Offset(随机偏移):选中时,随机变化粒子动画的开始。
  Update Particle Shape(更新粒子形状):更新关联粒子的形状。
  Uniqueness(惟一性)选项组。设定缩放变化,动画偏移和复合形状变化的随机数。
  Seed(种子数):指定一个随机种子数。
  New(新建):使用随机格式计算一个新的种子数。
19、Shape Mark Operator(形状标志操作器)。命令面板如图1-20所示。

图1-20
  功用:形状标志操作器可将每个粒子替换为带有贴图的长方形或者立方体。该操作器在粒子冲击场景中的对象后保留标记。例如,当一个鱼雷碰撞小船并且爆炸时,可以使用该操作器在小船表面留下烧焦的痕迹。
  Contact Object(接触对象)选项组。使用该控制定义留下标记的对象。
  None按钮:单击该按钮,在场景中选择用作解除对象的对象。
  Align to Surface Animation(对其到表面动画):选中时,Shape Mark考虑接触对象节点动画引起的表面变化。如果形状设置为长方形,标记会改变其方向和位置以粘在接触对象的表面。如果形状设置为立方体交集,标记会沿着接触对象改变形状。未选中时,只考虑接触对象的变形。警告: 该选项要求高的CPU和内存设置。
  Orientation(方向)选项组
  Align To(对齐到):取决于形状设置,通过形状标志创建矩形或者立方体接触几何体的立方体剪切块。而方向设置指定形状定位,在标志的局部坐标系,X轴是长,Y轴是宽,Z轴是高。Z轴与对象当前点的表面垂直。
  Speed(速度):长度方向与粒子速度向量在接触平面的投影平行。
  Particle X/Y/Z(粒子X/Y/Z):长度方向与粒子移动到接触对象时的局部坐标轴(X,Y,Z)的投影。
  Random(随机):在接触平面使用随机长度方向。
  Divergence(偏离):以角度作为随机变化范围到长度方向定位。
  Size(尺寸)选项组。该选项组可指定设置标记尺寸的坐标系统。
  In World Space(世界空间):使用世界坐标系以系统单位设置标记的绝对尺寸。
  Width/Length(宽度/长度):选中In World Space选项时,可设置粒子外形,范围从0到1 000 000 000,默认值为1.0。
  In Local Space(局部坐标):在局部空间相对现存粒子尺寸设置标记尺寸。
  Inherited %(继承百分比):相对现存粒子尺寸设置标记尺寸百分比。范围从0到100,默认为100。
  Variation %(变化百分比):设定粒子尺寸变化的百分比,默认为0.0。
  Impact Angle Distortion(碰撞角度扭曲):选中时,根据粒子接近的角度增加标记的长度数值。如果粒子以小角度接近接触几何体时,此功能会有效地拉伸粒子形状。默认为不选中。
  Distor. Max %(扭曲最大百分比):设置拉伸标记的最大百分比。默认为1000。
  Shape(形状)选项组。该选项组的选项在选中Animated Shape时有效。
  Rectangle(长方形):标记形状为双面长方形。
  Box Intersection(立方体交集):为每个留下标记的粒子创建立方体,在接触对象和立方体之间使用布尔交集做标记形状。
  Box Height(立方体高度):设置被立方体交集方法使用的立方体的高度,默认为10.0。
  Allow Multiple Elements(允许复合元素):选中时,粒子可以在包括复合元素的接触对象的所有部分留下标记。未选中时,只在碰撞的第一个元素有粒子标记。默认为不选中。
  Continuous Update(连续更新):选中时,根据粒子的当前位置和接触表面,标记形状在每帧被重新计算。此选项会占用很大的CPU时间。
  Generate Mapping Coords.(创建贴图坐标):使用贴图材质时,允许形状标记的正确应用。默认为选中。
  Pivot Offset %(轴偏移百分比):考虑撞击粒子的轴点沿着形状标记长度移动其位置。默认为0.0,范围从-50.0到50.0。
  Surface Offset(表面偏移):指定接触对象表面以上的形状标记的距离。默认为0.001。
  Offset Variation(偏移变化):在粒子的实际表面偏移中指定随机变化的最大范围。默认为0。
  Vertex Jitter(节点Jitter):指定使用立方体交集创建的标记的节点位置随机变化的最大范围。默认为0.0。
  Uniqueness(惟一性)选项组。激活尺寸/宽度变化的随机变化。
  Seed(种子数):指定一个随机种子数。
  New(新建):使用随机格式计算一个新的种子数。
  20、Speed Operator(速度操作器)。命令面板如图1-21所示。

图1-21
  功用:默认的速度操作器,出现在创建新的粒子流图标时的第一个事件当中。主要用来对粒子的速度和方向进行基本控制。
  Speed(速度):粒子每秒速度。默认为300。注意: 粒子速度只在粒子进入事件的时候被设置一次。如果为速度数值设置动画,则粒子速度不会发生改变;而是给予每个粒子与进入事件的当前速度数值相等的恒定的速度。
  Variation(变化):粒子速度的变化量。默认为0.0。
  Direction(方向)选项组。主要用来指定粒子出生后的路径。默认为Along Icon Arrow。
  Along Icon Arrow(沿着图标箭头):粒子沿着平行于图标箭头的方向移动。
  Icon Center Out(图标中心外):每个粒子沿着粒子位置和图标中心的连线方向运动。
  Icon Arrow Out(图标箭头外):每个粒子沿着粒子位置和图标箭头之间的连线运动。
  Random 3D(随机3D):粒子在所有方向上移动。
  Random Horizontal(随机水平):每个粒子沿着随机水平方向移动。
  Inherit Previous(继承先前):使用当前运动方向。
  Reverse(反转):选中时,方向会反转。默认为不选中。
  Divergence(偏离):选中时,速度偏离粒子流。范围从0到180。
  Uniqueness(惟一性)选项组。可以使速度变化随机化,使用随机3D和随机水平使方向随机变化。
  Seed(种子数):指定一个随机种子数。
  New(新建):使用随机化公式计算一个新的种子数。
第三篇 Operators(操作器)的功用④
  21、Speed By Icon Operator(速度图标操作器)。命令面板如图1-22所示。

图1-22
  功用:速度图标操作器允许使用特殊的非渲染图标控制粒子速度和方向。在为图标设置动画时,使其运动传递到粒子。注意: 如果从创建面板中添加图标速度,则粒子流在粒子图表中为操作器创建分离的事件。
  Accel Limit(加速度限制):粒子速度每秒改变的最大数值,以匹配操作器图标的速度。默认为100.0。
  Influence %(影响百分比):决定先前速度和操作器图标速度的混合。默认为100.0,范围从0.0到100.0。100时,速度只受图标速度的影响;0时,图标速度不影响粒子速度。
  Speed Variation(速度变化):激活粒子速度的随机变化,使其速度不是精确地按照图标速度移动。默认为不选中。
  Min %/Max %(最小最大百分比):设置粒子速度变化的最小最大百分比。默认最小为50.0,最大为100.0。
  Use Icon Orientation(使用图标定位):将图标定位动画应用到粒子。默认时,Speed By Icon只通过图标位置控制粒子运动。如果选中该选项,粒子运动同时受图标旋转的影响。默认为不选中。
  Steer Towards Trajectory(沿着轨迹):在离开图标距离数值之外的粒子直接向图标运动。默认为不选中。
  Distance(距离):设置粒子和操作器图标的距离,超过这个距离后Steer Towards Trajectory起作用。默认为10.0。
  Parameters Animation(方向)选项组。如果为操作器设置动画,软件开始将这个动画应用到所有粒子 。
  Sync By(同步):选择使用动画参数的时间帧。
  Absolute Time(绝对时间):参数设置的任意帧在设置的实际帧被使用。
  Particle Age(粒子年龄):参数设置的任意帧在每个粒子的存活期的相应帧被使用。
  Event Duration(事件持续):参数设置的任意帧在每个粒子第一次进入事件开始时被使用。
  Icon Animation(图标动画)选项组。软件开始将Speed By Icon操作器图标的动画应用到所有粒子。  Sync By(同步):选择使用图标动画到粒子的时间帧。
  Absolute Time(绝对时间):图标运动设置的任意帧在其设置的实际帧被使用。
  Particle Age(粒子年龄):图标运动设置的任意帧在每个粒子的存活期的相应帧被使用。
  Event Duration(事件持续):图标运动设置的任意帧在每个粒子开始其第一次进入事件时被使用。
  Icon Size(图标尺寸):设置操作器图标的尺寸,不影响粒子行为。
  Uniqueness(惟一性)选项组。激活速度变化范围的随机变化。
  Seed(种子数):指定一个随机种子数。
  New(新建):使用随机格式计算一个新的种子数。
22、Speed By Surface Operator(速度按曲面操作器)。命令面板如图1-23所示。

图1-23
  功用:速度按曲面操作器允许使用场景中的任意对象控制粒子速度和方向,同时提供由场景中材质控制速度的选项。为了更好地控制表面粒子运动,可在同一事件中的速度曲面操作器前使用速度操作器。使用速度操作器指定表面方向,再使用速度曲面操作器调整速度向量的垂直组成。
  Set Speed Once(一次设置速度):操作器为每个粒子设置一次进入事件时的速度。
  Control Speed Continuously(连续控制速度):操作器在整个事件过程设置粒子速度。
  Speed(速度):粒子每秒速度。默认为300.0。
  Variation(变化):设置粒子速度每秒的变化数量。默认为0.0。
  Surface Geometry(曲面几何体)选项组。指定影响粒子速度和方向的对象。
  Add(添加):从视口中添加对象到列表 。
  By List(由列表添加):添加多个对象到列表,单击该按钮,打开Select Surface Objects对话框,从中选择对象。
  Remove(删除):从列表中删除高亮显示的对象。
  Animated Shape(动画形状):选中时允许粒子随着对象表面运动,对象的动画全由变形或应用了修改器形成的。
  Subframe Sampling(子帧取样):选中时,操作器基于tick(一秒有4800tick)获取发射器动画。默认为不选中。
  Speed by Material(材质速度):基于应用到Surface Geometry对象的材质属性改变粒子速度和方向。例如,指定黑白棋格漫反射贴图的对象,选择Grayscale Multiplier选项,则靠近白棋格区域的粒子移动较快。注意: 要在视口中合理显示受材质影响的速度,必须满足以下两个条件:首先,至少有一个视口设置为明暗显示模式;另外,要在材质编辑器中选中Show Map In Viewport选项。
  Grayscale Multiplier(灰度倍增):通过材质亮度控制速度,暗区域产生低速度粒子,亮区域产生高速度粒子。
  Signed Grayscale(符号灰度):类似Grayscale Multiplier,但是倍增也可以是负值,以导致反向运动。
  RGB as World XYZ Mult.(世界XYZ RGB):类似Grayscale Multiplier,但使用材质的红、绿、篮通道强度分别影响世界坐标中XYZ轴的粒子速度。
  RGB as Local XYZ Mult.(局部XYZ RGB):类似RGB as World XYZ Mult,但是使用的是局部坐标。  Use Sub-Material(使用子材质):选中时,使用指定到Surface Geometry对象的多维/子对象材质定义速度。
  Mtl ID(材质ID):指定用作粒子速度控制的子材质的材质ID。
  Direction(方向)选项组。通过方向下拉列表框可指定粒子出生后的路径,默认为Surface Normals。
  Surface Normals(表面法线):每个粒子沿着垂直于最近面的直线移动。
  Out Of Surface(表面外):粒子离开最近面。可以使用该选项禁止粒子进入对象内部。
  Parallel To Surface(平行表面):粒子平行于最近的面运动。
  Divergence(偏离):选中时,粒子流展开。范围从0到180。默认为0。可设置动画。为了实现喷泉喷射效果,设置Position为Location to Pivot,设置Direction为Along Icon Arrow,设置Divergence到合适的角度,然后旋转图标使其箭头向上。
  Continuous Speed Control(连续速度控制)选项组
  Accel Limit(加速度限制):设置最大加速度。
  Unlimited Range(无限范围):选中时,表面在任意距离控制粒子速度和方向。默认为选中。
  Range(范围):粒子和控制表面之间的最大距离,超出范围,粒子不受表面几何体控制。
  Falloff Zone(衰减区域):超出范围数值的距离,在此距离之内表面几何体对粒子运动不是完全控制。
  Animation Offset Keying(动画偏移关键帧)选项组。为使用动画参数选择关键帧。
  Absolute Time(绝对时间):参数设置的任意帧在设置的实际帧被使用。
  Particle Age(粒子年龄):参数设置的任意帧在每个粒子的存活期的相应帧被使用。
  Event Duration(事件持续):参数设置的任意帧在每个粒子第一次进入事件开始时被使用。
  Uniqueness(惟一性)选项组。激活速度变化范围和使用随机3D和随机水平方向的随机变化。
  Seed(种子数):指定一个随机种子数。
  New(新建):使用随机格式计算一个新的种子数。
23、Cache Operator(缓存操作器)。命令面板如图1-24所示。

图1-24
  功用:缓存操作器主要用来在内存中记录和存储粒子状态。需要注意的是,一个事件中只能使用一个缓存操作器,若使用两个,只能一个用作视口设置,一个用作渲染。同理,不能在同一个流中使用全局和局部高速缓存操作器,若使用两个,只能一个用作视口设置,一个用作渲染。在使用实时播放速度不够快时,我们可以使用高速缓存操作器使之加速。
  Use At(使用位置):当视口回放或者渲染时存储粒子运动到缓存中。默认为视口。
  Update(更新):如果在粒子系统中改变参数,缓存数据可能失效,此设置决定粒子流是否自动更新缓存,或者手动更新。默认为Always。
  Always(始终):在缓存操作器范围下改变参数将引起从当前范围的开始到当前帧的存储数据的自动更新。
  Manually(手动):只有单击更新按钮或清除高速缓存并移动到其他帧时更新。
  Range(范围):设置缓存操作器发生作用的帧范围。默认为Active Segment。
  Complete(完全):将整个动画存储到缓存。
  Active Segment(活动段):只存储活动段的帧到缓存,在Time Configuration中设置开始帧和结束帧。
  Custom(自定义):只存储自定义范围内的帧。
  Start/End Time(开始/结束时间):存储范围的开始帧和结束帧。默认为0,30。
  Sampling(取样):决定高速缓存操作器取样和存储动画的频率。默认为Every Frame。
  Every Frame(每帧):每帧存储一次动画数据。
  Integration Step(综合步幅):每个综合步幅存储动画数据。
  Every Nth Frame(每N帧):每隔N帧存储动画数据。
  N:当Sampling设置为Every Nth Frame时,取样时的帧间隔。默认为5。
  Cache Test Results(高速缓存测试结果):当存储粒子数据时,同时存储测试结果,默认为选中。  Save Cache with File(与文件保存缓存):选中时,存储数据和场景同时保存到磁盘。默认为不选中。
  Save Cache with Hold(用Hold保存缓存):将存储数据保存在由编辑菜单Hold创建的Hold文件中。默认为不选中。
  Manual Update(手动更新)选项组
  Update(更新):在当前范围内计算粒子运动并将其存储在缓存中,代替现有存储数据 。
  Clear(清除):删除存储数据。
  Range(范围):设置缓存操作器重新计算数据的帧范围。默认为Active Segment。
  Complete(完全):清除整个动画的存储。
  Active Segment(激活段):更新激活段帧的存储。
  Custom(自定义):更新自定义范围内帧的存储。
  Start/End Time(开始/结束时间):更新时的开始和结束时间。默认为0,30。
  Update Viewports(更新视口):选中时,动画在缓存手动更新阶段在视口中播放。
  Memory Used(K)(已使用内存)选项组。缓存操作器将数据存储到系统的内存中,在这里我们可以指定使用的内存数量的上限。 如果我们限制的值和缓存数据的数量超过了可用的内存,则计算机系统会改用基于硬盘的虚拟内存,虚拟内存会降低执行缓存的速度。
  Limit(限制):用作存储粒子数据的最大系统内存数量,以KB为单位,默认为100 000或者97.6 MB。
  Total(总数):当前存储数据使用的内存数量,单位不KB。
  Current Frame(当前帧):当前帧存储数据使用的内存数量,单位为KB。
24、Display Operator(显示操作器)。命令面板如图1-25所示。

图1-25
  功用:显示操作器主要用来指定视口中粒子的显示方式。默认的显示方式为Ticks,是最简单最快的显示方式。对使用大量粒子的动画很有用。在复杂性上与之相反的是Geometry选项,用来以实际形状显示粒子。显示操作器提供了一系列简单形状,这些形状在测试动画时能提供快速反馈。也可以设置可见粒子百分比。默认时,粒子流自动在每一个局部事件插入新的显示操作器。可以选择Particle View→Options Menu→Default Display→Global,自动在新的全局事件插入显示操作器,但不会插入新的局部事件中。
  Type(类型):选择视口中粒子的显示方式。
  None(无):粒子不显示在视口中。
  Dots(点):粒子显示为单一像素。
  Ticks:每个粒子显示为+号。
  Circles(圆):每个粒子显示为小圆。
  Lines(线):每个粒子显示为一像素宽的直线,线的长度标志着粒子速度,其方向反应了运动方向。
  Bounding Boxes(边界盒):每个粒子显示为边界盒。使用该选项可在稍微消耗计算速度的基础上更好地显示最后的动画。
  Geometry(几何体):每个粒子显示为实际几何体。使用该选项会得到最好的动画效果,但是渲染的速度最慢。
  Diamonds(菱形):每个粒子以菱形显示。
  Boxes(立方体):每个粒子显示为小正方形。
  Asterisks(星形):每个粒子显示为星号(*)。
  Triangles(三角形):每个粒子显示为小三角形。
  Visible %(可见百分比):指定视口中粒子的可见百分比。减少此数值可提高视口刷新速度。
  Show Particle IDs(显示粒子ID):选中时,每个粒子的惟一的索引数值显示在视口中。
  [color swatch](颜色样本):使用不同的颜色显示粒子,并且与Type选项合用以区分不同事件中的粒子。
  Selected(选择):选择视口中粒子的显示方式,与Type相同。
  25、Notes Operator(记录操作器)。命令面板如图1-26所示。

图1-26
  功用:记录操作器用于为事件增加文本注释,对粒子系统没有直接影响,但可以帮助追踪每个事件的全面功能。可以直接在文本区域输入注释。
26、Render Operator(渲染操作器)。命令面板如图1-27所示。

图1-27
  功用:渲染操作器提供与渲染粒子相关的控制。可以指定渲染粒子所采用的形式以及出于渲染目的将粒子转换成独立的Mesh对象。
  Type(类型):以 Geometry和边界盒渲染粒子,或者在渲染时不渲染粒子系统,或者激活粒子系统但防止可渲染发送到3ds max渲染器。默认为Bounding Boxes。
  None(无):粒子系统(或者事件)被认为是不可渲染的。
  Bounding Boxes(边界盒):粒子按照边界盒进行渲染。使用该选项可提高测试渲染的速度。
  Geometry(几何体):每个粒子渲染为实际几何体。
  Phantom(幻影):当想让粒子系统功能正常,计算每一帧动画但不直接渲染几何体时,使用该选项。  Visible %(可见百分比):指定渲染粒子的百分比。默认为100,范围从0到100。
  Render Result(渲染结果)选项组。该选项组的设置决定系统将粒子转换成Mesh格式的方式。默认情况下,以单一Mesh渲染粒子。然而,在一些情况下,需要选中Mesh Per Particle选项以使每个粒子转换成独立的Mesh对象。注意: 粒子流每帧可以处理的粒子数量局限于系统资源,但每个单一Mesh可以有5,000,000面或者节点。如果Mesh中的面或节点总数超过5,000,000,粒子流会忽略超过限度的粒子。
  Single Mesh(单一网格):将所有粒子组成一个Mesh对象传递到渲染器。
  Multiple Meshes(复合网格):将指定数量的Mesh对象传递到渲染器,每个Mesh对象包含指定数目的粒子。如果由Particles p/Mesh计算的细分粒子总数的结果小于指定的Mesh Count数值,一些Mesh可能包含少的面或者不包含面。
  Mesh Count(网格数):粒子流传递到渲染器的网格对象的最大数量。
  Particles p/Mesh(每网格的粒子数量):构成每个网格对象将包含的粒子数量。
  Mesh Per Particle(每个粒子一个网格):将每个粒子作为独立的网格传递到渲染器。
  27、本节小结:本节我们主要学习了Operators(操作器)的功用,下一节我们将学习Test(测试)的操作使用,请大家继续关注PConline软件资讯的3DS Max栏目。
<FONT size=2>第四篇 Test功能详解①<BR>  概述:Test(测试)在粒子流中,其基本功能就是用来测定粒子是否符合一个或是多个条件,如果符合条件,则粒子可以发送入另一个事件。当一个粒子通过测试时,则发出“Test True”(测试通过)的信息。在把符合条件的粒子发送入另一个事件时,必须将粒子通过的测试和该事件线接在一起。未通过测试则发出“Test False”(测试错误)的信息,同时保持该事件状态并重复受制于它的操作器以及所需要的测试。其中的一些测试同时也可以作为操作器来使用,因此包括一些用于控制粒子行为的参数。如果没有将一个测试和另一个事件线接起来,则测试仅仅起到类似操作器的功能。需要注意的是,除了特殊原因之外,一般都将测试放在事件的末尾。按下键盘上的6键,打开粒子视图,如图1-1所示即为所有的测试。<BR><BR>图1-1 <BR>  1、Age Test(年龄测试)。在粒子视图中,将Age Test拖动到上面的事件窗口中,选择Age Test,在其右侧即可看见它的命令参数,如图1-2所示。<BR><BR>图1-2<BR>  功用:从动画开始算起,通过“年龄测试”,粒子系统可以检查开始动画后是否已过了指定的时间,某个粒子已存在多长时间,或某个粒子在当前事件中已存在多长时间,并相应导向不同分支。<BR>  在下拉列表中选出一种需要测试的年龄类型。默认为Particle Age(粒子年龄)。<BR>  Absolute Age(绝对年龄):测试当前动画的全部帧数。<BR>  Particle Age(粒子年龄):测试每个粒子的当前年龄。<BR>  Event Age(事件年龄):测试当前事件的持续时间。<BR>  Test True if Particle Value选项组:主要用于指定当粒子通过测试时,是否让粒子进入下一个事件。默认情况下为Is Greater Than Test Value。当然也可以选择第二项Is Less Than Test Value。例如,如果选择了绝对年龄的测试类型并且设置了测试值为60,随机数为0,选择了Is Less Than Test Value的通过测试方式,则粒子只有在60帧时才开始进入下一事件,60帧以后,粒子仍保持在当前事件中。<BR>  Test Value(测试值):指定需要测试的特定帧数、粒子的年龄或者事件的持续时间。默认值为30。注意此项不能设置动画。<BR>  Variation(变化):被测试的值可以有随机的变化的帧数,默认值为5。例如,如果设置了测试值为300,改变量为10,则每个粒子的测试值可能在290和310之间。注意此项不能设置动画。<BR>  Subframe Sampling(子帧取样):选中这个复选框可以避免粒子的“Puffing”(膨胀)情况。默认为选中。<BR>  Uniqueness(惟一)选项组<BR>  Seed(数量):指定随机数值。<BR>  New(速率):使用随机公式计算新种子。<BR>2、Collision tests(碰撞测试)。其命令面板如图1-3所示。<BR><BR>图1-3 <BR>  功用:用于与一个或多个指定的空间扭曲导向板碰撞的粒子测试。同时也可以测试一个粒子在发生碰撞以后,速度是减慢还是加快,甚至能够测试出是否在指定的帧数内与导向板相撞。碰撞测试支持除了DynaFlect(动力学导向板)以外的所有导向板。需要注意的是,当测试碰撞多个导向板时,最好把所有的导向板都放在一个碰撞测试中,这样会为所有导向板的碰撞同时进行测试,也可以帮助防止可能错误的碰撞。<BR>  Deflectors(导向板)选项组。在这里可以显示出当前生效的导向板,也可以添加和移除导向板。<BR>  List(列表):显示应用于此操作器的导向板。如果将一个导向板从列表中删除,则其名称由“”(已删除)代替。<BR>  Add(添加):单击此按钮,然后在场景中单击选择要添加入列表的导向板即可将导向板加入列表当中。<BR>  By List(按列表):单击此按钮,然后在选择导向板对话框中选择需要加入列表的导向板,需要注意的是,要加入的导向板必须已经存在于场景中。<BR>  Remove(移除):先在列表中选中一个导向板,单击此按钮,则将其从列表中删除,但从该列表中移除的导向板只是不起作用了,但是它仍然存在于场景中。<BR>  Test True If Particle选项组。选择粒子通过测试进入下一事件所必须满足的条件,默认为Collides(碰撞)。<BR>  Speed(速度):决定粒子碰撞的速度和方向。从以下选项中选择一种,默认为Bounce(反弹)。<BR>  Bounce(反弹):粒子碰撞后的速度和方向将由导向板决定。<BR>  Continue(继续):粒子的速度和方向不受碰撞影响。<BR>  Stop(停止):碰撞后,粒子速度设置为0。<BR>  Random(随机):碰撞后,粒子以随机的方向从导向板反弹。<BR>  Is Slow After Collision(s)(碰撞后速度慢):如果测试成功,在碰撞以后,粒子的速度会小于Speed Min(最小速度)的值。<BR>  Speed Min(最小速度):粒子运动速度小于此值,则测试通过且进入下一事件。默认值为1.0。<BR>  Is Fast After Collision(s)(碰撞后速度快):如果测试成功, 在碰撞以后,粒子的速度会大于Speed Max(最大速度)的值。<BR>  Speed Max(最大速度):粒子运动速度大于此值,则测试通过且进入下一事件。默认值为1000.0。<BR>  Collided Multiple Times(多次碰撞):一个粒子按指定的次数发生碰撞,则测试通过。粒子移至最后一次碰撞的位置,然后重定向进入下一个事件。<BR>  # Times(次数):如果要通过测试,粒子必须发生碰撞的次数。<BR>  Speed(速度):确定粒子按指定次数碰撞后的运动速度以及方向。<BR>  Will Collide(即将碰撞):基于当前的方向和速度,系统以线性的方式推断粒子的运动,如果粒子在指定的时间间隔与导向板发生碰撞,则通过测试。粒子进入下一个事件,不改变速度和方向。<BR>  # Frames(帧数):在系统寻找一个迫近的碰撞之前的帧数。<BR>  Uniqueness(惟一)选项组<BR>  Seed(数量):指定随机数值。<BR>  New(速率):使用随机公式计算新种子。<BR></FONT>
<FONT size=2>3、Collision Spawn(碰撞产卵)。其命令面板如图1-4所示。<BR><BR>图1-4<BR>  功用:存在的粒子与一个或多个导向板发生碰撞后产生新的粒子。可以为碰撞后的粒子及其后代指定不同的属性。<BR>  Test True for选项组。此选项组中主要用来指定在满足测试条件后,哪些粒子会有资格重新定向到下一个事件当中。<BR>  Parent Particles(父粒子):选中此项,符合条件时,父粒子具有重定向的资格。默认此项选中。<BR>  Spawn Particles(卵粒子):选中此项,符合条件时,卵生的粒子具有重定向的资格。默认此项选中。<BR>  Deflectors(导向板)选项组。主要是用来显示当前生效的导向板,可以添加或是删除导向板。<BR>  List(列表):显示应用于操作器的导向板。如果将一个导向板从列表中删除,则其名称由“”(已删除)代替。<BR>  Add(添加):单击此按钮,然后在场景中单击选择要添加入列表的导向板即可将导向板加入到列表当中。<BR>  By List(按列表):单击此按钮,然后在选择导向板对话框中选择需要加入列表的导向板即可。<BR>  Remove(移除):先在列表中选中一个导向板,再单击此按钮,则将其从列表中删除,但从该列表中移除的导向板只是不起作用了,它仍然存在于场景中。<BR>  Spawn Rate And Amount(产卵率和产卵数)选项组。主要用来设置什么时间产生粒子以及与产生粒子数有前的其它的值。<BR>  Spawn On First Collision(第一次碰撞时产卵):选中粒子只在与导向板第一次碰撞时产卵。<BR>  Delete Parent(删除父粒子):选中此项,则每一个原始的粒子在产卵后就将其删除。<BR>  Spawn On Each Collision(每次碰撞时产卵):在每一次碰撞时都会产卵,直至碰撞次数达到Until #(直到)参数所指定的值时。<BR>  Until #(次数上限):产卵的父粒子最大碰撞的次数。默认为3。<BR>  Spawnable(可产卵):设置当前事件中可产卵粒子的百分比。默认为100。<BR>  Offspring #(后代):每一个父粒子在每一次产卵事件中新生的粒子数。默认值为1。<BR>  Variation(变化量):允许Offspring #值产生随机变化的数值。默认为0。<BR>  Sync By(同步):选择使Offspring #(后代)和Variation(变化量)产生动画的时间段。<BR>  Absolute Time(绝对时间):所有设置了参数的帧都应用于动画。<BR>  Particle Age(粒子年龄):所有相对应于每个粒子存在的帧都应用于动画。<BR>  Event Duration(事件持续时间):所有从粒子进入事件时的帧都应用于动画 。<BR>  Restart Particle Age(重设粒子年龄):选中此项,设置每一个由产卵新生的粒子的年龄为0。当不选该项时,每个卵生粒子的年龄继承其父粒子的年龄。<BR>  Speed(速度)选项组。此选项组用于指定卵生粒子的行为和它们于父粒子的绝对或相对速度,同时还可以设置一定的随机变化。卵生粒子的方向一般都是与其父粒子相联系的,但是也可以设置分散度,使之最终散开。默认为继承。<BR>  Parent(父对象):指定父对象的行为。此选项仅当不选中Delete Parent选项时可用。<BR>  Bounce(反弹):碰撞后的速度和方向由导向板属性决定。<BR>  Continue(继续):粒子的速度和方向不受碰撞影响。<BR>  Offspring(后代):指定卵生粒子的行为。<BR>  Bounce(反弹):碰撞后的速度和方向由导向板属性决定。<BR>  Continue(继续):粒子的速度和方向不受碰撞影响。<BR>  In Units(使用单位):指定卵生粒子每秒以系统单位运动的速度。默认值为100。当值为正时,与其父粒子的运动方向一致,为负则方向相反。<BR>  Inherited(继承):指定每一个卵生粒子的运动速度为父粒子速度的百分比。默认为100,即与父粒子速度相同。当值为正时,与其父粒子的运动方向一致,为负则方向相反。<BR>  Variation(变化量):卵生粒子运动速度的随机变化数。为得到卵生粒子实际的速度,系统会将变化量与一个在-1.0到1.0之间的随机数相乘,然后加上已经指定的或从父粒子继承的速度。比如,如果一个粒子的速度为100,变化量为20,则粒子速度的测试值应该是在80到120之间。<BR>  Divergence(偏离):选中此项,使卵生粒子与父粒子散开。输入数值以确定偏离的程度。<BR>  Size(尺寸)选项组。应用于每个卵生粒子的统一比例的量,以父粒子大小的百分比为单位。 默认设置为 100.0。 <BR>  Scale Factor(比例因子):设置每一个卵生粒子相对于其父粒子尺寸的百分比变化范围。<BR>  Variation(变化量):使卵生粒子的大小产生可变的随机数。<BR>  Uniqueness(惟一性)选项组<BR>  New(新建):使用随机公式计算一个新的种子数。<BR>  Seed(种子数):使用数值框让用户来指定一个随机种子数。<BR>4、Find Target Test(发现目标测试)。其命令面板如图1-5所示。<BR><BR>图1-5<BR>  功用:向粒子系统中增加Find Target Test时,一个球形Find Target 图标将会显示在场景的原点位置。可以使用该图标作目标,也可以使用一个或者多个Mesh对象作目标。默认情况下,Find Target向指定目标发送粒子。到达目标时,粒子可以合理地改变方向到其他事件。可以指定移向目标时粒子的速度和时间帧。<BR>  Control By(控制类型):指定粒子自移向目标时的控制类型。<BR>  Control By Speed(由速度控制):指定粒子在移向目标时的速度和加速度的值。<BR>  Control By Time(由时间控制):指定粒子移向目标时基于时间的设置。<BR>  No Control(无控制):选用该选项时,Find Target功能只是近似的测试。当粒子到达目标距离范围内时,粒子可以合理地改变方向到其他事件。<BR>  Test True If Distance To(测试距离)选项组。该选项组的设置用来选择Find Target测试测量的距离并指定测量距离。<BR>  Target Pivot(目标轴点):测量粒子和目标轴点之间的距离。<BR>  Target Point(目标点):测量粒子和目标点之间的距离<BR>  Is Less Than(少于):粒子离目标点或者轴点的距离小于指定距离时,测试为真并且可以合理地改变方向到其他事件。<BR>  Control By Speed(由速度控制)选项组<BR>  Use Cruise Speed(使用移动速度):选中时,直接控制粒子速度和速度变化。未选中时,使用Accel Limit数值自动计算粒子速度。默认为选中。<BR>  Speed(速度):粒子每秒的速度。默认为300.0。<BR>  Variation(变化):粒子速度随机变化的数量。默认为0。<BR>  Accel Limit(加速限制):设置加速度限制。这个数值影响粒子的惯性和速度。默认为1000.0。<BR>  Ease In %(减弱百分比):控制当粒子接近目标点时,粒子减速的比率。默认为0.0。<BR>  Sync By(同步):选择使用动画Speed、Variation和Accel Limit的时间帧。<BR>  Absolute Time(绝对时间):参数设置的任意帧在设置的实际帧被使用。<BR>  Particle Age(粒子年龄):参数设置的任意帧在每个粒子的存活期的相应帧被使用。<BR>  Event Duration(事件持续):参数设置的任意帧在每个粒子第一次进入事件开始时被使用。<BR>  Control By Time(由时间控制)选项组。此选项组主要用来指定粒子到达目标所需要的时间。<BR>  Timing(时间选择):指定软件应用指定计时的方式,通过时间和变化值进行定义。<BR>  Absolute Time(绝对时间):时间指向系统的所有时间。每个粒子在Time指定的帧数到达目标。<BR>  Particle Age(粒子年龄):时间是指粒子出生后流逝的时间。每个粒子在其年龄达到Time指定的帧数到达目标。<BR>  Event Duration(事件期间):时间指向粒子进入当前时间后流逝的时间。每个粒子在当前事件中达到Time指定的帧数到达目标。<BR>  Time(时间):粒子到达目标用的帧数。默认为60.0。<BR>  Variation(变化):时间可以随机变化的帧数。默认为5。<BR>  Subframe Sampling(子帧取样):选中时,以更高的子帧分辨率避免粒子膨胀。默认为选中。<BR>  Use Docking Speed(使用停靠速度):指定粒子到达目标时的速度。默认为未选中。<BR>  Speed(速度):粒子到达目标时的速度。默认为100.0。<BR>  Variation(变化):实际速度数值随机变化的数量。默认为0.0。<BR>  Target(目标)选项组。在默认的情况下,将使用自己的目标图标,也可以使用控件将其它场景对象指定为目标。<BR>  Icon(图标):使用Find Target图标作目标。<BR>  Mesh Objects(Mesh对象):使用一个或者多个Mesh对象作目标。<BR>  
    :显示用作目标的Mesh对象。<BR>  Add(添加):向列表中添加目标Mesh对象。<BR>  By List(由列表添加):单击此按钮,使用Select Target Objects(选择目标对象)对话框增加一个或者多个目标对象。<BR>  Remove(删除):删除高亮显示的目标对象,此处删除的对象依然在场景中保留。<BR>  Sync By(同步):使用Animated Shape或Follow Target Animation时,选择发送粒子到动画对象的的时间帧。<BR>  Absolute Time(绝对时间):从目标导出的动画立即应用到粒子。<BR>  Particle Age(粒子年龄):从目标导出的动画在每个粒子的存活期的相应帧被使用。<BR>  Event Duration(事件期间):从目标导出的动画在每个粒子开始其第一次进入事件时被使用。<BR>  Animated Shape(动画图形):选中该选项时,可以允许粒子通过缩放、变形或使用修改器设置了对象外形动画的对象的曲面作为目标。 这将花费大量的计算时间,因为目标在每个积分步长必须更新。 <BR>  Follow Target Animation(跟随目标动画):选中时,允许粒子跟随移动的对象。<BR>  Point(点):指定粒子着陆的目标上的点。<BR>  Random(随机):每个粒子将目标对象上的某个随机点作为目标。<BR>  Closest Surface(最近曲面):每个粒子在目标对象上的最近的曲面上的点着陆。<BR>  By Script Vector(脚本向量):每个粒子在Script Operator中的ParticleVector通道中指定数值的点着陆。注意: 使用By Script Vector到目标绝对位置例如节点位置时,确保将Target设置为Icon。<BR>  Object(对象):当有多个mesh目标时,可以指定如何在这些目标中选择。只有将多个对象作为目标时才可用。<BR>  Random(随机):主要用来为粒子随机选择一个目标对象。<BR>  Closest Pivot(最近轴点):粒子在最靠近其轴点的目标对象着陆。<BR>  Closest Surface(最近曲面):每个粒子选择曲面距离为粒子最近的对象作为目标。<BR>  Least Deviation(最小偏离):为每个粒子选择沿着当前方向到达需要改变最小的对象作为目标。<BR>  By Script Integer(脚本整数):粒子在Script Operator中指定索引的目标对象着陆。<BR>  Lock On Target Object(锁定在目标对象):选中时,只在粒子进入事件时计算一次粒子的目标对象,其后,粒子锁定在目标对象上。未选中时,连续。<BR>  Docking Direction(停靠方向)选项组<BR>  Docking type(停靠类型):指定粒子靠近目标的方向。<BR>  None Specified(无指定):没有约束。基于指定的参数和当前属性,粒子以最有效的路径靠近目标。<BR>  Along Icon Arrow(沿着图标箭头):粒子最后的方向与Find Target图标箭头一致。<BR>  Icon Spherical(图标球形):粒子最后的方向指向操作器图标中心。<BR>  Icon Cylindrical(图标圆柱):粒子最后的方向以直线指向图标箭头,因此形成一个圆柱形的区域箭头类似圆柱体的主轴。<BR>  Surface Normals(曲面法线):每个粒子从目标点与曲面垂直的方向到达目标对象。<BR>  Distance(距离):粒子开始停靠行为时离开目标对象的距离。包括Docking方向和Docking速度。<BR>  Icon Size(图标尺寸):设置Find Target图标的尺寸。使用图标作目标时影响粒子行为。<BR>  Color Coordinated(颜色调整):选中时,Find Target图标使用包括测试的由局部Display Operator定义的事件的颜色,即使不选中Display Operator仍有效。未选中时,Find Target测试使用默认的在Customize User Interface→Colors→Particle FlowTest 中定义的Gizmos测试线框颜色。默认为选中。<BR>  Uniqueness(惟一)选项组<BR>  Seed(数量):指定随机数值。<BR>  New(速率):使用随机化公式计算新种子。<BR>5、Go To Rotation(转到旋转测试)。其命令面板如图1-6所示。<BR>图1-6<BR>  功用:可以在转动的粒子之间产生一个平滑的过渡,这样粒子就可以在一段指定的时间内逐渐旋转至一定的方位。一个常用的实例就是落叶,落叶在下落的同时不确定的旋转,但是落地时总是平躺而不是侧边着地。这个测试就是在旋转转变结束时,决定是否允许粒子进入下一事件。需要注意的是,旋转测试与Spin、Shape Facing和Shape Mark Operators不兼容。在使用该测试的同时不要使用以上操作器。<BR>  Test True When(测试真值的时间)选项组<BR>  Transition Period Ends:选中此项,在指定的转变时间到达时粒子通过测试,并且可以进入下一事件;关闭时,粒子不能进入下一事件。<BR>  Transition By(过渡方式)选项组。用于确定软件如何定时来应用转变。<BR>  Absolute Time(绝对时间):是指系统全部的时间。每个粒子将在指定的时间内达到各自的目标方位。<BR>  Particle Age(粒子年龄):是指粒子出生的时间。每个粒子在其年龄到达指定的时间时,才能够到达目标方位。<BR>  Event Duration(事件期间):是指粒子进入当前事件的时间。每个粒子只有在进入当前事件达到指定的时间时,才能够到达目标方位。<BR>  Duration(持续时间):粒子在达到目标方位时所需要的帧数。默认值为30。<BR>  Variation(变化量):持续时间帧数的随机变化数。默认为0。<BR>  Target Rotation(目标旋转)选项组。将方向操作器与转到旋转测试同时使用时,通过它的设置可以确定测试是一次性设置目标方向还是动态设置目标方向。默认值为恒定状态。<BR>  Constant(恒定):利用方位类型操作器为粒子设置一个始终不变的方位。例如,在使用一个Rotation Operator(旋转操作器)来设置了一个方位矩阵后,旋转测试就只需要一个目标方位,然后始终将其作为目标。<BR>  Changing(变化):利用方位类型操作器为粒子设置随时改变的方位。每一帧的旋转方向可能都是不同的,例如,在使用一个Rotation Operator(旋转操作器)来设置了Speed Space Follow(速度空间跟随)后,测试将随时改变旋转方向来与之保持一致。<BR>   Target Rotation Spin(目标旋转自旋)选项组。此选项组用于定义每个粒子以一定角度转动至目标方位的速率。<BR>  Match Initial Spin(匹配原始自旋):将过渡结束时的角速度设置为粒子进入事件时的状态一致。需要注意的是,因为计算时粒子在飘动,所以前后的转动轴可能仍然有所不同。<BR>  Spin Rate(旋转速度):用来定义每个粒子的角速度。以角度/每秒的单位来计量。此选项在关闭Match Initial Spin(匹配原始旋转)时可用。如果要创建一个平滑转变至目标方向的转动,设置此选项值为0.0。<BR>  Variation(变化量):用来定义粒子在到达目标方向时旋转速率的随机变化值,默认值为0,为了得到粒子下落时实际的角度,系统会将变化量与一个在-1.0到1.0之间的随机数相乘,然后加上已经指定的转动速度的值。比如,如果一个粒子的速度为6.0,变化量为1.0,那么粒子最终的角度速率值应该是在5°到7°每秒之间。<BR>  Ease In %(缓入):为粒子的转动速度定义一个控制曲线度。默认值为0.0。当设置值为0.0时,此测试会用线性计算来确定最初到最终时刻之间的转动速度。当设置值为100时,最终的转动速度就会提前达到。为了平滑自然的转动至目标方位,一般设置Spin Rate和Variation都为0,Ease In为100。<BR>  Transition End(过渡结束)选项组<BR>  Stop Spinning(停止旋转):选中此项,在粒子转动达到指定的目标方位时,粒子中止转动。推荐选中此复选框,以避免在最后时转动速度会减慢。<BR>  Uniqueness(惟一性)选项组<BR>  New(新建):系统随机产生一个新的种子数。<BR>  Seed(种子数):使用数值框让用户来指定一个随机的种子数。 </FONT>
<P><FONT size=2>3DS Max 7.0 PF Source粒子全攻略(4):Test功能详解②</FONT></P>
<P><FONT size=2> 6、Scale Test(缩放测试)。其命令在板如图1-7所示。<BR><BR>图1-7 <BR>  功用:用来控制粒子缩放,或者在缩放前后控制粒子尺寸和分支。该测试提供了不同的为测量比例和尺寸指定标准的轴选项。<BR>  Type(类型):选择要测试的测量类型。可以测试实际缩放比例,或者缩放前后的尺寸。默认为比例。<BR>  PreScale Size(缩放前尺寸):在缩放前测试尺寸大小。<BR>  PostScale Size(缩放后尺寸):在缩放后测试尺寸大小。<BR>  Scale(缩放):用来测试缩放的百分比。<BR>  Axis(轴):选择要测量的轴。默认为Average(平均)。<BR>  Average(平均):通过在三个轴向增加尺寸然后除以三获取平均测量。<BR>  Minimum(最小):使用最小的尺寸。<BR>  Median(中间):使用中间的尺寸。例如,如果X=5, Y=6, Z=12, 与Test Value比较的数值就是6。<BR>  Maximum(最大):使用最大的尺寸。<BR>  X/Y/Z:使用指定的尺寸。<BR>  Test True if Particle Value(粒子数值测试):用于指定如果速度测试成功或者失败,指定测试是否传递粒子到下一个事件。默认为Is Greater Than Test Value(大于测试值)。<BR>  Size(尺寸)选项组。当设置为缩放前大小或缩放后大小时,设置可用。<BR>  Test Value(测试数值):指定的尺寸或者测试数值。默认为10.0<BR>  Variation(变化):测试数值可以随机变化的量。默认为0.0。<BR>  Scale(缩放)选项组。当类型设置为缩放时,这些设置可用。<BR>  Test Value(测试数值):要测试的特定的缩放因子。默认为100%<BR>  Variation(变化):缩放因子可以随机变化的数量。默认为0.0%.<BR>  Test Value Offset Keying(测试数值偏移键)选项组<BR>  Sync By(同步):选择在设置Test Value和 Variation的动画时要使用的时间帧。<BR>  Absolute Time(绝对时间):为参数设置的任意帧在设置的实际帧被使用。<BR>  Particle Age(粒子年龄):为参数设置的任意帧在每个粒子的存活期的相应帧被使用。<BR>  Event Duration(事件持续):为参数设置的任意帧在每个粒子第一次进入事件开始时被使用。<BR>  Uniqueness(惟一)选项组<BR>  Seed(数量):指定随机数值。<BR>  New(速率):使用随机化公式计算新种子。<BR>  7、Script Test(脚本测试)。其命令面板如图1-8所示。<BR><BR>图1-8<BR>  功用:通过使用MAXScript脚本来测试粒子状态。<BR>  Edit Script(编辑脚本):单击此按钮,打开MAXScript脚本编辑器窗口。<BR>  Uniqueness(惟一)选项组。提供脚本可以使用或者忽略的随机种子数。<BR>  Seed(数量):指定随机数值。<BR>  New(速率):使用随机化公式来计算新种子。<BR>  8、Send Out Test(发送测试)。其命令面板如图1-9所示。<BR><BR>图1-9<BR>  功用:发送测试只是将所有粒子发送到下一个事件,或相反地将所有粒子保留在当前事件之中。如果只是想无条件地将粒子发送到另一个事件,就可以使用此测试。<BR>  Test True For(对…测试为真)选项组。用来设置本测试是将所有粒子发送到下一个事件还是将它们保留在当前事件。默认设置为所有的粒子。<BR>  All Particles(所有粒子):选中时,所有粒子都将被发送到下一个事件。<BR>  No Particles(无粒子):选中时,所有粒子都将被保留在当前事件。<BR>9、Spawn Test(产卵测试)。其命令面板如图1-10所示。<BR><BR>图1-10<BR>  功用:产卵(Spawn)会在现有的粒子基础上生成新的粒子,每个新生成的粒子都具有与其父粒子相同的位置和形状。分散后的粒子可以重新调整速度和分布方式。如果将分散测试线接到另一个事件,分散后的粒子会被发送到该事件,并可为新粒子设置不同的参数。分散测试实际上只将分散后的粒子发送到另一个事件(若已线接),而并不测试任何属性。所有粒子接到分散指令时都会立刻受其影响,因此,若要令粒子基于某个测试结果而分散,需要使用另一个指向包含分散的事件的测试。若此时还想将分散后的粒子发送到该事件以外的事件,或令粒子再次分散,有一个替代的方法就是使用Collision Spawn测试。<BR>  Spawn Rate And Amount(产卵率和量)选项组 <BR>  Once(一次):粒子只产卵一次,即对于每个现有粒子,都生成一个新粒子。默认为选中。<BR>  Delete Parent(删除父粒子):选中此复选框时,将删除每个新生成粒子的父粒子。仅当选中Once时可用,默认为不选中。<BR>  Per Second(每秒):用来指定每秒繁殖的粒子数。<BR>  Rate(比率):设置每秒发生产卵的粒子数量,默认值为10,即使用30fps时每隔两帧生成一个新粒子。仅当选中Per Second时可用。<BR>  By Travel Distance(按移动距离):粒子依据其移动距离每隔一定的间隔发生一次产卵。<BR>  Step Size(步幅大小):指定生成新粒子的间隔(步幅),默认值为1。仅当选中By Travel Distance时可用。<BR>  Spawnable %(可繁殖):设置当前事件中可分散的粒子占粒子总数的百分比。这个比值在粒子加入事件前就被确定,但可以对其设置动画。默认值为100。对于100以外的值,系统会使用随机选择,该百分比值将受到随机种子数的影响。例如对5个父粒子,Offspring #的值为1,Spawnable %的值为80,则可分散的粒子数将会是2到5中的任意一个数,平均值为4。<BR>  Offspring #(后代):系统为每个父粒子生成的新粒子数量,默认值为1。<BR>  Variation %(变化):Offspring #值随机变化的程度,默认值为0。为获得每个粒子的实际测试值,系统将Variation %值乘以一个-1到1之间的随机数,并将其结果作为Offspring #的值。例如,Offspring #的值为20,Variation的值为10,则每个粒子的后代的实际数量将在18到22之间。<BR>  Restart Particle Age(重置粒子周期):选中时,将分散生成的每个新粒子的周期都设置为0。未选中时,新粒子将继承其父粒子的生命周期设置。默认为选中。<BR>  Speed(速度)选项组。主要用来指定繁殖粒子的绝对速度或相对于父粒子的速度,随机变化可选。<BR>  In Units(使用系统单位):勾选此项后,用系统单位为分散后的粒子指定速度,默认值为100。正值表示新粒子继承了父粒子的运动方向,负值则相反。<BR>  Inherited %(继承):勾选此项后,指定分散后粒子速度与父粒子速度的百分比值,默认值为100。正值表示新粒子继承了父粒子的运动方向,负值则相反。这是默认的选项。<BR>  Variation %(变化):设置新粒子速度随机变化的幅度,默认值为0。<BR>  Divergence(偏离):设置分散后粒子的运动方向较父粒子的偏离角度,取值范围为0°到180°,默认值为0。 <BR>  Size(尺寸)选项组<BR>  Scale Factor %(缩放):设置每个由分散生成的粒子相对其父粒子缩放的比例,默认值为100。<BR>  Variation %(变化):设置分散生成的粒子缩放时随机变化的幅度,默认值为0。<BR>  Uniqueness(惟一)选项组<BR>  Seed(数量):指定随机数值。<BR>  New(速率):使用随机化公式来计算新种子<BR>10、Speed Test(速度测试)。其命令面板如图1-11所示。<BR><BR>图1-11<BR>  功用:速度测试提供了一系列变量,用来检测粒子系统中粒子的速度、加/减速、循环运动率以及相应的分支。<BR>  Velocity Magnitude(速度大小):测试粒子的速度而不考虑其运动方向,使用系统单位。这是默认的测量方式。<BR>  Velocity X/Y/Z:测试粒子沿指定的坐标轴的速度,使用世界坐标系和系统单位。<BR>  Acceleration Magnitude(加速度大小):测试粒子加速度的大小而不考虑其方向,使用系统单位。<BR>  Acceleration X/Y/Z:测试粒子沿指定的坐标轴的加速度,使用世界坐标系和系统单位。<BR>  Steering Rate:测试粒子每秒做圆周运动的度数,而不考虑其旋转和转弯。例如,一个做抛物线运动的粒子,其运动由线性和圆周两种成分构成,当它位于抛物线顶端时,圆周运动的成分所占比例最大。若粒子在1秒内运动了一周,则此值为360;若在1秒内运动了半周,则此值为180。可以通过将Speed By Icon 操作器图标连接到圆周状路径来测试这个值。<BR>  True When Accelerates(加速时为真):当粒子速度增大时,返回一个真值。<BR>  True When Decelerates(减速时为真):当粒子速度减小时,返回一个真值。<BR>  Test True If Particle Value(若粒子的值…则测试为真)选项组。设置速度测试成功或失败时是否向下一个事件发送粒子。依据在测量方式下拉列表框中选择的不同测量方式,当选中第一项Is Less Than Test Value(小于测试值)时,若测量结果小于下方设置的Test Value(测试值),粒子将会被发送到下一个事件;当选中第二项Is Greater Than Test Value(大于测试值)时,若测量结果大于下方设置的Test Value(测试值),粒子才会被发送到下一个事件。默认选择第二项。<BR>  Test Value(测试值):设置测试的预设值,其单位依据上方的测量方式而不同。默认值为300。<BR>  Variation(变化):设置测试值随机变化的幅度。默认值为0。<BR>  11、Split Amount(分割量测试)。其命令面板如图1-12所示。<BR><BR>图1-12<BR>  功用:分割数量测试主要用于指定一定数量的粒子,允许其能够进入下一事件。而保持其他的粒子在当前事件中,可以指定分离粒子的数目、百分比或指定固定位置的粒子。<BR>  Test True For 选项组。用于选择用何种方式分割粒子。<BR>  Fraction Of Particles(部分粒子):以百分比数量来分割粒子。如果分割比率大于0.0,任何粒子都将以随机因数分割。可以通过惟一性选项组中的粒子数来改变。<BR>  Ratio(比率):指定分割粒子的百分比。默认为50。<BR>  Every Nth Particle(每N个):将按照一定规则取样的粒子分割。<BR>  N:指定每隔几个粒子分割出一个粒子。默认值为3。<BR>  First N Particles(最初的N个粒子):分割所指定的最初的N个粒子,进入下一事件。其他的粒子保持在原有事件中。<BR>  Particles After N First(第N个之后的粒子):将从第N个开始的粒子分割,之前的N个粒子保持在原有事件中。<BR>  N:在选择First N Particles(最初的N个粒子)选项时,用于指定分割出来的前N个粒子数;在选择Particles After N First(第N个之后的粒子)选项时,用于指定前N个状态不变的粒子数,从第N个之后的粒子分割出来进入下一事件。<BR>  Per Emission Source(每个喷射源):选中此项时,对于每一个喷射源,系统都会将N数值框中的参数分别应用到First N Particles和Particles After N First选项中。使用此项时,当有多个粒子流源时,都会将其汇聚在一个分割数量测试中。<BR>  Uniqueness(惟一性)选项组<BR>  New(新建):系统随机产生一个新的种子数。<BR>  Seed(种子数):使用数值框让用户来指定随机的一个种子数。12、Split Selected(分割选择)。其命令面板如图1-13所示。<BR><BR>图1-13<BR>  功用:分割选择测试从当前所选择粒子的状态分离粒子。这个测试只适用于在粒子子对象层次中所选中的粒子。如果要在指定的帧对一个事件应用所有的粒子,可进入帧编辑,事件子对象层次,使该事件呈高亮显示;然后进入粒子子对象层次,在选择卷展栏中,单击Get From Event Level(从事件层获取)。<BR>  Test True If Particle(测试真值的条件是粒子)选项组<BR>  Is Selected(选中的):所有选中的粒子都符合重定向进入下一个事件的条件。<BR>  Is Not Selected(未选中的): 所有未选中的粒子都符合重定向进入下一个事件的条件。<BR>  13、Split Source(分割流源)。其命令面板如图1-14所示。<BR><BR>图1-14<BR>  功用:分割流源测试可以根据粒子的来源分割粒子流。可以指定粒子是否适合进入下一事件。<BR>  Test True If Particle(测试真值的条件是粒子)选项组<BR>  Is From Selected Source(来自选择的粒子源):所有在Selected Emission Sources(选择的喷射源)列表中高亮显示的粒子都符合进入下一事件的条件。<BR>  Is Not From Sel. Source(不是来自选择的粒子源):所有未在Selected Emission Sources(选择的喷射源)列表中高亮显示的粒子都符合进入下一事件的条件。<BR>  Selected Emission Sources(选择的发射源):列出系统中所有的的发射源。高亮显示的流源被认为是用于测试的。<BR>  27、本节小结:本节我们主要学习了Test(测试)的操作使用及命令详解,下一节我们将开始实例的学习,请大家继续关注PConline软件资讯的3DS Max栏目。</FONT></P>
<FONT size=2>概述:前面四篇我们对粒子流的命令参数进行了非常详细的讲解,对于初学者来说,是不是感觉脑袋有点大了。只是知道了含义但不知道具体的操作。不用担心。从这一节开始我们就来通过一个个的实际操作实例由简单到复杂带领大家一起领略粒子流系统的强大的功能。首先我们学习的是粒子流操作的基本的流程,通过这篇教程我们要学会粒子流的操作过程,在后面的系统实例教程中我们将逐渐深入,从简单的爆炸到复杂的导弹追踪我们都将接触到,下面我们来首先学习粒子流系统的基本操作流程。<BR>  1、粒子流系统的创建。单击GEOMETRY(物体)钮,在其下拉列表中选择PARTICLE SYSTEMS(粒子系统)项,如图1-1所示。<BR><BR>图1-1<BR>  2、在命令面板上单击PF SOURCE钮,在TOP视图中拖动鼠标,这样我们就创建了一个粒子流系统。在TOP视图中的图标就是“粒子流”的图标,默认的情况下其名称为“PF SOURCE01”,它可以作为默认的发射器来使用,我们也可以将任一其他的对象用作发射器,如图1-2所示。<BR><BR>图1-2<BR>  3、观察粒子发射。拖动屏幕底端的动画时间滑块,观察PERSPECTIVE(透视图),我们会发现,在默认的情况下,从图标向下发射出许多的粒子,粒子是以十字花状态显示的,如图1-3所示。<BR><BR>图1-3<BR>4、进行渲染测试。在屏幕底端拖动时间滑块到第20帧,激活PERSPECTIVE视图,在工具栏上按下QUICK RENDER钮,这时渲染的效果如图1-4所示,观察渲染窗口,在默认的情况下粒子的形状为三棱锥,由于其使用的几何体形状比较简单,因此,便于系统快速有效地处理大量的粒子流,需要说明的是,粒子流系统也可以将场景中的任一一种对象用作粒子发射的几何体。<BR><BR>图1-4<BR>  5、在粒子视图中修改粒子系统。首先打开粒子视图,打开粒子视图的方法有两种,一种是按键盘上的6快捷键,另外一种方法是按下命令面板上的PARTICLE VIEW钮,如图1-5所示。在粒子视图中我们可以管理和编辑粒子系统。在粒子视图的主窗口中包含描述粒子系统的粒子图表。在默认的情况下系统以全局事件开始,它的名称与“粒子流”图标相同,后面接着是出生事件,其中包含有出生操作符和其他的用来定义系统初始属性的操作符,在每一个操作符名称后面为其最重要的一个设置或多个设置,在事件显示上面的是菜单栏,其下是仓库,其中包含粒子系统中可以使用的所有操作符,这些操作符的具体的含义可以参看前面的命令详解。<BR><BR>图1-5<BR>  6、参数设置。在全局事件PF SOURCE01中,首先单击RENDER01(GEOMETRY)操作符的名称,选中它以高亮显示,这样在其右侧就可以修改并访问其命令参数,由于这个操作符位于全局事件中,因此它会影响到整个粒子系统,其它的放置在此处的任一一种操作符同样如此。比如说,我们可以这里面定义全局材质,或都局部定义每个事件中的不同材质。渲染操作符的设置位于参数面板上的卷展栏中,在PATRICLE VIEW对话框的右侧,如图1-6所示, 这些设置有用于选择粒子渲染方式的下拉列表以及渲染粒子的百分比,以及将粒子分离到各个网格中的方法等等一系列的参数。<BR><BR>图1-6 <BR>7、更改粒子的显示类型。在全局事件PF SOURCE01中,在PARTICLE VIEW窗口的右侧,我们可以设置粒子的显示方式,首先在全局事件窗口中单击选择DISPLAY01,使其高亮显示,这样在右侧我们就可以设置其参数了,如图1-7所示。在默认的情况下,在TYPE项显示的是TICKS(十字叉)操作符。单击此下拉列表共有十种显示方式供选择,我们可以选择几何体、棱形、三角形等方式,这时粒子在视口中将显示为所选择的形状。<BR><BR>图1-7<BR>   8、将事件进行关联。在进行事件关联之前我们首先应该明确,应该先添加测试然后用其将出生事件关联至新事件。首先在PARTICLE VIEW对话框底部的仓库中,找到AGE TEST测试,如图1-8所示。<BR><BR>图1-8<BR>  9、将AGE TEST从仓库中拖至全局事件PF SOURCE01,使其位于列表的最底部,如图1-9所示,然后松开鼠标,需要注意的是,在拖动AGE TEST到事件窗口中时,在DISPLAY01操作符上应该能看到一条实心的红色线条,此红心实线穿过了显示操作符,说明它替换了显示操作符,如图将它拖动到DISPLAY01的下面,将会新建一个事件。<BR><BR>图1-9<BR>10、松开鼠标后,AGE TEST将会出现在事件窗口的底部,其测试输出向左侧伸出一段,如图1-10所示,这一部分是用于将此测试连接到下一事件。<BR><BR>图1-10<BR>  11、在全局事件窗口中单击列表中的AGE TEST项,在粒子视图右侧的卷展栏中,可以对其参数进行调整,这里我们将TEST VALUE(测试值)设置为30,将VARIATION(变化)的值设置为0,将测试类型设置为PARTICLE AGE,这就表示生存了30帧以上的所有粒子的测试结果都为“真”,即在30帧粒子都会起作用,并传至下一事件。如图1-11所示。<BR><BR>图1-11 <BR>  12、将新建事件关联至AGE TEST测试。将SHAPE(形状)操作符从仓库中拖至事件显示的空白区域,使其位于EVENT01的下面,此时,SHAPE操作符将显示在名为EVENT02的新事件中,如图1-12所示。如同EVENT01一样,该事件也有一个从顶部伸出的圆形事件输入。 此外,粒子流也会自动将DISPLAY显示操作符添加至此事件,因此,其粒子在视口中可见。 我们还可以通过在命令菜单中来禁用自动创建局部DISPLAY显示操作符。在实际操作过程中,事件显示中的事件实际位置无关紧要,默认的位置也只是为了关联事件时方便,我们也可以通过拖动事件的标题栏来移动事件的位置。<BR>  13、将AGE TEST与新事件EVENT02进行实际关联。首先将鼠标光标放置在AGE TEST的测试输出左端的蓝色圆点上,此时光标的图像将会显示为具有三个朝内指向的圆形连接器的箭头的图标,然后将EVENT01中AGE TEST输出拖动到EVENT02输入,然后释放鼠标按钮。 在拖动的过程中,当光标位于事件显示区域的空白空间时,光标图像会自动从三个箭头的图标更改为圆形的连接器,之后位于EVENT02输入时,它会变成四个箭头的图标。释放鼠标按钮后,会显示连接这两个事件的蓝色关联。此关联表示满足AGE TEST条件的粒子将会通过此关联到达受其动作影响的EVENT02,如图1-13所示。既然我们建立了事件的关联,同样我也也可以通过选择关联并按DELETE 键来删除关联以及粒子图表中的任何其他内容。<BR><BR>图1-13<BR>  14、 查看关联结果。现在我们单击SHAPE操作符,并将SHAPE类型设置为TETRA,同样,单击DISPLAY显示操作符并将其TYPE类型设置为CUBE。将时间滑块拖动到第30帧以后,播放动画,我们会发现,从帧30帧开始,位于此粒子流头部的粒子会更改为立方体,这表明粒子已经进入EVENT02,随着时间的推移,将会有越来越多的粒子通过年龄30,从而就拥有了进入下一事件的资格,渲染结果如图1-14所示。<BR><BR>图1-14 <BR>  15、在播放动画的同时,我们还可以尝试修改不同的操作符设置以查看结果。比如,我们可以单击SPEED01,然后更改它的参数设置,即使是在播放过程中,更改这些设置后,此更改仍然会实时反映在视口中。我们也可以尝试使用右键单击动作和事件,并使用重命名来为其自定义名称。我们也可能使用右键单击菜单的工具将注释添加至动作和事件中,这样便于以后操作时清楚地知道操作结果,添加注释后,将会出现一个红色小三角,指示我们在此位置曾经作过注释。<BR>  16、本节小结:本节我们主要学习了粒子流的主要操作流程,通过此节学习,读者应该学会粒子流的基本操作方法,下一节我们将通过一个真实的爆炸效果的实现来进一步的学习粒子流,请大家继续关注PConline软件资讯的3DS Max栏目。</FONT>
<FONT size=2>第六篇 使用粒子流创建一个真实的爆炸场面<BR>  概述:上一节我们学习了粒子流的基本操作流程,这一节我们来使用粒子流创建一个真实的爆炸场面。这种特效可以应用在电影、电视等视觉特效的制作,比如说炸弹、汽车的爆炸等等。需要说明的是,这种爆炸效果非常的真实,它能实现非常复杂的爆炸效果,即物体爆炸后的碎片落地或是撞击后会进一步的反弹并继续爆炸的功能。这些功能远远超出了一些非事件驱动的粒子系统如“Parray(粒子阵列)”的功能范围,下面我们就来看一看如何实现这种爆炸效果。<BR>  1、创建基本场景。单击此处下载原文件。在命令面板上单击Create(建立)/Geometry(物体)/Plane(平面)钮,在Top视图中创建一个平面作为地面,命名为地面,设置其Length(长度)值为600,Width(宽度)值为550;单击Create(建立)/Space Warps(空间扭曲),单击Gravity(重力),在Top视力中创建一个重力,再在命令面板上单击Drag钮,在Top视图中再创建一个阻力;在命令面板的下拉列表中单击选择Deflectors(导向板),如图1-1所示,然后在Top视图中创建一个Pomniflect类型的导向板,其大小同我们创建的地面相同。<BR><BR>图1-1 <BR>  2、创建爆炸物体。单击Create(建立)/Geometry(物体)/Sphere(球体),在Top视图中创建一个球体模型,我们最终的目的就是通过粒子流将这个球爆炸。而且爆炸以后的碎片碰撞到地面在反弹后会继续爆炸。如图1-2所示。<BR><BR>图1-2 <BR>  3、创建爆炸后的碎片。使用画线工具画出一些不规则的封闭的多边形,然后将它们制作成有一定厚度的不规则的几何体,我们将用它们来模拟爆炸后的碎片,如图1-3所示。<BR><BR>图1-3<BR>4、设置动画长度。在视图下方单击Time Conefiguration项,在时间设置窗口中设置动画的时间长度为150帧,如图1-4所示。<BR><BR>图1-4 <BR>  5、设置球体的可见性。我们计划在第0帧发生爆炸,在第10帧时碎片将会充满整个场景,因此,在第10帧以后球体将不会显示在视图当中。首先在动画设置栏中将时间滑块拖动到第10帧,然后单击Auto Key钮打开自动设置动画开关,在场景中选择球体,单击鼠标右键选择Properties项,进入参数设置命令面板中,设置Rendering Control(渲染控制)项下的Visibility的值为0,如图1-5所示。<BR><BR>图1-5<BR>  6、创建粒子流系统。单击Create(建立)/Geometry(物体)钮,在其下拉列表中选择Particle Systems(粒子系统)选项,然后在命令面板上单击PF Source在视图中创建一个粒子流,如图1-6所示。<BR><BR>图1-6<BR>  7、单击Modify钮进入修改命令面板中,在Emission卷展栏中,将Icon Type(图标类型)设置为Sphere(球体),然后将Logo Size(图标大小)和Diameter(直径)的值都设置为15,如图1-7所示,在视图中使用对齐工具将粒子流图标的中心与球体的中心对齐。我们之所以将粒子流设置为球形,这是因为这样设置粒子流在发射粒子时是直接从中心向外吹送,这样将导致所有的粒子从球体的中心直接向外吹送粒子。<BR><BR>图1-7<BR>  8、设置初始事件。在这个场景中,爆炸将在10帧内发生,我们首先按下键盘上的快捷键6打开Particle View(粒子视图)。<BR>  9、在粒子视图中单击Birth 01事件,在其右侧的命令面板参数中,设置Emit Stop的值为10,设置Amount(数量)的值为500个粒子,然后右键单击Event 01的名称,在弹出的菜单中选择Rename(重命名),然后将此事件重命名为 Exp,如图1-8所示。<BR><BR>图1-8<BR>10、设置初始操作符。单击“Position Icon”操作符,在其右侧的命令面板上将Location项下的下拉菜单设置为Volume(体积),这样设置以后将会使粒子充满整个球形粒子流图标。单击“Speed 01”操作符,在其右侧的命令面板上将Direction(方向)设置为Along Icon Arrow(沿图标箭头)方向,设置Speed的值为150,并将Variation(变化)的值设置为50,将Divergence(散度)角度设置为 100 度,此时我们可以在摄影机视图中观察一下效果,会发现因为粒子流的图标箭头指向下,所以粒子向下发射经过球体,选择Speed01操作符,在其右侧命令面板中勾选Reverse(反转)选项,然后再次播放动画,此时我们会发现粒子向上射出并散开,沿着爆炸的正确常规方向移动,设置如图1-9所示。<BR><BR>图1-9<BR>  11、为粒子添加外力。在实际爆炸产生的过程中,要生成具有真实感的爆炸,则粒子在脱离爆炸冲击力以后应该减速,我们通过向粒子施加“阻力”空间扭曲即可实现此效果。<BR>  12、首先在Exp事件中的Speed操作符下添加一个Force操作符,然后单击该操作符在右侧将会显示其命令参数。单击BY list按钮,然后在弹出的窗口中选择空间扭曲Drag01。如图1-10所示。此时如果播放动画,我们将看到该空间扭曲没有对粒子产生足够的影响,这是因为我们还没有对阻力影响进行设置,下面我们来调整调整“阻力”空间扭曲,它有虽然有5% 的均匀影响,但是,该空间扭曲将与系统中的其他粒子一起使用,所以我们不用调整它的命令参数,而只是修改“Exp”事件中的“Force”操作符的“Influence”设置即可。默认情况下,“Force”操作符使用“Influence(影响) %”值为1000。它允许粒子流使用影响与非事件驱动粒子系统的空间扭曲的影响相当的空间扭曲。在这里我们将“Influence(影响) %”的值增加到2000。此时播放动画,我们会发现当粒子离开粒子流源时,将按相应的速率减速。<BR><BR>图1-10 <BR>  13、将“Delete”操作符添加到“Exp”事件的结尾,然后将“移除”设置为“按粒子年龄”,并将“寿命”值设置为 40 帧,将“变化”设置为10帧。这将使爆炸粒子在发射后 40 帧(加或减10帧)消亡。如图1-11所示。<BR><BR>图1-11 <BR>  14、单击“Display”操作符。将“Type(类型)”更改为“Circle(圆)”,并将色样更改为蓝色,需要说明的是,这里我们设置的是粒子在视图中的显示方式,粒子的蓝色只有在取消选择粒子时才会显示,显示蓝色圆形将有助于我们区分不同类型粒子的外观。<BR><BR>图1-12 <BR>15、在“Exp”事件中,删除“Shape”操作符。我们也可以将其替换为“Shape Facing”操作符,然后对模拟爆炸的碎片外观进行材质设置,以达到真实的效果,这里我们不对材质设置进行研究,我们主要研究的是球体破碎的效果。<BR>  16、为粒子创建事件。前面,我们经定义了爆炸的粒子。下一步,我们将定义爆炸粒子炸开时破裂的碎片,并将刚开始时创建的重力应用于粒子上以使它们能够落到地平面上。需要说明的是我们如果使用碎片表示所有的粒子,那么场景中的碎片就会太多,我们可以使用“Split Selected”测试来解决此问题,这不是减少粒子的数量,这个测试允许我们选择系统中的不同粒子集和项目以达到最佳匹配。<BR>  17、将“Split Selected”测试添加到“Exp”事件的底部。在右侧的命令面板中选择“Is Selected”选项。如图1-13所示。<BR><BR>图1-13 <BR>  18、创建一个新事件。首先,我们将为选定粒子设置一个新事件,这样可以使我们在进行选择后看到破碎的效果。将“Force”操作符拖到粒子视图的空白区域以创建新事件。将此新事件重命名为Fra,单击“Force”操作符,在右侧的命令面板上单击By List钮,然后在弹出的窗口中选择Drag01 和 Gravity01项,如图1-14所示。<BR><BR>图1-14 <BR>  19、在“Fra”事件中,单击“Display”操作符。将“Type(类型)”和“Select(选择)”都更改为“Geometry(几何体)”,并将色样更改为淡黄色以匹配球体的颜色。如图1-15所示。<BR><BR>图1-15 <BR>  20、用鼠标拖动将“Split Selected”测试的输出关联到“Fra”事件的输入,如图1-16所示。<BR><BR> 图1-16 <BR>21、为粒子指定碎片。为了创建产生真实的碎片破碎的效果,在开始的时候我们制作了一组随机挤出形状生成的不规则的多边形的几何体对象,我们将使用“Shape Instance”操作符将这些不规则的几何体对象随机指定给事件中的粒子。<BR>  22、在摄影机视图中选择所有的不规则的几何体,然后使用菜单栏中的Group命令将它们编成一组。在粒子视图中,将“Shape Instance”操作符添加到“Fra”事件的“Force”操作符下,单击“Shape Instance”操作符,单击None按钮,然后选择成组的不规则的几何体Group01,由于场景中碎片太大。我们在粒子视图中设置比例,从而使碎片适配场景,而不必缩放实际几何体。将“Scale(比例)%”的值设置为50,并将“Variation(变化)%”的值设置为30。勾选“Acquire Mapping(获得贴图)”和“Acquire Material(获得材质)”,启用“Multi-Shape Random Order(多图形随机顺序)”,它的作用是使这些图形随机指定给粒子,而不是按顺序循环指定这些图形 ,如果不为碎片设置材质效果,此步骤在场景中是不重要的,但是如果想制作出真实的效果,材质设置是必须的,通常的做法是将指定给实例几何体的材质和贴图提供给粒子系统,另外,如果我们不使用此选项,也可以按每个事件分别对实例几何体设置贴图和纹理,如图1-17所示。<BR><BR>图1-17<BR>  23、选择破碎的粒子。下面我们将会为“Split Selected”测试操作符创建粒子选择,此测试会将选择传递给“Fra”事件。下面我们来拖动时间滑块,直到粒子开始向外成扇型散开为止。单击粒子流图标本身或单击场景中的任何粒子,选择粒子流。 <BR>  24、单击Modify钮进入修改命令面板中,展开“Selection(选择)”卷展栏,然后单击“Particle(粒子)”按钮。在Left视图中放大球体和粒子,然后在视图当中拖动鼠标,框选出一个选择区域以选择与球体处于同一水平高度的粒子,此时选择的粒子将变为红色,并更改为显示几何体碎片,未选择的粒子继续显示为蓝色圆形,由于选择的粒子和未选择的粒子采用了两种不同的显示方式,因此我们很容易确定哪些粒子是选定的,哪些粒子是没有选定的。<BR><BR>图1-18 <BR>  25、拖动时间滑块观察,我们会发现在整个动画播放的过程中,碎片粒子显示为“Fra”组中的随机图形,即不规则的几何体的形状,如上图所示。将选择的粒子传递给事件的功能是非常强大的,而且为系统添加了很多的灵活性,通过选择不同的粒子配置,可以创建完全不同的效果。例如,我们可以选择球体上方的所有粒子,或只选择球体底部附近的粒子,这样,就可以方便快捷地实现许多不同的爆炸效果。<BR>  26、在“Selection(选择)”卷展栏上,单击Event图标,这样选择的粒子就被确定为爆炸后最终显示的碎片,然后再单击“Particle(粒子)”按钮以退出子对象层级,这样就可以避免无意中取消选择粒子。<BR>  27、设置碎片自旋方式。在实际制作爆炸效果的过程中,若要使爆炸看起来更加真实,最终爆炸的碎片应该旋转,也就是说粒子要产生自旋。<BR>  28、在“Fra”事件中,将“Spin”操作符添加到“Shape Instance”操作符的下面。然后选择“Spin”操作符,在其右侧的命令面板上将“Spin Rate(自旋速率)”设置为 720 度,并将“Variation(变化)”设置为 30,如图1-19所示,下面我们按下播放动画钮,观看一下效果,碎片在发射以后产生了自旋。<BR><BR>图1-19</FONT>
<FONT size=2>29、设置碎片反弹并破碎。前面我们已经创建了碎片爆炸用来模拟破碎的球体。在这个动画中我们只有几个帧的动画,对于小的场景可能可能已经足够了,但是对对于一个大的场景来说,我们希望在粒子碰撞地平面时使它们反弹并破碎。这里我们将通过一些设置来达到更好的效果,前面在场景中我们已将创建了导向器并放置在了地平面上,我们将使用“Collision”测试操作符,它可以识别从导向器反弹的粒子,使用“Collision Spawn”测试使碎片反弹后看起来好像正在分裂一样,从而可以进一步加强视觉效果。<BR>  30、在“Fra”事件的底部添加“Collision Spawn”测试,在其右侧的命令面板上,将 POmniFlect01 指定为“导向器”,它就是地平面上的导向器,如图1-20所示。<BR><BR>图1-20<BR>  31、在其右侧的命令面板上,在“Spawn Rate And Amount(繁殖速率和数量)”组中,确保选定“Spawn On First Collision(首次碰撞时繁殖)”并且启用“Delete Parent(删除父粒子)”选项,删除父粒子的作用可以以使其在破碎为较小对象后不再反弹,将命令面板中,“Spawnable%(可繁殖)”参数用来设置要破碎的碎片的百分比,默认的情况下此值为100%,我们也可以将其设置为较低的值,以仅使部分碎片破碎。将“Offspring(子孙数)”设置为 10,将“Variation%(变化)”值设置为 10.0。它表示的是当每个初始碎片与导向器碰撞时,都将创建 9 至 11 个新碎片。在“Speed(速度)”选项组中,确保“Parent(父粒子)”和“Offspring(子孙)”的参数都设置为“Bounce(反弹)”。这将导致两种类型的粒子都在导向器上反弹。反弹的程度已由位于“修改”面板上的导向器参数设置。在“Speed(速度)”组中,保持默认的“Inheritde%(继承)”的默认值为100,将“Variation(变化)%”设置为 30,将“Divergence(散度)”角度设置为 30。在“Size(大小)”组中,将“Scale Factor(比例因子)%”设置为 50,将“Variation(变化)%”设置为 25,这将导致新繁殖的碎片变成原始碎片的约一半大小,设置完成后的命令面板如图1-21所示。<BR><BR>图1-21 <BR>  31、观察动画效果。在屏幕的下方移动时间滑块,此时我们会看到这些碎片在通过导向器时分裂成更小的碎片。现在我们没有定义破碎粒子图形的特定事件,如果繁殖操作没有输出至另一事件,则原始粒子的属性就会由新粒子继承。<BR>  32、为破碎的碎片创建新事件。粒子爆炸后撞击地面,并继承了原始碎片的旋转。现在要使破碎的碎片随机反弹和自旋,还需要一个新事件,以便可以为这些碎片设置属性。这里我们将使用“Spin”操作符开始新事件,以使粒子在碰撞导向器后随机旋转。在粒子视图的空白区域添加“Spin”操作符,并将此新事件重命名为 Sha,如图1-22所示。<BR><BR>图1-22 <BR>33、将“Fragments”事件中“Collision Spawn”测试的输出关联至“Shatter”事件,它表示只有当粒子已与导向器碰撞并破碎为较小的碎片时,粒子才会传递到“Sha”事件,如图1-23所示。<BR><BR>图1-23<BR>  34、在Sha事件中单击“Spin02”操作符,在其右侧的命令面板中将“Spin Rate(自旋速率)”设置为 900,将“Variation(变化) %”设置为 100,它表示当粒子碰撞导向器时,此自旋速率将大致与粒子的自旋相匹配,如图1-24所示。“Force”操作符并不能在事件中间传递,因此我们必须为新事件添加一个“Force”操作符,并且此操作符应该同Fra事件中使用的“Force”操作符的设置相同,使Sha事件中的粒子使用相同的力。 <BR><BR>图1-24 <BR>  35、在粒子视图窗口中的“Fra”事件中,单击“Force”操作符,然后右键单击并在弹出的菜单当中选择“Copy(拷贝)”,然后在“Sha”事件中,右键单击“Spin”操作符下方并从菜单中选择“Paste Instanced(粘贴实例)”,这样“Force”操作符的实例将会出现在“Sha”事件中,如图1-25所示。<BR><BR>图1-25 <BR>  36、删除“Sha”事件中的“Display”操作符,同样使用复制粘贴的方法将“Display”操作符的实例从“Fra”事件复制并粘贴到“Sha”事件当中,此时按下播放动画钮观看动画效果,破碎的碎片将会随机产生自旋效果并且对重力产生反应,此时,它们仍然还会通过导向器,如果要使这些碎片反弹,我们还需要一个“Collision”测试。<BR>  37、为破碎的粒子创建碰撞测试。将“Collision”测试拖动添加到“Sha”事件的末尾,这里的“Collision”测试比“Collision Spawn”测试更适用,我们希望粒子在首次撞击导向器时破碎,并且在以后碰撞时不希望粒子破碎,使用“Collision”测试参数可以很好地控制粒子在碰撞和反弹时的行为,如图1-26所示。<BR><BR>图1-26 <BR>  38、单击“Collision”操作符,在右侧的命令面板上将POmniFlect01导向器添加到“Deflectors(导向器)”列表当中,选择“Collided Multiple Times(碰撞多次)”选项,将“Times(次数)”的值设置为默认值 5,将“Speed(速度)”的值设置为“Stop(停止)”,它表示破碎粒子与导向器碰撞的次数不超过五次,然后完全停止,如图1-27所示。<BR><BR>图1-27<BR>  39、播放动画,动画进展顺利,球体爆炸形成碎片,碎片反弹并进一步爆炸破碎,然后继续进行少许反弹,效果非常真实。<BR>40、通过观察我们发现,虽然粒子在接近动画末尾时停止了移动,但是它们的自旋仍然在继续,发生这种情况的原因是由于“Collision”测试操作符只是停止了粒子的运动,但是并没有停止它们的自旋。这些粒子在“Sha”事件开始时仍然跟随“Spin”操作符,为了解决此问题,我们使用“Collision”操作符将测试为“真”的粒子传输至新事件,该事件将告知粒子停止。<BR>  41、在动画结束时停止粒子。在“粒子视图”的空白区域中创建新的“Rotation”操作符,并将新事件重命名为 Stop,将“Rotation”操作符的“Orientation Matrix(方向矩阵)”设置为“Random Horizontal(随机水平)”,这将导致每个碎片在停止时“躺下”,如图1-28所示。<BR><BR>图1-28 <BR>  42、将“Sha”事件中“Collision”测试的输出关联至新的“Stop”事件,如图1-29所示。<BR><BR>图1-29 <BR>  43、我们还需要使用另外一个操作符来将粒子系统转换到“Rotation”操作符设置并停止,而不是让粒子系统使用操作符来创建运动,为此,在“Stop”事件中的“Rotation”操作符上方,添加一个“Go To Rotation”测试,它将会告知正在进入的粒子立即转换到下面的新“Rotation”操作符,如图1-30所示。<BR><BR>图1-30 <BR>  44、单击“Go To Rotation”测试。保持Transition BY的默认设置为Event Duration方式,并将“Duration(持续时间)”设置为 0,将Variation的值设置为 0,确保将“Target Rotation(目标旋转)”设置为“Constant(恒定)”,并且启用“Match Initial Spin(匹配初始自旋)”,在“Match Initial Spin(匹配初始自旋)下,将“Variation(变化)”设置为 30,并确保启用“Stop Spinning(停止自旋)”,如图1-31所示。<BR><BR>图1-31<BR>45、播放动画,我们会看到破碎的粒子在碰撞时显示类型发生了改变,这是由于新的“Stop”事件为它们指定了默认的显示类型,删除“Stop”事件中的新“Display”操作符,并使用拷贝复制的方式将其替换为“Sha”事件中的“Display”操作符实例。<BR>  46、再次播放动画,此时我们就完成了球体的动画设置,球体爆炸成为碎片,而且这些碎片在撞击地面时会继续反弹和破碎,这在以前的非事件驱动的粒子当中是无法实现的,如图1-32所示。<BR><BR>图1-32 <BR>  47、本节小结:本节我们学习了一个球体爆炸后撞击地面反弹并且反弹后继续破碎的爆炸动画,通过此节学习,我们应该对粒子流的强大功能及流程有了一个基本的了解,下一节我们将通过一个更为复杂的实例导弹追踪动画来学习粒子流的强大功能,请大家继续关注PConline软件资讯的3DS Max栏目。</FONT>
<FONT size=2>第七篇 导弹追踪动画<BR>  本例中我们将学习制作导弹追踪查找目标,并最终击落目标的动画过程。要想实现这种效果,使用粒子流系统是最好的解决方法,因为在粒子流系统当中,它有一个“Find Target(发现目标)”测试,我们可以将它理解为粒子系统的导航系统,它是使用粒子流制作精确制导导弹的最好的工具,下面我们就来学习导弹追踪动画的制作。最终效果如下图所示。<BR><BR>  源文件下载:<BR>点击这里下载<BR>(60K, winzip压缩文件)<BR>  1、打开范例场景。单击此处打开fjdd.max范例场景,在这个教程中,场景中有一架飞机,我们想让它击落一些运动着的目标,在实际过程中这些目标应该也是飞机,这里我们用两个茶壶来代替。场景中的飞机机翼上带有两枚导弹发射吊舱,每个导弹吊舱将发射一枚导弹,导弹发射时将使用粒子流,每一个粒子将使用我们制作的导弹来随机查找运动着的茶壶,并且沿此方向产生烟雾拖尾,当导弹粒子找到茶壶目标时,它将触发爆炸事件产生剧烈的爆炸效果,在飞机的下方导弹舱的部位有两个名实体对象,即dd01和dd02,这两个对象都拥有以子对象层级选定的朝向前面的多边形,主要用来指定发射导弹的位置,在后面的实际制作过程中,我们将它指定为粒子发射器后,粒子流就会只在这些选定的多边形上发射粒子。 <BR>  2、使用粒子流创建导弹。单击Create(建立)/Geometry(物体)钮,在其下拉列表中选择Particle Systems(粒子系统)选项,然后在命令面板上单击PF Source在视图中创建一个粒子流,其大小如1-1所示。<BR><BR>图1-1 <BR>  3、在Create(创建)命令面板上,打开Emission(发射)卷展栏,在Quantity Multiplier(数量倍增)选项组的下面,将Viewport%(视口)设置为 100.0,如图1-2所示。<BR><BR>图1-2<BR>  4、对齐发射器和飞机。接下来,我们将把制作的粒子发射器进行旋转和定位,从而使发射器飞机两侧的发射导弹的吊舱对齐。我们主要通过图标来控制导弹的发射方向,将粒子发射器链接至飞机,从而使导弹能够向飞机飞行的方向发射。<BR>  5、在视图当中选定粒子流源发射器图标后,单击工具栏上的“Align(对齐)”按钮,然后单击飞机对象。在出现的对话框中,勾选“Align Position(对齐位置)”组中的“X Position(位置)”“Y Position(位置)”和“Z Position(位置)”,以及Align Orientation(对齐方向)组中的“X Axis”、“Y Axis”和“Z Axis”,这样将使发射器的位置和方向都与飞机机身对齐,然后单击“确定”按钮确认对齐。如图1-3所示。<BR><BR>图1-3<BR>6、调整发射器的发射方向和飞机的飞行方向相同。将发射器旋转90度,使它的发射粒子的方向指向飞机的前部。在工具栏上,单击“Select and Rotate(选择并旋转)”按钮,然后选择“Local局部”参考坐标系,在视图当中将粒子流发射器旋转 90 度,从而使发射器的箭头方向指向飞机飞行的方向。如图1-4所示。<BR><BR>图1-4<BR>  7、在主工具栏上单击“Select and Move(选择并移动)”按钮,在场景中选择发射器,然后单击Modify钮进入修改命令面板中,在“Emission(发射)”卷展栏中,取消勾选Logo,勾选Icon(图标)选项,如图1-5所示。<BR><BR>图1-5<BR>  8、链接发射器到飞机。在主工具栏中单击“Select and Link(选择并链接)”工具,将发射器作为子对象链接至飞机的机身,现在双翼飞机的运动将会驱动粒子发射器的运动。<BR>  9、按下键盘上的快捷键 6 键打开“Particle Vies(粒子视图)”,此时我们可以看到全局事件的名称为PF Source01,如图1-6所示。<BR><BR>图1-6 <BR>  10、接下来我们将创建两个粒子,它们将从飞机上的导弹发射管状的物体的每个选定面上发射一个粒子。将事件“Event 01”进行重新命名,右键单击其标题栏,在弹出的菜单中选择重命名并输入“任务一”。如图1-7所示。<BR><BR>图1-7 <BR>  11、单击“Birth”操作符,在其右侧的命令面板上将“Emit Start(发射开始)”设置为 20,将“Emit Stop(发射停止)”设置为 100,将“Amount(数量)”的值设置为2,设置完成后,系统将在第 20帧至第 100 帧之间发射二个导弹,也就是发射两个粒子,如图1-8所示。<BR><BR>图1-8<BR>12、“Total(数量)”值确定在指定帧之间将均匀发射的粒子数量。通常使用粒子系统创建大量副本,但此处将只使用2个粒子,因而创建2个导弹。<BR>  13、单击“Display”操作符并将它的“Type(类型)”设置为“Geometry(几何体)”,这样我们就能够看到这两枚导弹了,主要是确保它们的方向正确,如图1-9所示。<BR><BR>图1-9 <BR>  14、下面我们将“Position Icon”操作符替换为“Position Object”操作符。首先将“Position Object”操作符从仓库拖至“任务一”事件中的“Position Icon”操作符上。当看到红线时,松开鼠标按钮。如图1-10所示。<BR><BR>图1-10 <BR>  15、单击“Position Object”操作符,在右侧的命令面板中会显示其参数,由于我们希望发射速度与发射器即本例中的飞机的运动相关,因此要启用“Inherit Emitter Movement(继承发射器移动)”,如图1-11所示。<BR><BR>图1-11 <BR>  16、在“发射器对象”组中,单击“By List(按列表)”钮,在弹出的窗口中将 dd01和dd02对象添加进来,如图1-12所示。<BR><BR>图1-12 <BR>  17、在“Location(位置)”下拉列表中,选择“Selected Faces(选定面选项)”,如果我们不对此项进行设置,那么最后的结果将会从飞机上的所有多边形上发射粒子,这里我们选定导弹架前部中的面,如图1-13所示。<BR><BR>图1-13 <BR>  18、在命令面板的下方,在“Uniqueness(唯一性)”选项组中,将“Seed(种子)”数的值设置为 10500,如图1-14所示。在“Uniqueness(唯一性)”下的“Seed(种子)”数的设置提供了对不同数量值的无限制的选择,对此值进行更改将会生成单独的效果。<BR><BR>图1-14<BR>19、下面我们来设置导弹的速度。在“任务一”事件中,单击“Speed”操作符,在其右侧的命令面板上将“Speed 01”的“Speed(速度)”的值设置为 1200,同时将其“Variation(变化)”的值设置为 24.0,保持“Direction(方向)”设置为“Aiong Icon Arrow(沿图标箭头)”方向,这将使用粒子流源发射器图标的方向确定粒子发射的方向,如图1-15所示。<BR><BR>图1-15 <BR>  20、实例化导弹几何体。下面我们将使用“Shape Instance”操作符,我们使用它的目的主要是将“Shape”操作符中的简单形状替换为场景中的参考几何体,这里我们是用两个粒子替换为两个导弹。<BR>  21、将“Shape 01 (四面体)”操作符替换为“Shape Instance”操作符,首先将“Shape Instance”操作符从仓库中拖动到现有的“Shape”操作符的顶部,场景中显示为红线则表示操作符将被替换,使用“Shape Instance”操作符可以选择用于替换粒子的对象。<BR>  22、在“任务一”事件中,单击“Shape Instance 01”操作符。在“Shape Instance 01”卷展栏的“Particle Geometry Object(粒子几何体对象)”组中,单击标记为“无”的按钮,然后单击视口中的导弹,或按键盘上的 H 键,并从列表中选择导弹,然后单击“确定”。在实际操作过程中我们可以使用多个对象,并在发射粒子时在这些对象之间循环切换,但是我们在本例中不必如此。“Shape Instance”中一组易于使用的参数是内置的缩放控制。我们可以使用这些参数进行简单的大小调整。如果我们正在制作一群飞鸟,则略微随机化这些鸟的比例将会更加合理,这里所有导弹应具有完全相同的大小,为此我们保留“比例 %”设置为100.0。如图1-16所示。<BR><BR>图1-16 <BR>  23、确保已启用“Acquire Mapping(获得贴图)”和“Acquire Material(获得材质)”项,这是一个很重要的选项,除非我们希望覆盖实例几何体上的现有贴图和材质,如图1-17所示。<BR><BR>图1-17 <BR>  24、在“Top”视图中选择导弹,然后右键单击并选择“Hide Selection(隐藏当前选择)”,由于场景中的导弹已经由粒子实例化,因此我们不再需要原始对象在场景中可见,这样可以大大的提高场景的运算速度。<BR>  25、将时间滑块移至第22帧并平移“顶”视图,直到可以清晰地看到飞机。观察场景中的导弹发射方向是否正确,通过观察我们发现实例几何体并没有与移动方向对齐,随着导弹扭转并转向以捕获其目标,这将变得越来越重要,因此若要设置方向,需要调整“Rotation”操作符。<BR>  26、单击“Rotation 01”操作符,然后将“方向矩阵”设置为“速度空间跟随”。将“Y”更改为 90.0 度,这样将会使实例几何体围绕 Y 轴内部旋转 90 度,并使其指向移动的方向,现在我们可以移动时间滑块播放动画,问题已经得到了解决,导弹的方向是朝向飞机飞行的方向,如图1-18所示。<BR><BR>图1-18<BR>27、导弹寻找目标动画的设置。播放动画的们会发现,场景中的导弹正没有任何目标地直线飞行,应该如何使导弹查找到那些目标呢?也就是场景中的茶壶对象,这里我们将会用到“Find Targe”测试。“Find Targe”测试主要用来为事件中的粒子创建目标或目的的,粒子将会基于目标的速度或时间在列表中查找目标,使用各种参数来控制其到达目标的方式。这个功能是非常强大的,它可以应用于很多独特的效果。<BR>  28、进行“Find Target(查找目标)”测试。在“任务一”事件的底部添加黄色的“Find Target”测试。此时的粒子视图如图1-19所示。<BR><BR>图1-19 <BR>  29、单击选择Find Target01项,然后在其右侧的命令面板上,在“Find Target 01”卷展栏中,首先将控制方法设置为“Control By Speed(由速度控制)”,在“Control By Speed(由速度控制)”组中,将“Speed(速度)”设置为 1200,将“Variation(变化)”设置为 24 个单位,这定义了粒子移至目标的常规速度,导弹的移动速度将会变得非常快。同样,在“Control By Speed(由速度控制)”组中,将“Accel Limit(加速度限制)”设置为 7200,这个选项是用来提高导弹为到达目标而更改速度和方向的快慢程度,如图1-20所示。<BR><BR>图1-20 <BR>  30、现在我们就来定义目标。在“Target(目标)”组中,选择“Mesh Objects(网格对象)”,然后单击“By List(按列表)”钮,在弹出的“Select Target Objects(选择目标对象)”对话框中,会高亮显示场景中的两个茶壶对象Teapot01和Teapot02,然后单击“Select(选择)”项,这样,茶壶对象的名称将会出现在“Target(目标)”列表中,如图1-21所示。<BR><BR>图1-21 <BR>  31、勾选“Follow Target Animation(跟随目标动画)”,这样场景中的粒子会不断地查找移动的目标。否则,粒子将在发射后在空间中查找目标所在的位置,同时确保已经勾选了“Lock on Target Object(锁定目标对象)”,以便粒子选择并跟踪目标,如图1-22所示。<BR><BR>图1-22 <BR>  32、将“Point(点)”和“Object(对象)”字段都设置为“Random(随机)”,这样场景中的每个粒子都会查找随机目标上的随机点,这样将会产生无序而且非均匀的最终结果,同时,我们还可以对其进行调整,使得粒子靠近目标的不同区域。 <BR>  33、将“Docking Direcction(停靠方向)”设置为“None Specified(无指定项)”,这项设置非常重要,如果不进行设置,那么将会改变粒子靠近目标的方式,在“唯一性”组中,将“种子”更改为 10700,如图1-23所示,此时如果播放动画,应当能看见导弹发射并且在寻找茶壶。<BR><BR>图1-23 </FONT>
<FONT size=2>34、观察场景中的动画,我们会发现,虽然导弹在寻找茶壶,但是,并不直观,通过对导弹添加烟雾拖尾可以增加真实感,在查找到目标后还要创建爆炸效果,这样才更加真实,首先我们来创建导弹拖尾效果。<BR>  35、添加“Spawn”测试。如果要利用导弹粒子创建出拖尾效果,首先需要在“任务一”事件中创建一个“Spawn”测试。将“Spawn”测试从仓库拖动到“任务一”事件的底部,如图1-24所示。<BR><BR>图1-24<BR>  36、在粒子视图中单击“Spawn 01”测试,在其右侧的命令面板中的“Spawn Rate and Amount(繁殖速率和数量)”组中选择“By Travel Distance(按移动距离)”,将“Step Size(步长大小)”设置为 3.0 个单位,这种方法可用于产生拖尾类型的效果,如图1-25所示。<BR><BR>图1-25 <BR>  37、在粒子视图右侧的命令面板中将“Offspring(子孙数)”设置为 1,它表示每次只能繁殖出一个粒子。通过增加该值的大小,可以成团或成块地繁殖多个粒子,在“Speed(速度)”组中,选择“In Units(使用单位)”并将值设置为 50。通过此值设置了显式发射恒定速度,它不基于从父粒子继承的速度,这样做的好处是导弹将会以恒定的速率燃烧,所以烟雾拖尾发射也将是恒定的,将“Variation(变化) %”设置为 10,将“Divergence(散度)”也设置为 10,这样将会烟雾拖尾更加真实可信,“Variation(变化)”会将随机性添加至发射速度,“Divergence(散度)”会将随机性添加至方向。如图1-26所示。<BR><BR>图1-26<BR>  38、在“Uniqueness(唯一性)”组中,将“Seed(种子)”设置为 9227,需要注意的是在使用“Spawn”测试时,要切记的重要一点是,它可以很快地创建许多粒子,并且所有的新粒子都与导弹粒子(即实例几何体)相同。所以,如果现在播放动画,不久以后剧增的大量新几何体会严重影响系统性能。为此,在继续之前应该暂时禁用粒子系统。在本课程的后面将简化繁殖粒子的几何体,之后就可在不影响性能的情况下播放动画。如图1-27所示。<BR><BR>图1-27 <BR>  39、按下键盘上的分号键 (;)或者单击全局事件标题栏中的灯泡图标,这样将会切换粒子系统的活动状态。如图1-28所示。<BR><BR>图1-28 <BR>40、创建“Force”操作符。将“Force”操作符从仓库中拖动到事件显示中,这包含一个新的“Force”操作符和新的“Display”操作符的新事件,我们将此新事件重新命名为“任务二”。如图1-29所示。<BR><BR>图1-29 <BR>  41、单击“任务二”事件中的“Force”操作符以显示其参数。在“力空间扭曲”组中,单击“按列表”,并添加 Drag01 和 Wind01 空间扭曲。虽然导弹粒子不受空间扭曲影响,但是烟雾拖尾的运动将会受到阻力和风流的影响,如图1-30所示。<BR><BR>图1-30 <BR>  42、在“任务二”事件中,单击“Display”操作符,在“Display”卷展栏上,将“Type(类型)”更改为“Ticks”,将它的颜色更改为深蓝色如图1-31所示。<BR><BR>图1-31 <BR>  43、添加“Delete”操作符。烟雾拖尾的实际效果应该先形成拖尾,然后慢慢消失,这里我们使用“Delete”操作符生成后一个效果。<BR>  44、将“Delete”操作符添加至“任务二”事件的底部,在粒子视图中单击它,在其右侧的命令面板上,在“Delete 01”卷展栏上的“移除”组中,选择“按粒子年龄”,将“寿命”设置为 120 帧,并将“变化”设置为 8,这样设置的最终结果是导致烟雾拖尾持续足够长时间以形成拖尾,但是不会永远拖延下去。如图1-32所示。<BR><BR>图1-32 <BR>  45、在“唯一性”组中,将“种子”更改为 28600,如图1-33所示。<BR><BR>图1-33 <BR>  46、定义几何体和材质。对于烟雾拖尾效果,使用“Shape Facing”操作符可以创建始终朝向摄影机的多边形,然后,再使用径向渐变和噪波设置贴图以创建像烟雾的外观。首先将“Shape Facing”操作符添加至“任务二”事件中的“Force”操作符下面。如图1-34所示。<BR><BR>图1-34 <BR>  47、在“Shape Facing 01”卷展栏上的“Look at Camera/Object(注视摄影机/对象)”组中,单击标记为“None(无)”的按钮,然后按键盘上的 H 键。从列表中选择 Camera01,这样设置的结果会使粒子在整个动画过程中朝向 Camera01,在“Size/Width(大小/宽度)”组中,保持默认的“In World Space(在世界空间中)”选择,并将“Units(单位)”设置为 5,世界空间选项可用于指定绝对值。其他选项则不同。“在局部空间中”使用现有比例进行工作。“在屏幕空间中”使用基于屏幕宽度百分比的恒定值,从而使粒子始终保持相同大小,而无论其与摄影机的距离有多大。如图1-35所示。<BR><BR>图1-35 <BR>48、在“Uniqueness(唯一性)”组中,将“Seed(种子)”数的值设置为 240,如图1-36所示。<BR><BR>图1-36 <BR>  49、在“任务二”事件中,单击选择“Display 02”操作符,在“Display 02”卷展栏上,将“Type(类型)”更改为“Geometry(几何体)”。<BR>  50、播放动画观察效果我们会发现,在场景中所有的粒子大小都相同,在实际情况下,我们希望粒子的大小会随时间按比例增加,在粒子流系统中,我们可以对动画参数进行显式控制,可以按照绝对时间、事件时间或粒子年龄对粒子进行动画设置,这里我们将设置粒子随寿命逐步增大的动画,我们是通过使用带有动画缩放通道的“Scale”操作符实现此操作。 <BR>  51、添加“Scale”操作符。将“Scale”操作符添加到“Shape Facing”操作符的下面,然后单击它,在其保侧的命令面板中,在“Scale 01”卷展栏上,将“Type(类型)”更改为“Overwrite Once(相对最初)”,此操作符可用于对三个轴分别指定不同的缩放值,以便单独对每个轴设置动画来创建非均匀缩放。在此操作中我们将对所有三个轴向同时进行缩放动画的设置,因此,勾选“Constrain Proportions(限定比例)”选项,同时,在“Uniqueness(唯一性)”组中,将“Seed(种子)”数设置为16900,然后,对“Scale Factor(比例因子)”进行动画设置,由于烟雾拖尾粒子寿命大约为 120 帧,所以我们需要在第120帧处设置关键点。如图1-37所示。<BR><BR>图1-37 <BR>  52、将动画栏的时间设置滑转拖动至第 120 帧处,对缩放进行动画的设置,第 120 帧处,单击“Auto Key(自动关键点)”按钮以启用它,然后在“Scale 01”卷展栏上的“Scale Factor(比例因子)”组中,将“X %”值更改为 200。<BR>  这样在第 0 帧和当前帧处为每个轴通道自动设置了一个关键点。如图1-38所示。单击禁用“Auto Key(自动关键点)”。<BR><BR>图1-38<BR>  53、缩放参数的调节。在“Scale 01”卷展栏上的“Scale Variation(缩放变化)”组中,将“Scale Variation(缩放变化)”的“X %”值更改为 10,由于三个“Scale Variation(缩放变化)”设置的比例都受约束,所以“Y %”和“Z %”也会随之更改,在“Animation Offset Keying(动画偏移关键点)”组中,将“Sync By(同步方式)”设置为“Particle Age(粒子年龄)”,如图1-39所示,它控制着关键帧参数传递到粒子系统的方式。需要注意的是,如果我们使用了绝对时间,则所有粒子都将在第 0 帧处以 100% 大小开始,在第 120 帧处缩放到 200%,而不会考虑它们发射的时间。在第 120 帧后发射的粒子始终按 200% 缩放。在这个场景中,我们需要将这些关键点与粒子寿命相关,为此,需要使用设置为“Particle Age(粒子年龄)”的同步方式,并以 100% 开始缩放,然后在粒子开始消亡之前增加至 200%。<BR><BR>图1-39 <BR>  54、烟雾拖尾关联到导弹。在事件显示中,从“Spawn 01”测试的输出拖动至“任务二”事件的输入, 这会将导弹关联到拖尾,从而使导弹繁殖烟雾拖尾粒子,如图1-40所示。<BR><BR>图1-40<BR>55、重新启用粒子系统:按分号键 (;) 或单击全局事件 (任务一) 标题栏中的灯泡图标,此时,我们如果在摄影机视图中播放动画,将会看到恒定地发射四边形并将其排成一行,如图1-41所示。<BR><BR>图1-41 <BR>  56、调整关键点插值。为了使拖尾的外观更加逼真,缩放动画应该随缩放的增加而减速。执行此操作的最简单的方法是在曲线编辑器中使用关键点信息对话框,如果将关键点的插值设置为快速,将会创建在接近第120帧时逐渐停止的曲线。<BR>  57、在“粒子视图”中,右键单击“Scale 01”卷展栏上的“Scale Factor(比例因子)”的“X %”参数字段,然后选择“Show In Track View(在轨迹视图中显示)”,此时将会出现曲线编辑器,并显示缩放轨迹的曲线,单击第 120 帧处的关键点,然后右键单击以显示关键点信息对话框,将“输入”插值更改为快速,使用“输入”和“输出”插值之间的右指箭头将快速插值复制到“输出”值,如图1-42所示。<BR><BR>图1-42 <BR>  58、单击“输出”框右侧的右指箭头,将快速插值复制到关键点 1 的“输入”值,然后单击“输入”框左侧的左指箭头,以将快速插值复制到关键点 1 的“输出”值,对“Y 比例因子”轨迹和“Z 比例因子”轨迹重复该过程,最后关闭轨迹视图,如图1-43所示。<BR><BR>图1-43<BR>  59、材质设置。创建导弹粒子时,因为使用了实例几何体,所以它们继承了几何体的贴图和材质。这与烟雾拖尾粒子的情况不同。我们必须为该事件指定材质操作符,共有三种选择:静态、动态和频率,因为要对材质设置动画,所以这里我们需要使用动态。<BR>  60、将“Material Dynamic”操作符添加至“任务二”事件中的“Scale”操作符下面。然后在“Material Dynamic 01”卷展栏上,确认已启用“Assign Material(指定材质)”,然后单击标记为“None(无)”的按钮,如图1-44所示。<BR><BR>图1-44 <BR></FONT>
<FONT size=2>61、在“材质/贴图浏览器”中,将“Browse From(浏览自)”更改为“Mtl Editor(材质编辑器)”,现在我们可以看到材质编辑器中的所有的材质,选择 Smoke 材质,并单击“确定”,同时确保已启用“Assign Material(指定材质 ID)”。如图1-45所示。我们使用动态的主要原因是因为,随粒子年龄进行材质动画的设置,材质的本身不会被设置动画,但是其使用“粒子年龄”贴图作为不透明度的遮罩。当在“Material Dynamic”操作符中使用时,它会在整个粒子寿命中应用该贴图,以创建从白到黑的渐变。<BR><BR>图1-45<BR>  62、通过移动时间滑块来播放动画,我们会发现,导弹同我们设想的一样飞向目标时,同时,在导弹的后面拖出了长长的粒子,也就是烟雾,但是,导弹寻找到目标后并没有停止,而是直接穿过了茶壶,在实际过程中,我们还需要一个新的事件,需要将“Find Target”操作符的输出关联到一个新事件,这个新事件就是爆炸,我们将使用“Spawn”操作符创建该事件。<BR>  63、创建“Spawn”操作符。首先将“Spawn”测试从仓库拖至事件显示中建立一个新的事件,将新事件命名为爆炸,如图1-46所示。<BR><BR>图1-46<BR>  64、设置爆炸参数。单击选择Spawn项,在其右侧的命令面板上,在“Display 03”卷展栏上,将“类型”更改为“圆”,并将颜色更改为橙色,如图1-47所示。此项繁殖操作与我们上一步创建烟雾拖尾所使用的繁殖操作有所不同,主要是因为它会使原始导弹粒子消亡,并且创建粒子的单个炸裂。<BR><BR>图1-47<BR>  65、单击“爆炸”事件中的“Spawn”测试,在其右侧的命令面板上勾选“Delete Parent(删除父粒子)”,将“Offsring(子孙数)”设置为 50,将“变化 %”设置为 10,这样设置以后,当一个导弹传递到该事件时,就会繁殖 45 到 50 个粒子,如图1-48所示。<BR><BR>图1-48 <BR>  66、接下来我们将设置速度、变化和散度。在“Speed(速度)”组中,将“Inherited(继承) %”值设置为 20,将“Variation(变化) %”设置为 30,将“Divergence(散度)”设置为 60 度,通过这样的设置以后,将会使爆炸粒子的速度直接与引起繁殖的传入粒子的速度相关,而“散度”角度用于创建一种广泛分布的模式,而不只是一股粒子,这样就爆炸的效果就更加形象了,如图1-49所示。<BR><BR>图1-49 <BR>  67、添加外力作用。接下来我们将向爆炸中添加阻力,将“Force”操作符从仓库拖至“爆炸”事件的底部,单击“Force”操作符,在其右侧的命令面板中,单击“按列表”按钮,然后选择 Drag01 空间扭曲,再单击“选择”,Drag01空间扭曲将会出现在列表当中,如图1-50所示。<BR><BR>图1-50<BR>68、添加“Delete”操作符。添加“Delete”操作符的目的是为了使爆炸后的粒子在短时间内消失,如果不使用此操作符,那么粒子爆炸以后将会一直存在,很显然这不符合实际。将“Delete”操作符添加到该事件底部,单击选择它以高亮显示,在其右侧的命令面板中,在“Remove(移除)”组中,选择“By Particle Age(按粒子年龄)”,并将“Life span(寿命)”设置为 48,将“Variation(变化)”设置为 8,在“Uniqueness(唯一性)”组中,将“Seed(种子)”设置为 31800,如图1-51所示。<BR><BR>图1-51 <BR>  69、同我们上面制作烟雾拖尾时的粒子一样,现在这些爆炸粒子在几何上也可以用面的形状来表示,我们将使用“Shape Facing”操作符来完成此项操作,在“Force”操作符下面添加新的“Shape Facing”操作符,然后单击选择它,在其右侧的命令面板中,在“Look At Camera/Object(注视摄影机/对象)”组中,将“Camera01”设置为选定对象,在“Size/Width(大小/宽度)”组中,保持默认的“在世界空间中”选择,并将“Units(单位)”值设置为值 300,然后将“0rientation(方向)”设置为“Align Speed Follow(对齐速度跟随)”,这样设置将会使形状对齐基于移动的方向,从而获得更加逼真的爆炸和炸裂效果。在“Uniqueness(唯一性)”组中,将“Seed(种子)”设置为 235。 如图1-52所示。<BR><BR>图1-52<BR>  70、将爆炸事件关联到“Find Target”测试。在事件显示中,找到“任务二”事件中的“Find Target”输出,然后从“Find Target 01”测试输出拖至“爆炸”事件输入以将二者关联,关联以后当导弹查找到茶壶目标时,就会产生剧烈的爆炸。同以前处理烟雾拖尾一样,需要随粒子年龄增大粒子大小,从而使这些粒子不会立即出现。如图1-53所示。<BR><BR>图1-53<BR>71、添加“Scale”操作符并对其设置动画。将“Scale”操作符从仓库中添加到“爆炸”事件中,使其正好位于“Shape Facing”操作符下面,如图1-54所示。<BR><BR>图1-54 <BR>  72、将其“Type(类型)”设置为“Overwrite Once(相对最初)”,与烟雾拖尾一样,我们还需要对面粒子进行动画设置,需要从 10% 缩放到 100%,因为爆炸后的粒子在大约 48 帧后消亡,所以我们要将时间滑块移动到第 48 帧,然后在动画设置栏上单击打开“Auto Key(自动关键点)”按钮,在“Scale 02”卷展栏上的“Scale Factor(比例因子)”组中,按 Shift 键并右键单击“X %”字段的微调器箭头,这会自动在第 0 帧和第 48 帧处为所有三个通道设置关键点,如图1-55所示。<BR><BR>图1-55 <BR>  73、在“Auto Key(自动关键点)”按钮仍处于活动状态情况下,转到第 0 帧,然后将值更改为 10%,此时的动画为从第 0 帧到第 48 帧均匀缩放,然后再次单击“自动关键点”按钮关闭自动设置动画关键点,以便不再对任何参数设置关键点。 如图1-56所示。<BR><BR>图1-56 <BR>  74、将缩放变化 %值设置为 10,并将“Sync By(同步方式)”设置为“Particle Age(粒子年龄)”,如图1-57所示。<BR><BR>图1-57<BR>  75、最后,如前所述,右键单击“X %”比例字段并选择在轨迹视图中显示,单击曲线左侧的缩放关键点,在关键点右侧将出现一个控制柄,调整移动控制柄,最后曲线的形状如图1-58所示。<BR><BR>图1-58 <BR>  76、对“Y 比例因子”轨迹和“X 比例因子”轨迹重复上一步骤,然后关闭轨迹视图。<BR>  77、添加材质操作符,为粒子指定材质。在“爆炸”事件当中,将新的“Material Dynamic”操作符添加至“Scale”操作符下面,然后单击它以高亮显示此操作符,此时的粒子视图如图1-59所示。<BR><BR>图1-59<BR>78、在“Material Dynamic”卷展栏上,单击当前标记为“无”的按钮将会出现“材质/贴图浏览器”,在浏览自组中选择材质编辑器,然后将材质类型指定为Flames 材质,同时确认已勾选了“指定材质ID”的选项,如图1-60所示。Flames 材质类似于smoke 材质,因为它是一种朝向贴图材质,该材质使用由粒子年龄驱动的渐变和不透明度。当对寿命相对较短的粒子设置贴图时,会创建像爆炸一样快速减弱地爆炸起火效果。<BR><BR>图1-60 <BR>  79、在材质编辑器中,勾选在视图中显示贴图”选项,然后在“Uniqueness(唯一性)”组中,将“Seed(种子)”设置为 14500,如图1-61所示。<BR><BR>图1-61 <BR>  80、保存和渲染。激活摄影机视图,现在我们可以对场景进行渲染了,由于大量的使用了粒子,所以渲染的时间会很慢,最终渲染效果如图1-62所示。<BR><BR>图1-62 <BR>  81、本节小结:本节我们主要通过一个导弹追踪动画的设置来学习了粒子流的具体操作,通过此节课的学习我们应该清楚,在粒子流当中,每一个单个的粒子系统可以包含许多完全不同的粒子类型,例如本节我们用到的导弹、导弹烟雾拖尾以及导弹碰撞其目标时产生的爆炸,并且我们可以为事件驱动系统的每个元素指定不同的行为和外观,也就是材质贴图,好了本节课的实例学习就到这里,下一节我们将通过一个具体的实例来学习如何使用粒子流系统模拟轮船在水中航行时产生的水花四溅的效果,请大家继续关注PConline软件资讯的3DS Max栏目。 </FONT>
<FONT size=2>第八篇 模拟轮船航行时的水花效果<BR>    本课我们想要达到的效果是轮船在水中航行时产生的水花拖尾的效果。要想实现真实场景中的轮船拖尾的效果,首先,我们需要创建一个粒子流系统,只要轮船在运动,粒子就应该存在。我们需要对所有的粒子进行测试,来确定它是否与水面产生碰撞,如果它们与水面产生碰撞,则每一个测试的粒子将会继续发射出新的粒子,为了达到真实的效果,在实际制作过程中需要设置两种类型的粒子,也就是说刚开始时,轮船航行会产生较大体积的水花,还有一部分将会发射出较小的象薄雾一样的粒子,这种象薄雾一样的粒子将会随着风慢慢吹散,最终消亡,下面我们就来看一下实际的操作步骤。<BR>    1、打开范例场景。<BR>单击此处<BR>(37K, winzip压缩文件)打开我们提供的一个场景文件,在这个场景中,我们制作好了一个简易的小船模型,使用平面对象创建的水面,三个空间扭曲对象:风、阻力和重力,主要用来控制粒子也就是轮船航行时水花的效果。另外,场景中还有一个全导向器 (UDeflector01) 以及一个已经设置好了动画效果的用来跟随船船运动的摄影机,按下屏幕下方的播放动画按钮观察摄影机视图,我们会发现当小船随着波浪的运动上下起伏,如图1-1所示。<BR><BR>    图1-1<BR>    2、创建粒子流。激活摄影机视图,然后按下键盘上的P键将摄影机视图切换至为透视图,选择场景中的小船,然后按下鼠标右键,在弹出的菜单中选择hide unselected(隐藏未选择对象),这样场景中除了小船以外其它的对象都被隐藏了。单击Create(建立)/Geometry(物体)钮,在其下拉列表中选择Particle Systems(粒子系统)选项,然后在命令面板上单击PF Source在视图中创建一个粒子流,其大小如图1-2所示。<BR><BR>    图1-2<BR>    3、将粒子流系统的图标链接到小船。在工具栏上单击Select and Link(选择并链接)按钮,然后拖动粒子流图标到小船上释放,这样粒子流就会作为船的子对象,当我们把粒子流系统的图标与小船对齐后,它们将会一起运动,单击选择粒子流图标,然后使用工具栏上的“Align(对齐)”工具在所有三个轴上对齐图标和小船的对象的中心和方向,这样做的好处是粒子流中的大多数基于速度的控制都不依赖于粒子流发射器的几何体的位置,通过使粒子流图标居于小船中心,会为我们对粒子的控制提供非常大的灵活性和方便性,如图1-3所示。<BR><BR>    图1-3<BR>4、按下键盘上的6键或者是在Modify(修改)命令面板中单击Particle View(粒子视图)以打开粒子视图设置窗口,在名为“Event 01”的事件中,首先选择除“Birth”和“Display”操作符之外的其它的操作符,然后按下键盘上的删除键,如图1-4所示。<BR><BR>    图1-4<BR>    5、在“Event 01”事件中,单击“Birth”操作符的名称使其高亮显示,然后在其右侧的命令面板上,我们将“发射停止”设置为 0,并将“数量”值设置为 300,这样就会使粒子流在动画的第一帧内同时发射 出300 个粒子,如图1-5所示。<BR><BR>    图1-5<BR>    6、为事件添加新的操作符。为了创建粒子粘贴在船体上的效果,我们需要使用定义粒子最初位置的操作符,这里我们将使用“Position Object”操作符来实现这种效果,它的具体的含义请参看前面的文章。在粒子视图下方的仓库中,按下鼠标左键将“Position Object”操作符拖动到“Event 01”事件的下方,在光标位置出现蓝线的时候松开鼠标,这样我们就将新的操作符插入到了当前的位置,此操作符的作用可用来将网格对象用作发射器,在本例中我们将通过使用它把船体作为发射的对象。如图1-6所示。<BR><BR>    图1-6<BR>    7、在“Event 01”事件中,单击“Position Object”操作符的名称使其高亮显示,在其右侧的命令面板上,在卷展栏中的控件分为两个主要组,即“发射器对象”和“位置”,在这里我们可以将多个网格对象定义为发射对象。“位置”组可用于定义对象上发射粒子的位置,因为我们要从船对象发射粒子,因此需要将其添加为发射器对象,在“发射器对象”列表下,单击“添加”按钮,然后选择小船对象,这样其名称将会出现在列表当中,如图1-7所示。<BR><BR>    图1-7<BR>    8、设置粒子出现在小船上的位置。在模拟水花的时候,粒子不应该完全覆盖船体,而只需要从小船的底部发射即可,因此我们要把它们限制到小船的底面上,使用旋转工具旋转透视图,以便我们可以从小船的底部看到船,然后在Modify(修改)命令面板中单击进入Polygon(多边形)子对象层级中并选择船体的底部部分,如图1-8所示。<BR><BR>    图1-8<BR>9、按下键盘上的6键返回到粒子视图对话框当中,在“位置”组下拉列表中,选择“选定面”,此时我们如果向前拖动时间滑块,将会看到粒子会出现在我们选定的多边形上,但是它们并不会粘在船上,因为迄今为止只定义了粒子出生的位置,而没有定义粒子在其寿命期间如何移动,现在播放动画,我们会发现粒子将粘在船的底部随船一起移动,如图1-9所示。<BR><BR>    图1-9<BR>    10、创建水花飞溅的效果。这里我们将使用“Collision”测试来实现,在“Event 01”底部添加“Collision Spawn”测试,从仓库中拖动此测试到Event 01的底部,如图1-10所示。<BR><BR>    图1-10<BR>    11、在事件窗口中单击“Collision Spawn”测试以选择它,“Collision Spawn”是一种混合性的测试,它拥有“Spawn”测试和“Collision”测试的大部分功能。我们先来看一下“Collision Spawn”测试,“Event 01”事件定义了粒子的出生并且粘在了小船的底面的粒子,面且在每一帧都测试它是否与水发生碰撞。当粒子与水发生碰撞时,则测试为真,粒子有资格继续执行下一个事件,如果粒子没有与水发生碰撞,则测试为假,粒子将不会继续执行下一步的操作。使用“Collision Spawn”测试,我们可以选择只将原始的粒子发送至下一事件,或者只发送繁殖出的新粒子,或是两者同时发送,这里我们将使用默认选项,这种设置只会将繁殖的粒子发送到下一个事件当中,单击“Add(添加)”或“By List(按列表)”按钮将 UDeflector01 空间扭曲添加到导向器列表中,此时事件中的测试名称将会由“Collision Spawn 01 (无)”更改为“Collision Spawn 01 (UDeflector01)”,这是粒子流的动态名功能,即在事件中动作名称包括动作最重要的参数,如图1-11所示。<BR><BR>    图1-11<BR>    12、在粒子视图右侧的命令面板上,在“Spawn Rate And Amount(繁殖速率和数量)”组中勾选“Spawn On Each Collision(每次碰撞时繁殖)”,这时“Until(次数上限)”参数将变为可用,它主要用来定义父粒子接受碰撞测试的最大次数,我们需要将默认值更改为任意较大数字,以确保每次船起伏时都发射粒子,这里我们将“Until(次数上限)”值设置为 100,同时,还要确保卷展栏顶部已勾选了为以下项测试真值&gt;繁殖粒子的复选框,这样就会使繁殖的粒子在出生后立即有资格重定向到下一事件当中。将“Spawnable(可繁殖) %”设置为 25.0,它表示将实际繁殖粒子的现有粒子或父粒子的百分比,将“Offspring(子孙数)”设置为 15,它会会告知粒子流从与 WaterMover 对象碰撞的每个原始粒子发射15个粒子。将“Variation(变化) %”设置为 15.0,如图1-12所示。<BR><BR>    图1-12<BR>13、设置繁殖粒子的速度。在“Speed(速度)”组设置中可用于指定受测试影响或由测试创建的粒子的速度和方向。在其下拉列表中可用来设置父粒子和繁殖的粒子在碰撞时的反应。选项包括“Continue(继续)”和“Bounce(反弹)”。“Continue(继续)”将忽略导向器的效果,使粒子继续它们的运动,就像没有发生任何事情一样。在此场景中,父粒子将永远不会测试为真,因此此设置对它们没有任何影响。我们希望繁殖的粒子反弹离开导向器,因此可以保留“Offspring(子孙)”设置为“Bounce(反弹)”,我们还要考虑导向器的粒子反弹的参数,较高的数值将会使繁殖的粒子反弹得更远,“Collision Spawn”测试可用两种方法来控制繁殖粒子的初始速度,一种是“In Units(使用单位)”,另一种是“Inherited(继承)”,其中前者是粒子发射的绝对速度值,与父粒子的运动无关。在本例中我们将使用“Inherited(继承)”,也就是船在航行时,与水面接触得越剧烈,子孙粒子运动的速度就越快,“Inherited(继承)”是默认值,在实际使用过程中需要将其值减小至四分之一左右,这里我们设置“Inherited(继承) %”值为 25.0,将“Variation(变化) %”值设置为 15.0,将“Divergence(散度)”设置为 15.0,“Divergence(散度)”类似于“Variation(变化)”,但它并不能随机改变速度,而只影响方向,如图1-13所示。<BR><BR>    图1-13<BR>    14、创建一个新事件到场景当中。在当在事件显示的空白区域添加“Speed”操作符,将它放在现有事件下面,此时粒子流将会创建一个包括“Speed”操作符和“Display”操作符的新事件,由于“Display”操作符可以用来控制粒子在视图中的显示方式,所以非常重要,当我们使用分支事件时,怎样判断测试结果何时为真?这就要通过更改分支事件中的“Display”操作符,便可以轻松地查看系统如何在视图中流动,我们还可以限制该事件中所显示粒子的百分比,以及显示每个粒子的 ID号,在新事件中,我们通过单击“Speed”操作符的图标禁用它,此时操作符变成灰色,表示其禁用状态。如图1-14所示。<BR><BR>    图1-14<BR>    15、将“Collision Spawn”测试的输出连接到新事件的输入。使用鼠标拖动Collision Spawn测试到Event02事件上的小圆上,此时会在两个连接器之间出现一条蓝色连线,并带有显示流动方向的箭头。如图1-15所示。<BR><BR>    图1-15<BR>    16、在创建的新事件中单击“Display”操作符,在其右侧的命令面板上更改其显示类型和颜色,单击操作符名称旁边的彩色圆点,也可以不进入操作符参数直接更改显示颜色,我们将它们变成绿色线,播放动画我们会发现,当船与水碰撞时,会发射粒子,由于我们已经为新粒子定义了不同于父粒子的显示方式,因此可以轻松识别这些新粒子,即视图中显示为绿色短线的即是,如图1-16所示。<BR><BR>    图1-16<BR>17、重新启用“Speed”操作符,方法是单击其图标即可,也可以使用鼠标右键单击操作符并从菜单中选择Turn On(启用),“Speed”操作符是根据粒子流的图标来创建速度,前面我们已经将图标与船对象对齐并链接到了船对象上,下面我们需要对其进行设置以创建径向力,此径向力将施加到粒子使其远离中心。单击“Speed”操作符,在其右侧的参数命令面板上,将“Direction(方向)”设置为“Along Icon Arrow(图标中心朝外)”,将“Speed(速度)”设置为 30.0,将“Variation(变化)”设置为 15.0 以使速度随机化,将“Divergence(散度)”设置为 45.0,如图1-17所示。<BR><BR>    图1-17<BR>    18、添加外力作用。如果要添加像重力那样的力,我们需要使用“Force”操作符在事件中定义它们。但为获得更大的灵活性,我们将使用两个“Force”操作符,以便为每个“Force”操作符指定不同的强度,在“Speed”操作符下添加两个“Force”操作符,如图1-18所示。<BR><BR>    图1-18<BR>    19、在第一个操作符中,使用“添加”按钮将 Gravity01 空间扭曲添加至其列表当中,将此“Force”操作符的“Influence(影响) %”值设置为 150.0,它表示此事件中的粒子将受到Gravity01 空间扭曲的影响,影响程度是其强度的 150%,这样设置以后将使这些飞溅粒子看起来比它后面的的薄雾具有更大的质量,而薄雾将会使用相同的“重力”空间扭曲,但是受到的影响确较小,如图1-19所示。<BR><BR>    图1-19<BR>    20、向第二个“Force”操作符添加 Wind01 空间扭曲,并将其“Influence(影响) %”值设置为 5.0,设置较小的影响值是因为飞溅效果要模拟质量较大的水,所以它们受到的风的影响不应该像细微的海洋喷雾那么大,如图1-20所示。<BR><BR>    图1-20<BR>    21、设置粒子寿命。此时如果播放动画,我们会看到正确形成的飞溅粒子,但是存在的问题是它们永远不会消失,只是受重力影响在水中持续下落,这是由于我们没有为粒子指定寿命。为粒子指定寿命我们可以使用“Delete”操作符,此操作符主要删除传递给它的粒子,我们在第二个“Force”操作符下面添加“Delete”操作符,并将其“Remove(移除)”选项设置为“By Particle Age(按粒子年龄)”,保持其默认的“Life Span(寿命)”值为60 帧以及“Variation(变化)”值为10帧,此时如果播放动画,我们会看到飞溅粒子在约 60 帧后消亡,如图1-21所示。<BR><BR>    图1-21</FONT>
<FONT size=2>22、创建水雾效果。下面我们来制作来自飞溅水花的水雾效果。在“Event02”事件的底部添加一个“Age Test”,保持其默认设置,即“Particle(粒子年龄)”和“Is Greater Than Test Value(大于测试值)”,将“Test Value(测试值)”设置为 10,将“Variation(变化)”设置为 4,如果“Event02”事件中的所有粒子年龄约为 10 帧,对于添加的随机性要加上或减去 4 帧,则此测试会将所有粒子传送至新事件,如图1-22所示。<BR><BR>    图1-22<BR>    23、创建一个新事件。将“Spawn”测试拖动添加到事件显示的空白区域,将“Event02”事件中的“Age Test”关联到包含“Spawn”测试的新事件,此时,由于“Age Test”会在粒子达到其寿命被删除之前将其移至下一事件,因此,“EVENT02”事件中的“Delete”操作符不再具有任何作用,但中它可以减轻系统负担过多粒子,如图1-23所示。<BR><BR>    图1-23<BR>    24、单击选择“Display”操作符,在其右侧的命令面板中将“Type(类型)”设置为“Geometry(几何体)”,粒子流将为自动添加的每个“Display”操作符指定随机的颜色,另外,我们也可以自己更改此颜色,如图1-24所示。<BR><BR>    图1-24<BR>    25、单击选择“Spawn”测试,它的参数设置类似于“Collision Spawn”测试的参数。在默认的情况下,它设置为繁殖粒子一次,这表示其在流中不持续繁殖粒子。在这个场景中,我们不希望每个飞溅粒子都发射出水雾粒子,设置“Spawnable(可繁殖) %”值为 75.0,如图1-25所示。<BR><BR>    图1-25<BR>    26、在参数命令面板上将“Offspring(子孙数)”值设置为3,将“Variation(变化) %”设置为 15.0,并保持默认的“Divergence(散度)”设置 20.0,如图1-26所示。<BR><BR>    图1-26<BR>27、在“Event03”事件中,在“Spawn”测试符后添加一个“Force”操作符,单击其右侧命令面板上的“Add(添加)”或“By List(按列表)”按钮,向列表中添加 Drag01 和 Wind01 空间扭曲,同时,将“Influence(影响) %”设置为 50.0。粒子流的重要功能之一就是可以将具有不同影响值的相同力应用到不同的操作符中,在此场景中我们不需要多余的空间扭曲,同前面一样,我们将使用“Delete”操作符使水雾粒子在特定时间后消亡,如图1-27所示。<BR><BR>    图1-27<BR>    28、添加Delete操作符。在“Event02”事件中单击选择“Delete”操作符,然后右键单击它并从菜单中选择“Copy(复制)”项,然后将鼠标光标放在“Event03”事件的底部并单击鼠标右键,在弹出的菜单选项中单击“Paste(粘贴)”,这样我们就将“Delete”操作符粘贴到了“Event03”事件中,此操作符在事件中显示为“Delete 02”,如图1-28所示。<BR><BR>    图1-28<BR>    29、为不同粒子类型定义几何体和材质。现在播放动画观看,我们会发现相当逼真的水花向上飞溅并从中喷射出水雾,但要让其成为生产实例,我们还需要进行一些设置,我们可以将每个事件的粒子描述为球体、长方体或实例几何体等,而且,当在不同事件之间移动粒子时,还可以更改它们的形状。这里我们将使用两种几何体类型即飞溅粒子和水雾。飞溅粒子需要模拟大量飞溅的数百万个微小粒子,我们将使用混合到一起且具有不透明度衰减的大型球体形状来进行模拟,这样就会生成类似由数百万个粒子组成的柔软的曲面,另一方面,水雾可以是很多小圆点。在“Event02”事件中的任意位置添加“Shape Instance”操作符,此操作符的功能非常强大,它允许我们在场景中将唯一的对象用作粒子几何体,并且更改此几何体的某些参数,而实际中不更改此几何体,如图1-29所示。<BR><BR>    图1-29<BR>    30、单击选择“Shape Instance”操作符,在其右侧的命令面板上单击“粒子几何体对象”组中的按钮,此时鼠标将切换至拾取模式,然后在场景中选择Sphere01对象,如图1-30所示。<BR><BR>    图1-30<BR>    31、在粒子视图中单击“Event02”事件中的“Display”操作符,在其右侧的命令面板上将其显示“类型”更改为“几何体”或“边界框”,如图1-31所示。<BR><BR>    图1-31<BR>32、设置粒子缩放动画。如果此时播放动画,我们会发现,当水花溅起的时候,也就是粒子出生时,它们最初是以实际大小出现的,这是因为它们在出生时参考的是具有固定比例的Sphere01几何体,如果要使效果更加逼真,我们需要进行随粒子年龄设置缩放的动画。依据粒子的年龄设置参数动画是一个非常有用的功能,因为在粒子年龄期间设置的动画都会在粒子自身的时间帧中被设置成动画。下面我们将根据粒子年龄按比例来设置水花的大小。在“Event02”事件的“Shape Instance”操作符下添加“Scale”操作符,如图1-32所示。<BR><BR>    图1-32<BR>    33、单击选择“Scale”操作符,在其右侧的命令面板上的“Type(类型)”下拉列表中选择“Relative First(相对最初)”类型, 这种类型采用现有的缩放因子,在本教程中,来自“Shape Instance”操作符,并修改相对于该值的粒子缩放。如图1-33所示。<BR><BR>    图1-33<BR>    34、将时间滑块拖动到第 0 帧,单击打开“Auto Key(自动关键点)”动画设置选项,然后将“Scale Factor(比例因子)”的“X %”值设置为 0.0,这样设置会将所有三个轴都设置为 0,并在第 0 帧处为每个轴创建关键点,我们可以在轨迹视图中访问这些关键点,也可以在选定粒子流图标时在轨迹栏中访问它们,如图1-34所示。<BR><BR>    图1-34<BR>    35、拖动时间滑块到第 30 帧,然后将“Scale Factor(比例因子)”值设置为 100.0,关闭“Auto Key(自动关键点)”动画设置项,如图1-35所示。播放动画观看效果,粒子水花的缩放问题并没有得到解决,这是因为在默认的情况下“Scale”操作符使用“绝对时间”工作,即在第 0 帧至第 30 帧期间缩放粒子,因此,在这些粒子到第 58 帧首次出现时,缩放已经达到了100%。<BR><BR>    图1-35<BR>    36、在右侧命令面板中,在“Animation Offset Keying(动画偏移关键点)”组中,将“Sync By(同步方式)”设置为“Particle Age(粒子年龄)”,然后播放动画观看效果,随着每个飞溅粒子的产生,它们将在 31 帧内从0% 逐渐增大到100%,如图1-36所示。<BR><BR>    图1-36<BR>    37、为每个粒子设置不同的缩放效果。在“缩放变化”选项组中,将“X %”值设置为 20.0,每个粒子将增大到不同的量,此量为随机选定,范围在 80% 至 120% 之间,如图1-37所示。<BR><BR>    图1-37<BR>38、添加“Shape Facing”操作符。由于水雾粒子应该具有非常柔和的边缘,因此水雾效果略微不同于大的飞溅出来的粒子,我们将使用不透明度的径向渐变为这些粒子多边形设置贴图效果,使它们看起来像带有柔和边的几何体,这些效果的设置就是通过“Shape Facing”操作符来实现的,主要使用 Mist 材质设置贴图,将“Shape Facing”操作符从仓库中添加到“Event03”事件中的“Spawn”测试后面,然后单击该操作符以显示其参数,如图1-38所示。<BR><BR>    图1-38<BR>    39、在其右侧的参数命令面板中,第一个组用于指定粒子将朝向的对象,在大多数情况下,我们都应该将该对象设置为摄影机,使这些粒子始终朝向摄影机的原因是为了虚设它们的形状,因为它们在实际上只是平面的片状。单击“Look At Camera/Object(注视摄影机/对象)”按钮,然后单击NONE按钮,然后用鼠标单击选择场景中的摄影机,如图1-39所示。<BR><BR>    图1-39<BR>    40、设置粒子的大小比例。在参数命令面板中有三种方法可以用来进行设置粒子的大小和比例,即::In World Space(世界空间)、In Local Space(局部空间)或In Screen Space(屏幕空间)。In World Space(世界空间)可以用来以世界单位设置绝对大小,而使用In Local Space(局部空间)时,可以将大小设置为先前定义的大小的百分比。In Screen Space(屏幕空间)比较独特,这是由于它保持每个粒子的大小与屏幕的大小成比例,通过不断地调整粒子大小来保持所指定的比率,而不论其与摄影机的距离远近,这里我们选择了“In World Space(在世界空间中)”,然后将“Units(单位)”设置为 2.0,如图1-40所示。<BR><BR>    图1-40<BR>    41、在实际制作过程中,我们希望产生的水雾粒子的缩放与飞溅出来的大多数的粒子的缩放相类似,所以我们将“Scale”操作符从“Event02”事件中复制到“Event03”事件中的“Shape Facing”操作符的下面,如图1-41所示。<BR><BR>    图1-41<BR>    42、为飞溅的粒子和水雾指定材质。我们将使用“Material”操作符将材质指定给全局或局部事件中的粒子。需要说明的是在局部事件中,“Material”操作符只影响该事件中的粒子,但在全局事件中,它会影响系统中的每个粒子。材质操作符有三种形态即:静态、动态和频率。静态比较简单,它指定在事件期间不变的材质和 ID;而动态使粒子的材质 ID 在事件期间发生变化,并使用“粒子年龄”和类似贴图支持动画材质;频率直接使用子材质,可以创建材质列表,并根据百分比来确定对粒子的指定。从仓库中将“Material Dynamic”操作符添加到“Event02”事件中“Age Test”上面的任何位置,如图1-42所示。<BR><BR>    图1-42<BR> 43、在材质编辑器中已包含了要用于飞溅粒子的材质,单击选择Material Dynamic操作符,在“Material Dynamic”右侧的参数命令面板中,单击“指定材质”按钮,然后在“材质/贴图浏览器”对话框中选择“浏览自”&gt;“材质编辑器”,然后双击“Splash”材质,这种材质较简单,它使用带有轻微自发光的纯色,若要使边缘看起来柔和,我们将使用遮罩的衰减贴图,衰减贴图会使不透明度随着材质到达边缘而下降,然后使用随粒子年龄从白到黑变化的“粒子年龄”贴图对上述情况设置遮罩,从而有效地使粒子随其寿命而消失。现在,在“Event02”事件中的“Delete”操作符将重新起作用,这是因为设置了粒子寿命,使用“粒子年龄”贴图需要知道粒子在其整个寿命中的位置,以便确定要将范围内的哪种颜色应用到粒子,如图1-43所示。<BR><BR>    图1-43<BR>    44、设置水雾材质。将“Material Dynamic”操作符添加到“Event03”事件中“Spawn”测试后面的任何位置,并为其指定“Mist”材质,这种材质与“Splash”材质有所不同,它使用带有微量自发光的纯色,但是由于它是面粒子,因此该材质使用径向渐变设置不透明度贴图,同时使用“粒子年龄”贴图设置遮罩,另外,由于材质的“面贴图”选项已经启用,所以使用径向渐变能正确的适配几何体,如图1-44所示。<BR><BR>    图1-44<BR>    45、渲染动画场景。在进行动画渲染之前,我们还需要进行一些小的调整。首先,激活“透视”视口,然后按 C 键将其设置为摄影机视图,然后在“Event01”事件中的“Collision Spawn”测试中,将“Spawnable(可繁殖) %”设置回 100.0,最后对摄影机视图进行渲染,观看动画效果,小船在翻滚的波浪中上下起伏,每当小船前后运动时,在小船的底部就产生了大量的向上飞溅的水花,此外,水花还释放出吹散的水雾效果,最终效果如图1-45所示。<BR><BR>    图1-45<BR>    46、本节小结:在这个实例中,我们学习了如何使用粒子流将对象用作发射器,如何将对象的一部分子对象用作发射器,通过使用碰撞测试事件,并作为最终结果而发射水花飞溅和薄雾的效果,同时,通过使用风力等外力作用来影响发射粒子的运动,最后通过应用材质使其看起来更加逼真。好了本节课的实例学习就到这里,下一节我们将通过模拟一辆轿车在雨后的路面上行驶所产生的水花和烟雾效果来更深入的学习粒子流系统,请大家继续关注PConline软件资讯的3DS Max栏目。</FONT>
<FONT size=2>第九篇 汽车溅起的水花<BR>  这节课我们通过一个实例来学习飞驰的汽车行驶在雨后的路面上所带起的水花飞溅的效果,效果如下图所示。在本课中,我们将教给大家如何使用粒子流来创建汽车轮胎在与地面接触过程中所溅起的水花。这些水花粒子在飞溅过程中不应受到轮胎向前运动的影响,为此我们将通过使用脚本来设置粒子的运动效果。下面我们就来看一下实际的操作步骤。<BR>  1、打开范例场景。<BR>单击此处下载<BR>(594K, winzip压缩文件)并打开pf9.max我们提供的一个场景文件,在这个场景中,我们提供了一段汽车在路面上行驶的动画,场景中除了汽车模型外,还有四个立方体BOX对象,主要用来在制作车轮溅出的水花时会用到,如图1-1所示。<BR><BR>图1-1<BR>  2、创建粒子流系统。单击动画播放按钮观看摄影机视图,我们会发现小汽车在路上运动。激活摄影机视图,单击Create(建立)/Geometry(物体)钮,在其下拉列表中选择Particle Systems(粒子系统)选项,然后在命令面板上单击PF Source在视图中创建一个粒子流,并将其命名为PFRS,其大小如图1-2所示,我们将在摄影机视图中进行大量的设置工作。<BR><BR>图1-2<BR>  3、按下键盘上的6键或者是在Modify(修改)命令面板中单击Particle View(粒子视图)以打开粒子视图设置窗口,在名为“Event 01”的事件中,首先单击选择“Birth”操作符,在其右侧的参数设置命令面板上将“Emit Stop(发射停止)”设置为155,这样这些轮胎将会在整个动画过程中发射粒子,然后再勾选“Rate(速率)”选项,如图1-3所示。<BR><BR>图1-3<BR>4、定义粒子来源。在这个实例中,粒子的来源是从轮胎底部与地面接触的位置,首先从“粒子视图”仓库中将“Position Object”操作符拖到现有Event01事件的“Position Icon”操作符上,确保引入线为红色,这样“Position Object”就会替换“Position Icon”,如图1-4所示。<BR><BR>图1-4<BR>  5、单击“Position Object”操作符,在其参数命令面板上单击“By List(按列表)”按钮,然后单击选择“车轮03”对象,然后单击“Select(选择)”按钮,车轮03对象将会出现在“Emitter Objects(发射器对象)”列表当中,如图1-5所示。<BR><BR>图1-5<BR>  6、定义发射粒子轮胎的子对象。此时播放动画观看会发现,粒子将从整个轮胎对象上发射,在实际过程中,粒子只应该从轮胎的底部发射,但是轮胎正在向前旋转,所以我们需要定义独立于轮胎之外的子对象选择,在我们的场景中提供了四个立方体(BOX)对象,这四个立方体都非常小,位置在每个轮胎的下面,它们是独立于轮胎之外的,它们被做为子对象链接到了车体上,它们的运动同轮胎没有任何联系,但是将会同轮胎一同向前运动。首先在视图中选择车轮03对象,然后单击Modify(修改)钮进入变动修改命令面板中,为车轮03添加Vol Select(体积选择)修改器,在“Parameters(参数)”卷展栏上,将“Stack Selection Level(堆栈选择级别)”设置为“Face(面)”,将“Select By(选择方式)”设置为“Mesh Object(网格对象)”,并单击“Mesh Object(网格对象)”下的None按钮,然后在场景中单击拾取按钮选择位于轮胎下面的BOX04,将“Selection Method(选择类型)”设置为“Subtaract(交叉)”,如图1-6所示。<BR><BR>图1-6<BR>  7、返回“Particle View(粒子视图)”,将更新“Position Object”控件,启用“Lock on Emitter(锁定发射器)”和“Animated Shape(动画图形)”,将“Location(位置)”设置为“Selected Faces(选定面)”,并启用“If Location(如果位置无效)”&gt;“Delete Particles(删除粒子)”,然后,从“Event 01”中删除“Speed 01”、“Shape 01”和“Rotation 01”操作符,当前,粒子锁定在发射器上以继承运动,但是在给定轮胎旋转速度的情况下,粒子应被快速甩离,如图1-7所示。<BR><BR>图1-7 <BR>  8、从仓库中将“Age Test”添加到“Event 01”的底部,保持默认的“Age Test(粒子年龄)”设置,并将“Test Value(测试值)”和“Variation(变化)”都设置为 1,如图1-8所示。<BR><BR>图1-8<BR>9、创建Display新事件。在“Event 01”下面的空白区域中添加“Display”操作符来创建一个新事件,并拖动“Age Test”关联至“Display”事件,如图1-9所示。单击激活摄影机视图并播放动画,我们发现,粒子不仅离开了轮胎,而且还跟随汽车的运动,在实际过程中,我们并不希望粒子跟随汽车运动,解决这种问题的办法需要从粒子的运动中减去汽车的运动,这将使用到粒子的脚本。<BR><BR>图1-9<BR>  10、去除粒子跟随汽车的运动。为了实现更加真实的粒子运动效果,我们将使用脚本将数据从粒子流中的一个粒子系统传送至另一个粒子系统。首先,我们需要创建一个测试用的粒子系统,右键单击“粒子视图”事件显示,并选择“新建”&gt;“粒子系统”&gt;“Empty Flow”,在场景中将会创建名为“PF Source 01”的新源图标,选择新的“PF Source 01”图标,将其重命名为 PFCK,在视图中移动其图标,使它在摄影机视图中可见,如图1-10所示。<BR><BR>图1-10<BR>  11、选择PFCK粒子流图标,单击Modify(修改)钮进入修改命令面板中,在“Modify(修改)”命令面板中,在发射卷展栏上,将“ Quantity Multiplier(数量倍增)”的“Viewport(视口) %”设置为 100,如图1-11所示。<BR><BR>图1-11 <BR>  12、在“Particle View(粒子视图)”中,将一个“Birth”操作符从仓库拖至全局事件下面以创建一个新事件,然后托运PFCk关联至此新事件,如图1-12所示。<BR><BR>图1-12<BR>  13、单击“Birth”操作符以选择它,在其右侧的参数命令面板中,将“发射开始”和“发射停止”都设置为 0,并将“数量”设置为 1,这是因为新系统只需要一个粒子,并且它必须出现在动画的开始处,如图1-13所示。<BR><BR>图1-13<BR>14、在仓库中将“Position Object”操作符添加到新事件当中,然后选择Position Object对象,在其右侧的参数命令面板中单击By List按钮,在弹出的对话框中选择车体对象,然后勾选“Lock on Emitter(锁定发射器)”选项,这样该粒子就与汽车一起运动了,现在在整个动画过程中,只有一个锁定到汽车的粒子,如图1-14所示。 <BR><BR>图1-14<BR>  15、返回到“Event 02”事件当中,从仓库中拖动“Script Operator(脚本操作器)”放在Event02事件的下方,然后使用“Script Operator”控件中的“编辑脚本”按钮编辑脚本,由于脚本操作符提供了默认的脚本,所以我们不需要重新输入脚本,只需要运用其中的自带的一段即可,在这个实例当中我们只保留以下内容即可,将其余的脚本都删除,如图1-15所示。<BR>on ChannelsUsed pCont do<BR>(<BR>pCont.useTime = true<BR>pCont.useSpeed = true<BR>pcont.useInteger = true<BR>) <BR>on Init pCont do <BR>(<BR>)<BR>on Proceed pCont do <BR>(<BR>count = pCont.NumParticles()<BR>timeEnd = pCont.getTimeEnd()<BR>$PFCarSpeedCheck.updateParticles $PFCarSpeedCheck timeEnd<BR>carSpeed = $PFCarSpeedCheck.particleSpeed<BR>for i in 1 to count do<BR>(<BR>pCont.particleIndex = i<BR>if pcont.particleInteger != 1 do -- subtract the motion of the car only once<BR>(<BR>pcont.particlespeed -= 0.8 * carSpeed -- leave 80 percent of the motion<BR>-- now to introduce a little variation in the particle speed to randomize things a little:<BR>pcont.particleSpeed *= 1 - (pcont.rand11() * 0.3)<BR>-- pcont.rand55() is a built in Particle Flow function that generates a random number between -0.5 and 0.5,<BR>-- I then turn that into a -0.3 to 0.3 multiplier, or 30% variation<BR>-- 这样可以对渲染采取更大的积分步长,并仍然避免喷出。<BR>pcont.particleInteger = 1 -- 设置此项以便其在后面循环测试的叠代中会被忽略<BR>)<BR>)<BR>)<BR>on Release pCont do <BR>(<BR>)<BR><BR>图1-15</FONT>
<FONT size=2>16、激活摄影机视图并播放动画,我们会观察到粒子在汽车后面形成了拖尾,而不是随着汽车一起运动,这就是我们需要的效果,如图1-16所示。<BR><BR>图1-16<BR>  17、将汽车的右后轮胎添加到事件当中。单击选择“Event 01”事件,选择其中的“Position Object”操作符,在其右侧的参数命令面板中单击By List(按列表)钮,在弹出的窗口中单击选择车轮04将其添加到发射对象列表当中,如图1-17所示。<BR><BR>图1-17<BR>  18、设置前轮粒子系统。下面我们来创建用于前面轮胎的粒子系统,它与后面轮胎的设置过程基本相似,唯一不同的地方就是粒子在离开前轮胎后在与后轮胎相碰撞时应该消亡。由于大部分的设置同后轮相同,为此我们将使用复制粒子系统的方法进行设置。需要说明的是使用复制的方法进行粒子系统的设置必须在“Particle View(粒子视图)”中进行复制,如果使用在场景中复制粒子流图标的方法是 不正确的,在场景中复制粒子流只会复制发射器的图标。在“Particle View(粒子视图)”,框选PFrs 流上的的所有事件,然后单击鼠标右键,在弹出的菜单中选择“Copy(复制)”,然后将鼠标光标移动到空白区域,右键单击并选择“Paste(粘贴)”,这样我们就粘贴了前轮胎流所需的所有事件。如图1-18所示。<BR><BR>图1-18 <BR>  19、设置前轮为发射器。重新命名新粘贴的全局事件为PFFS,我们将将设置新粒子系统然后将前轮胎用作发射器,同时创建该轮胎的子对象选择。按照前面讲过的体积选择的方式对前轮进行设置,也可以直接复制后轮的体积选择项,粘贴到前轮胎即可。选择其中的一个后轮胎“轮胎03”,然后在Modify修改命令面板中单击“Vol Select(体积选择)”修改器使其高亮显示,在修改器堆栈中右键单击“Vol Select(体积选择)”并选择“Copy(复制)”,然后再在场景中选择左前轮胎,右键单击其修改器堆栈并选择“Paste(粘贴)”,这样“Vol Select(体积选择)”修改器将会显示在左前轮胎的修改器堆栈中,如图1-19所示。<BR><BR>图1-19<BR>20、选择前轮胎“轮胎02”,并将BOX01选择作为“Vol Selected(体积选择)”修改器的“Select By(选择方式)”组中的网格对象,如图1-20所示。<BR><BR>图1-20<BR>  21、在“Particle View(粒子视图)”中,在新创建的PFFS粒子流当中,在“Event 04”单击“Position Object 03”,在其右侧的参数命令面板中分别选择车轮03和车轮04,然后按下Remove钮移除两个现有的轮胎对象,然后将BOX01添加进来,如图1-21所示。与后轮胎设置过程一样,单击ADD按钮,然后将另外一个前轮胎“轮胎1”也添加进来。<BR><BR>图1-21 <BR>  22、播放动画观看效果,我们会发现粒子从前轮胎的底部流出,然后落在了汽车的后面。下面我们来进行渲染设置。在场景中单击选择PFRS粒子流图标,然后单击Modify钮进入修改设置命令面板中,将Quantity Multiplier(数量倍增)Viewport(视口)%值设置为 10,如图1-22所示。<BR><BR> <BR>图1-22<BR>  23、在“Particle View(粒子视图)”中,在Event 02事件的后面,添加一个“Shape Facing”操作符,在其右侧的参数命令面板上单击Look At Camera/Object(注视摄影机/对象),然后在场景中单击选择CameraA01(摄影机),如图1-23所示。<BR><BR>图1-23<BR>  24、在“Shape Facing”操作符的参数命令面板中,将“In World Space(在世界空间中)”的“Units(单位)的值设置为 60.0,将“Orientation(方向)”设置为“Allow Spinning(允许自旋)”,如图1-24所示。<BR><BR>图1-24<BR>25、从粒子视图的仓库中拖动“Spin”操作符放置在“Shape Facing”操作符的后面,然后将“Rate(自旋速率)”设置为 90.0,将“变化”设置为 20,并使其余控制保留默认设置,如图1-25所示。这样设置以后,粒子将在每4秒钟内自旋一次并且还具有一些变化。<BR><BR>图1-25<BR>  26、对轮胎粒子进行缩放。为了使效果更加的真实,这些粒子还应该在出现以后变得更大,我们将使用“Scale”操作符来实现,将“Scale”添加到“Spin”操作符的后面,然后在其右侧的参数命令面板上将三个轴的“类型”设置为“相对最初”、“缩放变化”设置为 20.0,如图1-26所示。<BR><BR>图1-26 <BR>  27、设置粒子缩放动画。在动画设置栏中单击Auto打开“自动关键点”选项,然后在第 0 帧将“比例因子”设置为 20%,之后转到第 3 帧并将其设置为 100,最后,转到第 100 帧并将比例设置为 300,然后单击Auto Key钮关闭自动关键点选项。图1-27分别为在第 0 帧、第 3 帧和第 100 帧处的缩放百分比的值。<BR><BR>图1-27<BR>  28、进行材质指定。如果要为粒子系统指定材质,则需要使用材质操作符,这里我们将使用“Material Dynamic”操作符,该操作符将会使用动画材质使粒子的外观随粒子的寿命变化。在“Event 02”中的任意位置上添加一个“Material Dynamic”操作符,如图1-28所示。<BR><BR>图1-28<BR>  29、单击“Event 02”中的“Material Dynamic”操作符操作符以显示其参数,单击Material Dynamic材质卷展栏上的None按钮,在弹出的材质编辑器窗口中,单击选择名为Reflection_Refmap的材质类型,如图1-29所示。<BR><BR>图1-29<BR>  30、在“Event 02”事件中,单击高亮显示“Shape Facing”、“Spin”、“Scale”、“Material Dynamic”操作符,然后在其上按下鼠标右键,在弹出的菜单中选择COPY(复制)项,将它们作为实例粘贴到“Event 05”事件中,如图1-30所示。<BR><BR>图1-30<BR>  31、场景最终渲染。单击激活摄影机视图,按下工具栏上的Quick Render钮对场景进行最终渲染,最终效果如图1-31所示。汽车在雨后的道路上飞驰,溅起一路水花。<BR><BR>图1-31<BR>  32、本节小结:这节课我们学习了飞驰的汽车行驶在雨后的路面上所带起的水花飞溅的效果,通过本课的学习我们应该重点掌握以下几方面的内容:<BR>  (1)如何把几何体作为粒子发射的对象;<BR>  (2)如何为粒子系统的参数设置动画效果;<BR>  (3)如何设置粒子的材质效果;<BR>  (4);如何应用脚本MAXScript来修改粒子系统参数。<BR>  好了本节课程就学到这里,下一节课我们将学习粒子流系统的最后一节课程如何制水管中流动的水的效果。请大家继续关注PConline软件资讯的3DS Max栏目。</FONT>
<FONT size=2>第十篇 水管中流淌的水<BR>  本课我们将通过在水管中流淌的水的效果来学习液体在管道中流淌的设置方法。我们将学习到水在多个分支管道中的流动的设置,当水管中的水接近分支管道时,它将会有选择的改变方向,最终效果如下图所示。<BR>   1、打开范例场景。<BR>单击此处打开pf10.max场景文件<BR>(52K, Winzip压缩文件)。在这个场景中我们提供了一个带有分支的水管的模型、三条样条曲线(主要用于定义不同分支水管的路径)、一个箭头模型,如图1-1所示。<BR><BR>图1-1<BR>  2、创建粒子流系统。单击Create(建立)/Geometry(物体)钮,在其下拉列表中选择Particle Systems(粒子系统)选项,然后在命令面板上单击PF Source在Front视图中创建一个粒子流,其大小同水管的开口大小相当,如图1-2所示。<BR><BR>图1-2<BR>  3、单击Modify钮进入修改命令面板中,在“Emission(发射)”卷展栏上,将“Icon Type(图标类型)”设置为“Circle(圆形)”,并将“Diameter(直径)”设置为20,此时观察摄影机视图,我们会发现粒子流源的图标显示为圆形,其中有一个徽标和一个从图标中心指向外侧的箭头,然后使用鼠标拖动粒子粒子流源图标使其位于水管的开口位置,它的箭头方向应该指向管道的内部,如图1-3所示。<BR><BR>图1-3<BR>4、在场景中首先选定粒子流源图标,然后按下键盘上的6键或者是在Modify(修改)命令面板中单击Particle View(粒子视图)以打开粒子视图设置窗口,此时将按照默认排列打开“粒子视图”编辑器,在“Particle View(粒子视图)”中,打开“Options(选项)”菜单并选择“Track Up Date(跟踪更新)”&gt;“Particle Count(粒子数)”,如图1-4所示。此时在每个事件的上方将会出现一个数字,这是查看流中的粒子如何穿过事件的有效方法。现在我们如果拖动时间滑块会发现选项卡上的粒子数也就是数字会随时进行更新。在全局事件 (PF Source 01) 显示的是流中的粒子的总数,此处它与“Event 01”中的粒子数相同。需要说明的是,在事件当中的每一项上都有一些信息列出在操作名称旁边的圆括号内,通过它我们可以快速的知道我们的操作设置。比如说,在“Birth”操作符旁的括号内显示为:“Birth01 (0-30 T:200)”。这表示它是设置为从第 0 帧至第30帧发射总计200个粒子的“Birth”操作符。我们可以通过单击“Birth”操作符显示参数命令面板来检查其设置。在Particle View(粒子视图)中,“PF Source01”事件是初始事件,它仅仅包含一个“Render”操作符,这是由于它充当了全局事件,即定义整个粒子流而不是单个事件和操作符的特性,在此事件中的所有的操作符都全局应用于所有的事件。<BR><BR>图1-4 <BR>  5、将“Display”操作符移动到“PF Source01”事件当中。使用鼠标拖动的方法将“Display”操作符从“Event 01”拖动到“PF Source01”事件中,以便无论粒子处于哪个事件中,都将始终使用相同的显示方式,如图1-5所示。<BR><BR>图1-5<BR>  6、在菜单栏上单击选择“Options(选项)”菜单 &gt;“Default Display(默认显示)”&gt;“Global(全局)”,使用此选项将会避免“Particle View(粒子视图)”为每个事件创建新的和唯一的“Display”操作符,如图1-6所示。<BR><BR>图1-6<BR>  7、粒子参数设置。在Particle View(粒子视图)当中,首先右键单击“Event01”的名称,在弹出的菜单当中选择“Rename(重命名)”并输入Emitter,如图1-7所示。<BR><BR>图1-7<BR>  8、在Particle View(粒子视图)当中,单击Emitter事件当中的“Birth”操作符,然后在其右侧的参数命令面板上将“发射停止”值更改为600,然后删除“Speed”、“Rotation”和“Shape”操作符,如图1-8所示。此时如果播放动画,我们将会看到粒子出现在粒子流源图标上,但是并没有运动。这是因为在“Emitter”事件当中,粒子的位置是由“Position Icon”操作符来定义的,从而将粒子设置为使用粒子流源图标的体积。 <BR><BR>图1-8<BR>9、创建粒子的运动。这里我们将使用“Speed By Icon”操作符和路径约束来定义粒子沿样条曲线穿水管主体的运动。在事件当中,我们将会用到“Speed By Icon”操作符,它可以指定粒子速度:即,速度和方向。同时我们通过使用“Speed By Icon”操作符,还可运用多种控件来实现沿着不同的曲线运动的粒子效果。在Particle View(粒子视图)当中,从仓库中拖动“Speed By Icon”操作符到“Emitter”事件的底部,如图1-9所示。添加完“Speed By Icon”操作符后,在场景的世界坐标系原点(0,0,0)处将会自动创建一个新的名为“Speed By Icon01”的辅助对象,如果我们对此图标设置动画,那么粒子就可以继承其运动。<BR><BR>图1-9<BR>  10、在视图当中选择“Speed By Icon01”的辅助对象,然后在主菜单中选择“Animation(动画)”&gt;“Constraints(约束)”&gt;“Path Constraint(路径约束)”,此时在视图中移动鼠标,我们可以看见类似橡皮筋的虚线将图标与鼠标光标连接起来,此时软件正在请求要跟随的路径即样条曲线,在视图当中,我们单击水管中心的样条曲线Line01。选择“Speed By Icon01”的辅助对象,然后在“Motion(运动)”命令面板上,在Path Opations(路径参数)”卷展栏上,勾选Follow项,然后在Axis(轴)选项上,勾选z轴。<BR><BR>图1-10<BR>  11、在“Particle View(粒子视图)”当中,单击“Speed By Icon01”操作符,然后在其右侧的参数命令面板上的“Icon Animation(图标动画)”组中,确保选项为“Event Duration(事件期间)”处于活动状态,这样“Speed By Icon 01”图标就在在动画期间被约束到了“Line01”样条曲线上,并且与样条线垂直,如果此时播放动画,我们会看见粒子明显跟随“Speed By Icon01”辅助对象运动,如图1-11所示。<BR><BR>图1-11<BR>  12、将粒子转换为箭头。当前在粒子视图当中只包含“Render”和“Display”操作符,但是我们没有指定给粒子形状,因此,粒子在视图当中显示为任意形状,我们可以使用“Display”操作符来更改粒子的显示的方式。我们将通过使用“Shape Instance”和“Display”操作符来使粒子在场景中显示为箭头形状。首先单击“Display”操作符,然后在其右侧的参数命令面板上将“Type(类型)”更改为“Geometry(几何体)”,如图1-12所示。<BR><BR>图1-12<BR>  13、在Particle View(粒子视图)当中,从仓库中将“Shape Instance”操作符拖入“Emitter”事件当中的任意位置,在放置的时候要确保在蓝线出现时才能将其放置,“Shape Instance”操作符允许我们将场景中的网格对象用作粒子,如图1-13所示。<BR><BR>图1-13<BR>  14、在Particle View(粒子视图)当中,单击“Emitter”事件中当中的“Shape Instance”操作符,然后在其右侧的参数命令面板上,单击“Particle Geometry Object(粒子几何体对象)”下的NONE按钮,然后在场景中单击选择箭头对象,此时箭头名称将会出现在按钮上,勾选Scale(缩放)选项,设置其值为100,如图1-14所示。<BR><BR>图1-14<BR>15、调整箭头的对齐。在Particle View(粒子视图)当中,从仓库中拖动“Rotation”操作符到“Emitter”事件的底部,我们通过使用该操作符来指定事件中粒子的方向。首先单击“Rotation”操作符,然后在其右侧的参数命令面板上将“方向矩阵”设置更改为“速度空间跟随”,然后将“X”值设置为 90.0,将Y轴设置为180,这样就强制粒子的方向始终为移动方向。粒子流提供了两种速度空间方法:“速度空间”在每个粒子首次进入事件时设置一次方向,而“速度空间跟随”在粒子穿过场景时持续调整方向。现在播放动画,我们会看见箭头正沿首“Line01”样条线正确移动。如图1-15所示。<BR><BR>图1-15<BR>  16、创建分支路径。粒子流功能的强大还体现在它可以创建由条件控制的分支事件,这里我们将使用“Find Target(目标测试)”来进行此项操作,它是一个条件测试,该条件下软件将会持续的检查每个粒子是否符合我们设定的条件,当测试条件为假时,粒子保留在当前事件中,当测试结果为真时,则粒子移动到指定不同行为的另外一个事件当中。在Particle View(粒子视图)当中,从仓库中拖动“Find Target”测试到“Emitter”事件的底部,如图1-16所示。<BR><BR>图1-16<BR>  17、单击“Find Target”操作符,在其右侧的参数命令面板上,在Find Target卷展栏的下拉列表中选择“No Control(无控制)”,这将禁用测试的大多数参数,在我们创建“Find Target”测试时,它会自动将名称为“Find Target01”的辅助对象添加至场景当中,现在它就是事件当中粒子的目标,软件将会根据每个粒子“Find Target01”的辅助对象的距离对每个粒子进行测试。在“Find Target”测试参数中,将“Test True If Distance To(测试真, 如到以下项的距离)”选项设置为“Target Pivot(目标轴)”,并将“Is Less Than(小于)”值设置为 5.0,如图1-17所示。<BR><BR>图1-17<BR>  18、在Particle View(粒子视图)当中,从仓库中拖动“Speed By Icon”到空白处建立一个新的事件,我们将把它作为“Find Target”测试输出所要连接的事件,首先将此新事件重新命名为 Flowh,然后 将鼠标光标移动至“Find target01”测试左侧的凸起上,当光标变为水平的黑色双向箭头时,单击并拖动光标至“Flow North”测试的左侧并释放按钮,此时我们已经将“ Find Target01”测试操作符上的输出连接器移动到了相反一侧,单击并将测试连接器末端上的蓝色小圆点拖动到“Flow North”事件的输入连接器,如图1-18所示。<BR><BR>图1-18</FONT>
<FONT size=2>19、设置“Flowh”事件。现在我们已经正确设置了“Find Target”测试输出,但是“Flowh”事件还没有正确设置,在该事件当中的唯一操作符是没有设置动画的“Speed By Icon”操作符,我们将沿新的路径对其图标进行动画设置,以使进入此事件的粒子移动至该路径。在“Flowh”事件当中,在“Speed By Icon”操作符右侧的命令参数中,确保““Icon Animation(图标动画)”的“Sync By(同步方式)”设置为“Event Duration(事件期间)”,然后在场景中,选择 Speed By Icon02辅助对象,在Max的菜单栏中单击选择“Animation(动画)”&gt;“Constraints(约束)”&gt;“Path Constraint(路径约束)”,然后在视图当中,我们单击水管上的分支处的另外一条样条曲线Line02。选择“Speed By Icon 02”的辅助对象,然后在“Motion(运动)”命令面板上,在Path Opations(路径参数)”卷展栏上,勾选Follow项,然后在Axis(轴)选项上,勾选z轴。下面我们需要调整一下Speed By Icon 01和Speed By Icon 02辅助对象的动画关键点。在默认的情况下,软件将在动画的第一帧和最后一帧处设置默认关键点。首先在场景中单击选择Speed By Icon 02辅助对象,然后在轨迹栏中,将其最右侧的关键点移至第 100 帧,然后再选择Speed By Icon 01辅助对象,将其右侧的关键点移动至第150帧,如图1-19所示。<BR><BR>图1-19 <BR>  20、在Speed By Icon 02操作符参数当中,启用“Ust Icon Orientation(使用图标方向)”,启用“Steer Towards Traiectory(转向轨迹)”复选框,并将“Distance(距离)”的值设置为 5.0。由于场景在最初设置的方式并不都是坐标的中心点,因此我们创建的“Find Target”图标需要调整一下才能靠近正确位置,将 Find Target01 辅助对象移动到水管中第一个转折处,然后播放动画我们会发现一些箭头已经开始沿着分支向上移动,如图1-20所示。<BR><BR>图1-20 <BR>  21、如果现在播放动画,就会看见某些箭头更改方向并沿第二条路径上移,但是所有的粒子继续指向同一个方向,因为“Flowh”事件没有用于定义方向的“Rotation”操作符,如果要解决此问题,我们需要使用相同参数添加另外的一个“Rotation”操作符,或者复制上一事件当中的第一个操作符,由于本例中所有粒子都应指向其移动的方向,因此,我们只需要将“Emitter”事件中的“Rotation”操作符移动至全局事件即可。将“Rotation”操作符从“Emitter”事件拖至“PF Source01”事件上,确保在看到蓝线而不是红线时放开鼠标,此时观看动画效果,向上移动的箭头现在指向其运动方向了,如图1-21所示。<BR><BR>图1-21<BR>  22、设置水管的另外一条分支路径。在Particle View(粒子视图)当中,从仓库中拖动“Find Target”测试到“Emitter”事件的底部,为了使粒子在水管的第三条路径上正确移动,需要将场景中的“Find Target”图标的轴与样条曲线的路径的起始点相重合,使用工具栏上的对齐工具将Find Targe02辅助对象与Line03的起点对齐,如图1-22所示。<BR><BR>图1-22<BR>23、在Particle View(粒子视图)当中,从仓库中拖动“Speed By Icon”到空白处建立一个新的事件,我们将把它作为“Find Target02”测试输出所要连接的事件,首先将此新事件重新命名为Iconh,然后“ Find target02”测试操作符拖动到“Flow North”事件的输入连接器,如图1-23所示。<BR><BR>图1-23<BR>  24、单击“Find Target02”操作符,在其右侧的参数命令面板上,在Find Target02卷展栏的下拉列表中选择“No Control(无控制)”,在“Find Target”测试参数中,将“Test True If Distance To(测试真, 如到以下项的距离)”选项设置为“Target Pivot(目标轴)”,并将“Is Less Than(小于)”值设置为 10,在“Flowh”事件当中,在“Speed By Icon03”操作符右侧的命令参数中,确保““Icon Animation(图标动画)”的“Sync By(同步方式)”设置为“Event Duration(事件期间)”,然后在场景中,选择 Speed By Icon03辅助对象,在Max的菜单栏中单击选择“Animation(动画)”&gt;“Constraints(约束)”&gt;“Path Constraint(路径约束)”,然后在视图当中,我们单击水管上的分支处的另外一条样条曲线Line03。选择“Speed By Icon 03”的辅助对象,然后在“Motion(运动)”命令面板上,在Path Opations(路径参数)”卷展栏上,勾选Follow项,然后在Axis(轴)选项上,勾选z轴,然后在轨迹栏中,将其最右侧的关键点移至第100 帧,在Speed By Icon 03操作符参数当中,启用“Use Icon Orientation(使用图标方向)”,启用“Steer Towards Traiectory(转向轨迹)”复选框,并将“Distance(距离)”的值设置为 10,如图1-24所示。现在播放动画,就会看见某些箭头更改方向并沿着第三条路径上移。<BR><BR>图1-24<BR>  25、更改箭头在视图中的显示颜色。为了能够更加清晰地观察到管中液体的流动,我们可以根据移动的路径来设置箭头的颜色。这里我们只需要为每个事件中的粒子指定不同的材质即可,在Particle View(粒子视图)当中,将“Material Static”操作符从仓库拖入“Emiter”事件当中,将其放置在测试的上面,如图1-25所示。<BR><BR>图1-25<BR>  26、在Particle View(粒子视图)当中,单击“Material Static”操作符,在其右侧的参数命令面板上单击None按钮打开“材质编辑器”,将材质设置为红色,此时我们观看场景会发现水管中的一部分粒子都呈红色,如图1-26所示。<BR><BR>图1-26 <BR>27、同理,将“Material Static”操作符添加到其它的两个流事件当中,并分别应用黄色和绿色材质,此时视图中水管中箭头的颜色如图1-27所示。<BR><BR>图1-27<BR>  28、播放动画观看,水管中的粒子显示为彩色箭头,沿着不同的样条曲线路径流动,并且根据路径更改颜色,在动画的最后粒子会在路径终点聚集,由于我们要求水在场景中要恒定的流动,所以最好的办法是在粒子到达路径终点消失,所以我们可以通过使用“Speed Test”操作符并将结果传递至“Delete”操作符来实现。在Particle View(粒子视图)当中,从仓库中拖动“Speed Test”操作符到“Emitter”事件的底部,并在其右侧的参数命令面板上将“Test True If Particle Value(测试真值的条件是粒子值)”设置为“Is Less Than Test Value(小于测试值)”,并且将“Test Value(测试值)”更改为 1.0,如图1-28所示。<BR><BR>图1-28<BR>  29、从仓库中将“Delete”操作符拖至显示事件的空白区域,创建一个新事件,并将其关联至“Emit ter”事件中的“Speed Test”的输出,如图1-29所示。<BR><BR>图1-29<BR>  30、在粒子视图中将“Speed Test01”从“Emitter”事件拖至“PF Source01”事件的底部,与该测试相关联的“Delete”操作符将与之一起移动,现在播放动画观看,场景中的每一个粒子在它一到达路径终点时就会消失,如图1-30所示。<BR><BR>图1-30<BR>  31、应用水滴网格模拟水滴效果。单击Create(创建)/Geometry(几何体),在其下拉列表中选择Compound Objects(复合对象),然后单击BlobMesh(水滴网格),并在视图当中单击以创建水滴网格对象,如图1-31所示。<BR><BR>图1-31<BR>32、在场景中选择我们创建的“BlobMesh(水滴网格)”对象,然后单击Modify(修改)钮进入修改命令面板中,单击“Blob Object(水滴对象)”组中的“Add(添加)”按钮,并从列表中选择“PF Source01”,这样就将其作为整体应用至系统。如图1-32所示。<BR><BR>图1-32 <BR>  33、定义包含在滴状网格中的事件。在修改命令面板中,在“Particle Flow Parameters(粒子流参数)”卷展栏上,取消“All Particle Flow Events(所有粒子流事件)”选项,然后单击“Add(添加)”按钮,并从列表中选择“PF Source 01&gt;iconh”事件、“PF Source01&gt; flowh”事件和PF Source01&gt; Emitter事件,单击“确定”,如图1-33所示。此时如果现在滑动时间滑块,将会在水管中看到已经形成了水滴,但是由于粒子数量不够多,所以流体看起来并不像真正的液体。<BR><BR>图1-33<BR>  34、我们也可以通过增加“Viewport(视口) %”设置值有大小来获得更好的水滴效果,打开粒子视图,然后单击“PF Source 01”事件,在其右侧的参数命令面板中,在Emission(发射)选项中,在Quantity Multiplier(数量倍增)项中,将Viewport(视口)设置为100,如图1-34所示。<BR><BR>图1-34<BR>  35、本节小结:本节课我们学习了如何使用粒子系统来模拟水管中流动的水的效果,我们通过使用粒子流系统,通过使用“Speed By Icon”操作符使粒子沿曲线路径运动,然后使用“Find Target”测试使流体转移至水管的不同分支,使用箭头形状的粒子来指示水流的方向,最后通过应用水滴网格复合对象使水流看起来更加逼真形象,好了,PF Source粒子系统全攻略教程到今天为止就告一段落了,粒子流系统是一个功能非常强大的系统,这里我们只是通过几个实例来学习了一些常用的效果的制作方法,希望读者通过学习能够举一反三,设计出更加精美的动画效果。更多的精彩教程请大家继续关注PConline软件资讯的3DS Max栏目。 </FONT>
休克中.............
支持老大的帖子,我正在找粒子的东东呢~我电脑从4号就坏到现在,一上来看到那么好的帖[em02]
:) 还没看完!先顶起来先,楼主辛苦了,让偶们对粒子系统有了个全面的了解!:loveliness:
同上頂起來,LZ辛苦了!
看得都可以休克了.太长其实教学的效果没有达到!还是方法问题.
我尝试着做了2个例子,感触颇多。
PF绝对是一个无所不能的粒子系统,
可是我连它的10%都没掌握。
下一步我会继续关注这方面的教程,
和大家一起来学习PF这神奇的工具。
PF 的 大部分功能普通的粒子也能实现,只是自由度不够高。pf 还是有点让人生畏啊!我有一个例子,花瓣或者树叶飘落到地面,然后静止于地面(现实中的,请考虑花瓣方向问题)。这步实现了的话在来阵风吹走它们(注意要有真实的滚动)或者在水中飘零……我连续试验2天,没有成功
看那位老大学习以后可以解决这个难题……
好教程,多学习学习
真不错
谢谢CARGO了
辛苦了
:loveliness: :hug: