添加烟雾拖尾

本教程中的添加导弹的烟雾拖尾相对简单,因为它只是利用定义导弹的粒子繁殖粒子。

使用繁殖粒子

相对传统粒子系统而言,粒子流的最大优点之一是繁殖粒子完全独立于父粒子(而不是发射)。由于这个原因,它们可以具有不同的图形,受不同空间扭曲影响,以及使用完全不同的测试操作符。

设置课程:

  • 从上一课继续,或打开 guided_missile_trails_start.max

    注意:如果打开了提供的文件,请按 6 键打开“粒子视图”。

添加“Spawn”测试:

若要利用导弹粒子创建繁殖粒子,首先需要在“Launch Missiles”事件中创建“Spawn”测试。

  1. 将“Spawn”测试从仓库拖动到“Launch Missiles”事件的底部。

    将“Spawn”测试拖动到事件的底部。

  2. 高亮显示事件中的“Spawn 01”测试,并在“繁殖速率和数量”组中选择“按移动距离”。将“步长大小”设置为 3.0 个单位。

    该方法可用于繁殖拖尾类型的效果,因为繁殖新粒子的速率基于远距离移动,而不是每秒生成量。实际上,这使得粒子的繁殖基于速度,因此可避免快速移动的粒子或聚成束的粒子与慢速移动的粒子之间产生间距。

  3. 确保将“子孙数”设置为 1

    这表示每次只繁殖一个粒子。通过增加该值,可成团或成块地繁殖多个粒子。

  4. 在“速度”组中,选择“使用单位”并将值设置为 50

    此操作设置了显式发射恒定速度,它不基于从父粒子继承的速度。这样做的主旨之一是:导弹以恒定速率燃烧,所以烟雾拖尾发射也将是恒定的。当然,可以对其进行调整,设置较小的值会导致繁殖粒子聚集在一起,设置较大的值会推动粒子更加远离源。

  5. 根据事物的本质,添加一些随机性至关重要,因此将“变化 %”设置为 10,将“散度”也设置为 10

    “变化”会将随机性添加至发射速度,“散度”会将随机性添加至方向。

  6. 在“唯一性”组中,将“种子”设置为 9227

    使用“Spawn”测试时要切记的重要一点是,它可以很快地创建许多粒子。在本例中,所有的新粒子都与导弹粒子(即实例几何体)相同。所以,如果现在播放动画,不久以后剧增的大量新几何体会严重影响系统性能。因此,建议继续之前暂时禁用粒子系统。在本课程的后面将简化繁殖粒子的几何体,之后就可在不影响性能的情况下播放动画。

  7. 按分号键 (;) 或单击全局事件 (Guided Missile) 标题栏中的灯泡图标。

    这将切换粒子系统的活动状态。

创建“Force”操作符:

“Spawn”测试输出还没有连接至新事件,因此如上所述,繁殖粒子与导弹粒子完全相同。若要对其进行更改,需要使用新事件。

  1. 将“Force”操作符从仓库拖动至事件显示。

    这将创建包含新的“Force”操作符和新的“Display”操作符的新事件。

  2. 将此新事件重命名为 Missile Smoke Trails

  3. 单击“Missile Smoke Trails”事件中的“Force”操作符以显示其参数。在“力空间扭曲”组中,单击“按列表”,并添加 Drag01Wind01 空间扭曲。

    尽管导弹粒子不受空间扭曲影响,但是烟雾拖尾的运动将受阻力和湍流的影响,而与父粒子无关。

为粒子提供唯一的外观:

下面,需要为粒子提供唯一的外观。

  1. 在“Missile Smoke Trails”事件中,单击“Display”操作符。

  2. 在“Display”卷展栏上,将“类型”更改为“点”。

  3. 将颜色更改为深蓝色(或所需的任何颜色)。

添加“Delete”操作符:

烟雾粒子应该形成拖尾,然后慢慢消失。您将使用“Delete”操作符生成后一个效果。

  1. 将“Delete”操作符添加至“Missile Smoke Trails”事件的底部。在事件中单击它以显示其参数。

  2. 在“Delete 01”卷展栏上的“移除”组中,选择“按粒子年龄”。将“寿命”设置为 120 帧,并将“变化”设置为 8

    这将导致烟雾拖尾持续足够长时间以形成拖尾,但不会永远拖延下去。

  3. 在“唯一性”组中,将“种子”更改为 28692

定义几何体和材质:

完成该效果的最后一系列步骤是为粒子定义几何体和材质。对于烟雾拖尾,使用“Shape Facing”操作符非常有用,该操作符可创建始终朝向摄影机的多边形。然后,使用径向渐变和噪波设置贴图以创建像烟雾的外观。

  1. 若要开始,请将“Shape Facing”操作符添加至“Missile Smoke Trails”事件中“Force”操作符下面。添加后,高亮显示“Shape Facing”操作符。

    该操作符很简单,只带有少数几个参数。

  2. 在“Shape Facing 01”卷展栏上的“注视摄影机/对象”组中,单击标记为“无”的按钮,然后按键盘上的 H 键。从列表中选择 Camera01

    这会使粒子在整个动画过程中朝向 Camera01

  3. 在“大小/宽度”组中,保持默认的“在世界空间中”选择,并将“单位”设置为 5

    世界空间选项可用于指定绝对值。其他选项则不同。“在局部空间中”使用现有比例进行工作。“在屏幕空间中”使用基于屏幕宽度百分比的恒定值,从而使粒子始终保持相同大小,而无论其与摄影机的距离有多大。

  4. 在“唯一性”组中,将“种子”设置为 235

  5. 在“Missile Smoke Trails”事件中,高亮显示“Display 02”操作符。

  6. 在“Display 02”卷展栏上,将“类型”更改为“几何体”。

可是存在一个问题:所有粒子大小都相同。理想情况下,希望粒子大小随时间按比例增加。在粒子流中,您可以对动画参数进行显式控制。可以按绝对时间、事件时间或粒子年龄对粒子设置动画。在本例中,将设置粒子随寿命逐步增大的动画。可以使用带有动画缩放通道的“Scale”操作符实现此操作。

添加“Scale”操作符:

  1. 将“Scale”操作符添加到“Shape Facing”操作符的下面,然后单击它以显示卷展栏。

  2. 在“Scale 01”卷展栏上,将“类型”更改为“相对最初”。

    该操作符可用于对三个轴分别指定不同的缩放值,以便单独对每个轴设置动画来创建非均匀缩放。但在本例中,将对所有三个轴同时设置缩放动画,因此,请确保已启用“限定比例”。

  3. 在“唯一性”组中,将“种子”设置为 16948

    之后,将对“比例因子”设置动画。因为烟雾拖尾粒子寿命大约为 120 帧,所以需要在第 120 帧处设置关键点。

  4. 转至第 120 帧。

对缩放设置动画:

  1. 在第 120 帧处,单击“自动关键点”按钮以启用它。

  2. 在“Scale 01”卷展栏上的“比例因子”组中,将“X %”值更改为 200

    这会在第 0 帧和当前帧处为每个轴通道自动设置一个关键点。

    提示:执行此操作的另一种方法是,右键单击参数字段,并选择“在轨迹视图中显示”。这将打开带有该独立轨迹的曲线编辑器。从中可设置关键点,并对其进行任何所需的操作。

    提示:稍后将探究该技术,现在无需试用它。

  3. 禁用“自动关键点”。

调节缩放参数:

下面,将调整缩放的变化和动画偏移关键点。

  1. 在“Scale 01”卷展栏上的“缩放变化”组中,将“缩放变化”的“X %”值更改为 10

    因为三个“缩放变化”设置的比例都受约束,所以“Y %”和“Z %”也会随之更改。

  2. 在“动画偏移关键点”组中,将“同步方式”设置为“粒子年龄”。

    这很重要,因为它控制着关键帧参数传递到粒子系统的方式。

    注意:如果使用了“绝对时间”,则所有粒子将在第 0 帧处以 100% 大小开始,在第 120 帧处缩放到 200%,而不考虑它们发射的时间。在第 120 帧后发射的粒子始终按 200% 缩放。但在本例中,需要使这些关键点与粒子寿命相关。因此,需要使用设置为“粒子年龄”的“同步方式”,并以 100% 开始缩放,然后在粒子开始消亡之前增加至 200%。

将烟雾拖尾关联到导弹:

因为该事件没有连接到任何其他事件,所以它还不会执行任何操作。您需要将拖尾和导弹连接在一起。

  1. 在事件显示中,从“Spawn 01”测试的输出拖动至“Missile Smoke Trails”事件的输入。

    这会将导弹关联到拖尾,从而使导弹繁殖烟雾拖尾粒子。

  2. 重新启用粒子系统:按分号键 (;) 或单击全局事件 (Guided Missile) 标题栏中的灯泡图标。

    现在,如果在摄影机视口中播放动画,会看到恒定地发射四边形并将其排成一行。

调整关键点插值:

因为用于缩放的关键点线性地进行插值,所以存在一个恒定方式问题。为使外观逼真,缩放动画应该随缩放的增加而减速。

执行此操作的简单方法是在曲线编辑器中使用关键点信息对话框。如果将关键点插值设置为快速,软件会创建在接近第 120 帧时逐渐停止的曲线。

  1. 在“粒子视图”中,右键单击“Scale 01”卷展栏上的“比例因子”的“X %”参数字段,然后选择“在轨迹视图中显示”。

    将出现曲线编辑器,并显示缩放轨迹的曲线。

    提示:如有必要,请使用“最大化显示值”查看曲线。

  2. 单击第 120 帧处的关键点,然后右键单击以显示关键点信息对话框。

  3. 将“输入”插值更改为快速。

  4. 使用“输入”和“输出”插值之间的右指箭头将快速插值复制到“输出”值。

  5. 单击“输出”框右侧的右指箭头,以将快速插值复制到关键点 1 的“输入”值。单击“输入”框左侧的左指箭头,以将快速插值复制到关键点 1 的“输出”值。

  6. 对“Y 比例因子”轨迹和“Z 比例因子”轨迹重复该过程。

  7. 关闭轨迹视图。

应用材质:

创建导弹粒子时,因为使用了实例几何体,所以它们继承了几何体的贴图和材质。这与烟雾拖尾粒子的情况不同。您必须为该事件指定材质操作符。有三种选择:静态、动态和频率。因为要对材质设置动画,所以需要使用动态。

  1. 将“Material Dynamic”操作符添加至“Missile Smoke Trails”事件中的“Scale”操作符下面。

  2. 在“Material Dynamic 01”卷展栏上,确认已启用“指定材质”,然后单击标记为“无”的按钮。

  3. 在“材质/贴图浏览器”中,将“浏览自”更改为“材质编辑器”。

    现在可以看到“材质编辑器”中的所有材质。

  4. 选择 smoke 材质,并单击“确定”。

  5. 确保已启用“指定材质 ID”。

    使用动态而非静态的主要原因是,要随粒子年龄设置材质动画。材质本身不会被设置动画,但是其使用“粒子年龄”贴图作为不透明度的遮罩。当在“Material Dynamic”操作符中使用时,它会在整个粒子寿命中应用该贴图,以创建从白到黑(不透明到透明)的渐变。

保存工作:

  • 将工作另存为 myguided_missile_trails.max

现在,如果通过移动时间滑块播放动画,则在导弹飞向目标时,导弹将在其后拖出粒子。

但是,还存在一个问题:导弹刚好穿过茶壶。

若要在导弹到达目标时激活新事件,需要将“Find Target”操作符的输出关联到某事物。该事物可以是任何对象,甚至可以是与“Script”操作符(用于打开灯光或在每次碰撞后增加茶壶比例)一样不明显的对象。在下一课中,将添加创建粒子爆炸的另一个繁殖事件。

下一节

创建碰撞时产生爆炸