“材质动态”操作符用于为粒子提供在事件期间可以变化的材质 ID。它还允许您根据材质 ID 为每个粒子指定不同的材质。当与动画纹理一起使用时,此操作符允许您根据每个粒子的总年龄或它在当前事件中存在的时间为其指定其他帧或贴图。在此上下文中,动画纹理的一个示例是将多帧位图(例如 AVI 文件)用作漫反射“位图”贴图的材质。动画纹理的其他示例是使用“粒子年龄”贴图或“粒子运动模糊”贴图的若干材质。或者,可以使用复合材质(例如多维/子对象)的不同子材质。
注: 使用“对象运动模糊”时,如果某事件包含“材质动态”操作符,该操作符将材质用于“粒子年龄”、“粒子运动模糊”或“位图”贴图,则此事件不应同时包含“删除”操作符、繁殖测试或碰撞繁殖测试。同样,此事件还不应包含关联至另一事件的所有测试。唯一例外是“年龄测试”操作符在设置为不带任何变化的“绝对时间”时,即所有粒子同时离开此事件。这只适用于使用“对象运动模糊”的情况,对“图像运动模糊”没有限制。
过程
示例:根据年龄将动画帧指定给粒子:
- 准备一个文件用作动画位图。它可以是多帧格式(如 AVI),或者是指向一系列静态图像的图像文件列表(IFL 文件)。如果是后者,可以使用包含预定义 Alpha 通道的图像格式(例如 Targa),有选择性地指定粒子不透明度。
- 打开
“材质编辑器”,然后指定“位图”贴图作为“漫反射”贴图。
- 使用“选择位图图像文件”对话框,将步骤 1 中准备的文件指定为位图。首次指定“位图”贴图时,该对话框将自动出现;或者,单击贴图的“位图参数”卷展栏上的“位图”按钮。
- 在贴图的“时间”卷展栏上,启用“将帧与粒子年龄同步”。
- 如果想要在“贴图”卷展栏上使用图像背景或 Alpha 通道定义透明度,请将此贴图复制到“不透明度”示例窗,然后设置相应的参数。
- 在材质级别,启用
(在视口中显示明暗处理的贴图)。
- 将摄影机添加到场景中,并根据需要对其进行设置。激活“透视”视口,并按 C 键将视口设置为显示摄影机视图。
- 创建默认的“粒子流”系统。
- 打开“粒子视图”。
- 使用“图形朝向”操作符替换“图形”操作符。
使用此操作符查看动画更加容易。
- 单击“图形朝向”操作符,再在其卷展栏中单击“注视摄影机/对象”按钮,然后选择摄影机。
- 在“大小/宽度”组中,将“在世界空间中”
“单位”增加到大约 15。
- 将“材质动态”操作符添加到“事件 01”中,然后为其指定此步骤开始的材质。
- 启用“在视口中显示”。
- 在“动画纹理”组中,确保已选定“与粒子 ID 相同”,然后启用“重置粒子年龄”。
对于动画纹理,始终选择“与粒子 ID 相同”,并在使用复合材质时,选择“子材质对位”选项之一。
启用“重置粒子年龄”会导致“粒子流”在粒子进入事件时,将粒子年龄设置为 0。在此示例中,粒子在事件中出生,因此从技术上讲,不必启用“重置粒子年龄”。不过,确保动画始终从第一帧开始播放是一种很好的习惯。
播放动画。
在视口中,位图动画在粒子移动的同时进行,但是无论年龄如何,所有粒子都显示相同帧。这是与视口交互性的限制相关的反常行为。但是,粒子会正常渲染。
渲染动画。
每个粒子出生时,它都从第一帧开始显示动画。在每一帧,每个粒子的年龄都会增加的,然后它从应用的贴图显示下一帧。
示例:使用“粒子年龄”贴图:
“粒子年龄”贴图可在粒子的整个寿命中,将最多三种不同的颜色或贴图应用于粒子,随粒子年龄增加逐步从一个颜色或贴图更改为下一个颜色或贴图。例如,从火中飞出的火花就可应用此效果:起初,它们是黄色;然后随着冷却变为红色;最后变为灰色的灰烬。为了使“粒子年龄”了解粒子在其寿命中的进程,必须为粒子提供有限的年龄。可以使用“删除”操作符实现此操作。
- 启动或重置 3ds Max,然后添加“粒子流”系统。
- 打开“粒子视图”和
“材质编辑器”。将它们并排放置。
- 在“粒子视图”中,将“材质动态”操作符和“删除”操作符添加到“事件 01”中。
为了使“粒子年龄”工作,“删除”操作符必须与“材质动态”操作符位于同一事件中。或者,将“删除”操作符添加到全局事件,以使其影响每个事件。
- 单击“删除”操作符,然后在“参数”面板中选择“按粒子年龄”,并将“寿命”设置为 100,将“变化”设置为 0。
这样将为每个粒子提供 3 1/3 秒的寿命。
- 单击“材质动态”操作符。
- 在“材质编辑器”中,指定“粒子年龄”贴图作为“漫反射”贴图。在“粒子年龄参数”卷展栏上,设置三个不同的颜色,例如红色、绿色和蓝色。并且,根据需要更改“年龄”百分比值。例如,如果希望每个粒子在其寿命的三分之一处(而非中间)显示第二种颜色,可将“年龄 #2”更改为 33。
- 将活动材质从其示例窗中拖动到“粒子视图”中“材质动态参数”卷展栏上的材质按钮上。出现“实例(副本)”对话框时,单击“确定”接受默认选项:示例。
- 确保已启用“材质动态”参数中的“指定材质 ID”。
如果没有,所有粒子将同时更改颜色。
不必启用“在视口中显示”;“粒子年龄”贴图不会出现在视口中。
渲染动画或一些有代表性的帧。
随着每个粒子的衰减,粒子颜色将逐渐更改,最老的粒子先更改。
提示: 不需要实际删除粒子以使用此方法。有几种方法可以避免此操作。可以将“寿命”值设置为大于动画的长度,然后在“粒子年龄”贴图参数中,降低“年龄 #2”和“年龄 #3”设置。或者,如果使用的是局部“删除”操作符,可以在计划删除粒子之前使用
“年龄”测试将粒子移动到另一事件中。在那种情况下,要避免突然的颜色更改,可能需要将使用相同的最终颜色或贴图作为“粒子年龄”贴图的材质,与
“材质静态”操作符一起添加到后续事件中。
界面
该用户界面出现在“粒子视图”对话框右侧的“参数”面板中。
注: “材质动态”卷展栏上的单选按钮允许根据是否使用动画纹理或复合材质,以几种不同方式将材质 ID 指定给粒子。默认设置为“与粒子 ID 相同”。
- 指定材质
- 启用时,该操作符将指定的材质(请参见下一参数)指定给粒子。默认设置为启用。
- [按钮]
- 使用此按钮可将材质指定给操作符。单击此按钮,然后使用“材质/贴图浏览器”选择材质。或者,将材质从“材质编辑器”示例窗拖至此按钮。
将材质指定给操作符后,其名称将出现在此按钮上。
- 指定材质 ID
- 启用时,该操作符会为每个粒子定义一个材质 ID 数目。默认设置为启用。
通常,此选项应保持启用状态。粒子流将材质 ID 用于“粒子年龄”贴图,以找到粒子的其他属性,包括其寿命和当前年龄。它将材质 ID 用于复合材质,以了解将那个子材质指定给粒子。
- 在视口中显示
- 启用时,如果粒子显示为几何体,在视口中材质会显示为应用于粒子上。
- 子材质 ID 偏移
- 将材质继承与多维/子对象材质一起使用时,“材质动态”操作符会将此值添加到“材质 ID”值以创建子材质 ID。粒子流将使用此 ID 根据材质中的子材质 ID 确定继承材质中的哪些子材质,然后将这些子材质应用于其事件中的粒子。
“动画纹理”组
- 与粒子 ID 相同
- 将同一材质 ID 指定给某个粒子作为其粒子 ID。当使用的材质包含动画纹理(如“位图”、“粒子年龄”或“粒子运动模糊”贴图)时选择此设置。
注: “粒子流”将“粒子 ID”从 0 开始连续指定给出生的粒子。虽然最高的粒子 ID 可超过 2,000,000,000,但最高的
材质 ID
可为 65535。此后的编号顺序将再次从 0 开始。因此,在指定给“材质动态”操作符的材质中使用“粒子年龄”贴图时,要获得最佳效果,请使用 65,536 或更少的总粒子数。
- 重置粒子年龄
- 启用时,当粒子进入事件时,将每个粒子的年龄设置为 0。
将动画材质用于“位图”贴图时,启用此选项可确保动画总是从第一帧开始播放。
- 随机化年龄偏移
- 启用时,“粒子流”将随机改变粒子年龄与开始的材质 ID 之间的差异。最大差异由“最大偏移”参数确定。
- 最大偏移
- “粒子流”可以随机改变粒子年龄的最大帧数。
“子材质对位”组
使用复合材质(如“多维/子对象”)时,这些设置允许选择该操作符更改材质 ID 指定的依据,并指定更改的速率。
- 材质 ID
- 为所有粒子指定相同的材质 ID。使用此数值字段可以设置 ID 值。
- 循环
- 按递增序列顺序为每个粒子指定一个范围从 1 到 N 的材质 ID,其中 N 为子材质数目。指定的第一个 ID 是 1,然后是 2,继续每个粒子增加 1,直到 N 为止;然后再次从 1 开始,不断循环。
- 随机
- 为每个粒子指定一个范围从 1 到 N 的随机材质 ID,其中 N 为子材质数目。
- 子材质数目
- 使用“循环”或“随机”选项为粒子指定的最大 ID 数目。
通常,将此值设置为与“多维/子对象”材质中的子材质数目相同。如果将其设置为较小的数值,该操作符将只能使用所设数目的子材质,从第一个子材质开始,依次累加。
注: 3ds Max 会自动将该值设置为材质中子材质的数目,此设置仅进行一次,即第一次将材质应用于该操作符时。材质本身中任何后续更改或将另一材质应用于该操作符,都不会更改或更新此设置。
- 每秒速率
- 设置指定的材质 ID 每秒递增的次数。如果此值与粒子进入事件的速率相同,则为每个粒子指定一个 ID。如果此值小于粒子进入事件的速率,则会为多个粒子提供相同的 ID,或者如果此值大于粒子进入事件的速率,则“粒子流”为每个粒子指定 ID 时每次增加的值大于 1。
例如,如果粒子进入事件的间隔为 1/60 秒,且“每秒”设为 30,则每对粒子将分配一个相同的 ID。或者,如果粒子进入事件的间隔为 1/15 秒,且“每秒”设为 30,那么每个粒子的 ID 将增量(或随机变化)两次。
- 循环
-
启用时,如果已指定了最后一个 ID,“粒子流”将循环回第一个 ID 并继续循环。禁用此选项时,“粒子流”为所有后续粒子指定最后一个循环 ID。只能和“循环”指定方法一起使用。默认设置为禁用。
例如,假设要使进入事件的前八个粒子使用不同的材质,而所有后续粒子使用第九个材质。为此,应该创建一个具有九个子材质的“多维/子对象”材质,然后将其指定给“材质动态”操作符。选择“循环”指定方法,然后将“子材质数目”设置为 9。将“每秒速率”值设置为粒子进入事件的速率。最后,禁用“循环”。
- 同步方式
-
为应用动画参数选择时间帧。仅与“材质 ID”和“循环”选项一起使用。
- 绝对时间为参数设置的任意关键点在设置关键点的实际帧应用。
- 粒子年龄为参数设置的任意关键点在每个粒子存在的相应帧处应用。
- 事件持续时间参数设置的任意关键点在每个粒子第一次进入事件时开始应用于粒子。
- 随机偏移
-
启用时,“粒子流”将随机改变粒子年龄与已指定的材质 ID 之间的差异。最大差异由数值参数确定。仅与“材质 ID”和“循环”选项一起使用。
“唯一性”组
“唯一性”设置可以使用“随机”选项改变指定 ID 的序列,并使用“随机化年龄偏移”选项改变偏移。
- 种子
- 指定随机化值。
- 新增特性
- 使用随机化公式计算新种子。