nParticle 实例化器属性

实例化器节点(Instancer Nodes)

选择哪个实例化器用于实例化的对象。仅在属性编辑器中可用。

允许所有数据类型(Allow All Data Types)

启用时,会扩展可以选择作为下列页面中的选项输入的属性列表。展开的列表包含与选项具有不同数据类型的属性。

如果输入属性的数据类型不同于接收选项,Maya 会将该数据类型转换为接收选项的数据类型。(有关数据类型的详细信息,请参见“表达式”。)例如,如果选择一个整数属性作为向量数组选项的输入,Maya 会在每个数组元素的三个向量分量的每一个中使用整数值。

在禁用“允许所有数据类型”(Allow All Data Types)时,只会将与接收选项具有相同数据类型的属性作为可能的选项包括在列表中。

要实例化的粒子对象(Particle Object To Instance)

要将几何体应用到的粒子对象。该选项仅在“粒子实例化器选项”(Particle Instancer Options)窗口中可用。

常规选项(General Options)

位置(Position)

实例化对象的位置。默认设置为“worldPosition”。Maya 在实例化器节点的局部空间而不是在世界空间中解释选定属性的值。因此,如果移动实例化器节点,也会移动这些实例。

如果您是 API 开发人员,请注意,可以编写 API 以将点数据发送到实例化器。

比例(Scale)

实例化对象的比例。默认设置为“无”(None),使用值 1, 1, 1。

斜切(Shear)

实例化对象的斜切。默认值设置为“无”(None),使用值 0, 0, 0。

可见性(Visibility)

设置是打开还是关闭每个实例化对象的显示。默认设置为“无”(None),会打开所有粒子的实例的显示。

ObjectIndex

如果将“实例化器”(Instancer)“循环”(Cycle)选项设置为“无”(None),则此选项会设置为每个粒子实例化“实例化对象”(Instanced Objects)列表中的哪个对象。如果将“循环”(Cycle)设置为“序列”(Sequence),则将忽略“ObjectIndex”

使用该选项的常用方法有多种。在每种情况下,选择一个自定义属性作为“ObjectIndex”的输入,然后编写表达式来控制该属性。

一种方法是使用创建表达式来将每个粒子的不同值指定给自定义属性。每个值在“实例化对象”(Instanced Objects)列表中选择一个不同的对象。值 0 在列表中选择第一个对象,值 1 选择第二个,值 2 选择第三个,依此类推。

另一种表达式编写方法是从“实例化对象”(Instanced Objects)列表指定特定数字,或使用随机数函数(如 rand())从列表中为每个粒子指定一个不同的随机对象。

您也可以使用创建表达式和运行时表达式通过特殊对象序列(例如,2-4-6-8)来递增自定义属性。

默认设置为“无”(None),会将值设置为 0,即列表中的第一个对象。

旋转选项(Rotation Options)

旋转类型(Rotation Type)

对于实例化对象,可以选择以下三种方法之一来设置其方向:“旋转”(Rotation)“AimDirection”“AimPosition”。虽然通常您会对所有实例化对象选择同一种方法,但可以通过使用每粒子表达式设置“RotationType”属性来为每个对象选择不同的方法。

若要设置“RotationType”属性,请对“旋转”(Rotation)使用值 0,对“AimDirection”使用值 1,或对“AimPosition”使用值 2。

如果不提供数字,Maya 会使用“旋转”(Rotation)“AimDirection”“AimPosition”选项中选定了属性输入的那一个。例如,如果为“AimPosition”选择属性输入,Maya 会使用“AimPosition”作为默认值。

如果为“旋转”类型中的两个或三个选择属性输入,Maya 会使用该列表中的第一个:“旋转”(Rotation)“AimDirection”“AimPosition”。例如,如果选择“目标位置”(Aim Position)“目标方向”(Aim Direction)的输入,Maya 会使用“目标方向”(Aim Direction)。如果选择“旋转”(Rotation)“目标位置”(Aim Position)“目标方向”(Aim Direction)的输入,Maya 会使用“旋转”(Rotation)

如果未选择“旋转”(Rotation)“目标位置”(Aim Position)“目标方向”(Aim Direction)的任何属性输入,Maya 会使用“旋转”。

旋转(Rotation)

设置实例化对象相对于其初始方向的方向。

对于 nParticle,可以通过选择“rotationPP”作为“旋转”(Rotation)选项来基于每粒子旋转实例化几何体。“rotationPP”属性是在启用“计算旋转”(Compute Rotation)属性时在 nParticleShape 节点上创建的。

有关基于每粒子旋转实例化几何体的详细信息,请参见旋转实例化几何体

目标方向(Aim Direction)

通过指定每个实例化对象点沿其相对于其局部原点的原始位置的方向来设置实例化对象的方向。默认设置为“无”(None),使用值 1, 0, 0。请参见 RotationType。

请注意,可以通过选择速度来使对象点朝向粒子移动的方向。有关详细信息,请参见对准实例化几何体

目标位置(Aim Position)

通过指定每个实例化对象点相对于其局部原点的原始位置的位置来设置实例化对象的方向。默认设置为“无”(None),使用值 0, 0, 0。有关重要详细信息,请参见 RotationType。

目标轴(Aim Axis)

指定直接指向“目标方向”(Aim Direction)“目标位置”(Aim Position)的对象轴。

“目标轴”(Aim Axis)是向量属性,仅适用于“目标方向”(Aim Direction)“目标位置”(Aim Position)旋转类型。默认设置为“无”(None),使用值 1, 0, 0。

目标上方向轴(Aim Up Axis)

指定相对于“目标轴”(Aim Axis)“目标方向”(Aim Direction)“目标位置”(Aim Position)指向方式指向上方(尽可能向上)的对象轴。

在此上下文中,“上方向”是世界上方向轴点的方向(请参见“目标世界上方向”(Aim World Up))。“目标上方向轴”(Aim Up Axis)是向量属性,仅适用于“目标方向”(Aim Direction)“目标位置”(Aim Position)旋转类型。默认设置为“无”(None),使用值 0, 1, 0。

例如,假设“目标位置”(Aim Position)设置为工作区的原点,世界空间 Y 轴(0,1,0)是“目标世界上方向”(Aim World Up)值。实例化对象的 X 轴 (1, 0, 0) 是“目标轴”(Aim Axis)值,该对象的 Y 轴(0,1,0)是“目标上方向轴”(Aim Up Axis)值。当实例化对象在工作区中从左到右移动时,该对象具有以下方向:

无论该对象在工作区中移动到哪里,该对象的 X 轴都直接指向原点。该对象在必要时绕其 X 轴滚转,以使其 Y 轴目标尽可能向上。上方向由“目标世界上方向”(Aim World Up)设置,在此情况下设置为世界的 Y 轴。

AimWorldUp

在世界坐标系中设置指示由“目标上方向轴”(Aim Up Axis)所用的向上方向的轴。“目标世界上方向”(Aim World Up)是向量属性,仅适用于“目标方向”(Aim Direction)“目标位置”(Aim Position)旋转类型。默认设置为“无”(None),使用值 0, 1, 0。此属性不会受到“世界坐标系”(World Coordinate System)“上方向轴”(Up Axis)设置的影响,此设置位于“窗口 > 设置/首选项 > 首选项”(Windows > Settings/Preferences > Preferences)窗口中的“设置”(Settings)部分。

循环选项(Cycle Options)

循环开始对象(Cycle Start Object)

如果将实例化器的“循环”(Cycle)选项设置为“序列”(Sequence),则“循环开始对象”(Cycle Start Object)“实例化对象”(Instanced Objects)列表指定循环的起始对象。例如,假设该列表包含四个对象。如果为每个粒子将提供“循环开始对象”(Cycle Start Object)的输入的属性设置为 3,则每个粒子会反复在 3-0-1-2 对象间循环。默认值为 0。

年龄(Age)

如果将实例化器的“循环”(Cycle)选项设置为“序列”(Sequence),则年龄将使用“实例化器”(Instancer)“循环步长”(Cycle Step)设置来设置 Maya 从一个对象切换到另一个对象的频率。

例如,可以创建一个名为 myAge 的属性,选择它作为“年龄”(Age)选项的输入,然后编写运行时表达式来控制 myAge,如下所示:

if (particleId == 0)

myAge = age;

if (particleId == 1)

myAge = age * 2;

if (particleId == 2)

myAge = age * 4;

这会使 particleId 为 1 的粒子循环这些对象两次,循环速度与 particleId 为 0 一样快。particleId 为 2 的粒子循环四次,循环速度与 particleId 为 0 一样快。

默认值是粒子年龄属性设置。