返回首页 >> Maya文档 >> maya_particleShape 节点

particleShape 节点


下列所有选项(除一个选项之外)都显示一个菜单,通过该菜单可以选择自定义或静态属性作为输入。使用表达式设置要用作选项输入的自定义属性的值,这是最常见的情况。选项本身不是属性。

并非菜单中的所有静态属性都有适用的应用。例如,使用 worldVelocity 作为对象的“旋转”(Rotation)的输入可能没有有用的效果。每个输入属性的有效性取决于上下文。

除了下列选项中的前三个外,可以使用每粒子属性值设置这些输入属性。因此,可以为每个粒子设置不同的值。

常规控制属性(General Control Attributes)

为动力学(Is Dynamic)
值为 true 会为对象打开动力学功能。值为 False 会为对象关闭动力学功能。

动力学权重(Dynamics Weight)
值为 0 会使与粒子对象连接的场、碰撞、弹力线和目标没有任何效果。值为 1 将提供完整效果。小于 1 的值可设置成比例的效果。例如,值为 0.6 会将效果缩小到完整强度的 60%。

表达式不受“动力学权重”(Dynamics Weight)的影响。

保持(Conserve)
“保持”值控制在不同帧之间保留粒子对象的速度的程度。具体而言,“保持”(Conserve)可在开始执行每个帧时缩放粒子的速度属性。缩放速度后,Maya 将任何适用的动力学应用到粒子以在帧的末尾创建最终位置。

“保持”(Conserve)不影响关键帧创建的运动。关键帧只影响粒子对象的 worldVelocity 属性,而不影响其本地速度属性。

如果将“保持”(Conserve)设置为 0,则不保留速度属性值的任何内容。速度在每个帧之前重置为 0。在每一帧的末尾,速度完全是在该帧中应用的动力学的结果。

如果将“保持”(Conserve)设置为 1,则将保留整个速度属性值。这是真实的物理响应。

如果将“保持”(Conserve)设置为介于 0 和 1 之间的值,则将保留速度属性值的百分比。例如,如果将“保持”(Conserve)设置为 0.75,对于每一帧,Maya 首先会先将速度属性减小 25%,然后计算对象上的任何动力学或表达式效果。

例如,假定您创建一个以每秒 9.8 单位的重力加速度下落的粒子。下表比较了在执行几个帧后,“保持”(Conserve)值 1(默认值)、0.5 和 0 对速度属性的影响情况。

帧 保持 = 1 的速度 保持 = 0.5 的速度 保持 = 0 的速度
2
<<0,0,0>>
<<0,0,0>>
<<0,0,0>>

3
<<0,-0.41,0>>
<<0,-0.41,0>>
<<0,-0.41,0>>

4
<<0,-0.82,0>>
<<0,-0.61,0>>
<<0,-0.41,0>>

5
<<0,-1.23,0>>
<<0,-0.71,0>>
<<0,-0.41,0>>

6
<<0,-1.63,0>>
<<0,-0.77,0>>
<<0,-0.41,0>>

“保持”(Conserve)设置为 1 时,速度会以精确的重力加速度增加每一帧。

“保持”(Conserve)设置为 0 时,速度会保持恒定值 - 粒子不会加速。在每一帧的开头,速度重置为 0。随后会将重力场的加速度添加到速度 0,从而导致在每一帧的末尾使用同一数字 <<0,-0.41,0>>。

“保持”(Conserve)设置为 0.5 时,对于每一帧,速度会以比重力更慢的速率增加。在每一帧的开头,速度会缩小至其在前一帧末尾的值的 50%。随后会将重力加速度与该缩小后的值相加,以创建用在帧末尾的缓慢增加的速度。

世界中的力(Forces In World)
如果希望场影响其局部空间中的粒子对象,请选择粒子,显示“属性编辑器”(Attribute Editor),并禁用“世界中的力”(Forces In World)。

请注意,除非旋转粒子对象,否则该对象的局部轴方向与世界空间轴的方向匹配。

提示
如果尚未对粒子对象的变换属性设置关键帧、设置父关系或以其他方式进行控制,可以禁用“世界中的力”(Forces In World)以加快对象的动力学计算速度。启用“世界中的力”(Forces In World)时,Maya 会进行额外计算以将世界空间转换为局部空间坐标。

请参见在对象的局部空间应用力。

缓存数据(Cache Data)
或者,可以通过关闭“缓存数据”(Cache Data)属性来在“属性编辑器”(Attribute Editor)中打开或关闭内存缓存。该属性在“属性编辑器”(Attribute Editor)中的位置取决于对象的类型。如果为刚体打开缓存,Maya 也会为该刚体的解算器中的所有刚体打开缓存。

如果在内存中为发射粒子缓存数据,并稍后更改发射器或发射粒子的速率或其他属性,必须禁用缓存才能看到属性更改的效果。

计数(Count)
包含对象中的总粒子数。这是一个只读属性。

事件总数(Total Event Count)
包含该对象已发生的总碰撞数。将对所有碰撞进行计数,而不管是否实际执行了任何碰撞事件。换句话说,totalEventCount 是每粒子“事件”属性的总和。

发射属性(Emission Attributes)

最大计数(Max Count)
包含该形状将允许的最大粒子数。如果某些粒子消亡,将重新接受新粒子,直到最大计数,如此反复不断。

细节级别(Level Of Detail)
该属性当前仅用于缩放要用于快速运动测试的发射量,而无需更改发射器的值。该属性仅影响发射粒子。

继承因子(Inherit Factor)
包含发射到该对象中的粒子继承的发射器速度分数。

世界中的发射(Emission In World)
该布尔属性告知粒子对象假定从发射创建的粒子处于世界空间中,并将它们转换到对象空间,然后将其添加到粒子数组。这会使粒子进行响应,就像它们处于某个非身份层次中时与发射器处于同一空间中。

离开发射体积时消亡(Die on Emission Volume Exit)
当该布尔属性设置为 true 时,如果粒子是从体积发射的,它们会在离开该体积时消亡。默认情况下,该属性设置为 false。

寿命属性(Lifespan Attributes)

寿命属性提供了多种方法来指定如何确定粒子寿命。

寿命模式(Lifespan Mode)

从以下选项中选择:

永生(Live forever)
所有粒子都是永生的,除非由于碰撞事件或离开发射体积而消亡。

恒定(Constant)
通过该设置可以为粒子输入恒定寿命。粒子将在指定的时间消亡。

随机范围(Random range)
该属性必须设置为启用“寿命随机”(Lifespan Random)(请参见下文)。

仅寿命 PP(lifespanPP only)
只要选择“仅寿命 PP”(lifespanPP only)作为寿命模式,引用寿命 PP 的 Maya 3 之前的表达式就可正常工作。

寿命(Lifespan)
在“寿命模式”(Lifespan Mode)设置为“恒定”(Constant)或“随机范围”(Random Range)时指定粒子的寿命值。

寿命随机(Lifespan Random)
仅当“寿命模式”(lifespanMode)设置为“随机范围”(Random Range)时才使用该属性。

该属性标识每个粒子的寿命的随机变化范围。如果设置为非零值,则每个粒子的寿命会随机设置为加上或减去 lifespanRandom/2,并将“寿命”属性作为平均值(平均寿命)。例如,寿命 5 和 lifespanRandom 2 会使寿命在 4 和 6 之间变化。

在“恒定”(Constant)或“随机范围模式”(Random Range Mode)中,“finalLifespanPP”属性存储从“寿命”(lifespan)和“lifespanRandom”生成的值。

注意
“寿命”(lifespan)和 “lifespanRandom” 的值发生的更改只会影响新粒子,而不会影响已存在的粒子。例如,如果为第 50 帧之前的帧将寿命值的关键帧设置为 2,为第 50 帧之后的帧将寿命值的关键帧设置 5,则从第 1 到 50 帧生成的粒子的“finalLifespanPP”将为 2,在第 50 帧之后生成的粒子的“finalLifespanPP”将为 5。在第 50 帧之前诞生的粒子的“finalLifespanPP”值将不会更改。

常规种子(General Seed)
该属性表示随机数生成的种子。它独立于所有其他随机数流。

时间属性(Time Attributes)

开始帧(Start Frame)
该属性表示将在其后解析动力学的帧。在 startFrame 之前将不会为该对象播放任何动力学。

当前时间(Current Time)
该属性表示时间轴中的当前时间。

碰撞属性(Collision Attributes)

跟踪深度(Trace Depth)
该属性表示在每个粒子的帧中检测到的连续碰撞最大数。当然,粒子的碰撞次数可能更少。

碰撞对象(Collision Object)
粒子与其发生碰撞的对象,在设置碰撞时确定。

弹性(Resilience)、摩擦力(Friction)
请参见“粒子 > 使碰撞(Particles > Make Collide)”。

偏移(Offset)
用于在当前粒子与在“碰撞对象”(Collision Object)字段中指定的曲面发生碰撞时,使当前粒子的位置发生偏移。“偏移”(Offset)还可以防止当前粒子穿透指定碰撞对象的表面。例如,使用“偏移”(Offset),可以控制在单次 Take 中从粒子碰撞的宏级别快照进入微级别快照时粒子碰撞偏移的大小。默认情况下“偏移”(Offset)为 0.01。请参见“节点”(Node)和“属性参考”(Attributes Reference)中的particle。

该属性仅在当前粒子具有碰撞对象时可用。

UV 集(UV set)
(仅在多个“UV 集”(UV sets)可用时才可用。)

使用该下拉列表可指定哪个“UV 集”(UV set)用于根据粒子的碰撞 U/V 属性值计算目标点位置。默认情况下,使用碰撞对象的当前“UV 集”(UV set)。该设置保持不变。

在锁定将使用的“UV 集”(UV set)时,可以利用明确指定哪个“UV 集”(UV set)用于碰撞 U/V 值这一功能很有用。当纹理美工人员处理某个对象并引入多个“UV 集”(UV set)时,他们将经常在这些集之间来回切换,并将该对象的当前“UV 集”(UV set)属性设置为不同的值。

柔体属性(Soft Body Attributes)

有关详细信息,请参见柔体。

输入地理空间(Input Geo Space)

该属性用于选择 Maya 使用哪个坐标空间来定位输入几何体向粒子形状提供的点数据。原始几何体是将转换为柔体的几何体。输入几何体是指 Maya 中创建原始几何体的节点。NURBS 球体的一个输入几何体示例“生成球体”(Make Sphere)是节点:

几何体局部(Geometry Local)
从输入几何体的局部空间提供点定位数据。不将任何世界空间变换应用到这些位置。

世界(World)
从输入几何体的世界空间提供点定位数据。将世界空间变换应用到这些位置。

粒子局部(Particle Local)
从粒子对象的局部空间提供点定位数据。几何体中的点定位数据按如上所示变换为世界空间位置,然后使用粒子对象的反向世界空间变换,变换为粒子对象的局部空间位置。这会将点置于与粒子对象的位置属性相同的空间中。

目标地理空间(Target Geo Space)

该属性用于选择 Maya 使用哪个坐标空间来定位粒子形状向目标几何体提供的点数据。

几何体局部(Geometry Local)
从粒子对象的位置属性获取位置并将其变换为目标几何体的局部空间位置。它使用粒子对象的世界空间变换和目标几何体的反向世界空间变换,然后将其设置到目标几何体中。无论在场景中的哪个位置变换粒子对象或目标几何体,目标几何体中的点都将与这些粒子具有相同的世界空间位置。

世界(World)
从粒子对象的位置属性获取位置并将其变换为世界空间位置。它使用粒子对象的反向世界空间变换,然后将其设置到目标几何体中。

粒子局部(Particle Local)
直接在目标几何体中设置位置属性值,而不在任何坐标空间中变换它们。

强制历史计数(Enforce Count From History)
如果启用该属性并以改变 CV、顶点或晶格点数的方式更改原始几何体的构建历史,则 Maya 会更新柔体的相应粒子数。

例如,如果将跨度或截面添加到 NURBS 曲面柔体,则 Maya 会将 CV 添加到曲面,并将相应的粒子添加到柔体。更新粒子可确保根据添加或移除的新点正确变形柔体。

在某些情况下,您会不希望进行该更新。例如,如果将某个柔体的粒子添加到发射器,则可以将该柔体发射到视图中。

目标权重和对象(Goal Weights and Objects)

目标平滑度(Goal Smoothness)
该值用于控制权重从 0.0 更改为 1.0 时目标力变化的“平滑度”。这完全是审美效果,没有任何科学基础。数值越大,变化就越平滑。

目标权重
该字段显示对象的名称。使用该字段旁边的滑块可设置对象的目标权重。

如果更改任何每粒子设置,该目标权重将不再适用。

目标活动(Goal Active)
使目标处于活动状态。首先必须创建一个目标对象(粒子 > 目标(Particles > Goal))以查看该属性和其余目标权重属性。

在将粒子系统吸引到目标对象时,将使用有关将每个粒子吸引到的每个目标对象上特定点的数据填充这些属性。您可以在“组件编辑器”(Component Editor)的“粒子”(Particles)选项卡中查看该信息。

对于该区域中的其余属性,请单击“创建”(Create)按钮创建它们。该按钮将变为“删除”(Delete)。然后,单击“删除”(Delete)进行删除。

每粒子目标权重(PPartical Goal Weights)
为第 N 个目标对象提供每粒子目标权重。目标对象根据其在粒子系统的稀疏 goalGeometry 阵列中的索引进行编号。这样可确保在向粒子系统中添加目标对象以及从中移除目标对象时,保留每粒子目标权重。

如果未找到特定目标对象的每粒子目标权重,则会将该对象的标准目标权重值(由粒子“属性编辑器”(Attribute Editor)中该对象名称旁边的滑块指定)应用于所有粒子。动态生成的 goalPP 属性随后充当作用于每个粒子上的所有目标力总和的加权因子。

目标点位置(Goal Point Positions)
将每个粒子吸引到的第 N 个目标对象上点的世界空间坐标。

目标点法线(Goal Point Normals)
将每个粒子吸引到的第 N 个目标对象上点的世界空间法线。

目标点切线 U(Goal Point TangentUs)、目标点切线 V(Goal Point TangentVs)
将每个粒子吸引到的第 N 个目标对象上点的 U 和 V 向切线。切线方向对应于目标点的 U 和 V 纹理坐标的最大增加方向。

实例化器(几何体替换)(Instancer (Geometry Replacement))

实例化器节点(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 节点上创建的。请参见“旋转”。

有关基于每粒子旋转实例化几何体的详细信息,请参见旋转实例化几何体。有关其他旋转类型的详细信息,请参见“RotationType”、“旋转单位”和“旋转顺序”。

目标方向(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)设置的影响,此设置位于“窗口 > 设置/首选项 > 首选项(Window > 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 一样快。

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

发射随机流种子(Emission Random Stream Seeds)

有关使用该选项的详细信息,请参见使用发射随机度。

渲染属性(Render Attributes)

深度排序(Depth Sort)
该布尔属性为进行渲染的粒子打开或关闭深度排序。默认情况下,设置为 False(关闭)。

粒子渲染类型(Particle Render Type)
该属性指定粒子的渲染方法。

使用软件渲染器渲染 使用硬件渲染器渲染 使用 mental ray 渲染器渲染
多点(MultiPoint)


多条纹(MultiStreak)


数值(Numeric)


点(Points)


球体(Spheres)


精灵(Sprites)


条纹(Streak)


滴状曲面(Blobby Surface)


云(Cloud)


管(Tube)

添加属性(Add Attributes For)
单击“当前渲染类型”(Current Render Type)按钮可显示已选择的粒子类型的附加属性。有关详细信息,请参见为“当前渲染类型”按钮添加属性。

渲染统计信息(Render Stats)

可以从任何对象的“属性编辑器”(Attribute Editor)访问“渲染统计信息”(Render Stats)。

渲染统计信息
mental ray

有关详细信息,请参见 mental ray(位于手册的“渲染”部分中)。

每粒子(数组)属性(Per Particle (Array) Attributes)

每粒子和每对象属性
可在手册的 MEL 和表达式部分中找到有关粒子表达式的详细信息。

添加动态属性(Add Dynamic Attribute)

动态属性
可在手册的 MEL 和表达式部分中以及在教程中找到有关粒子表达式的详细信息。

片段效果属性(Clip Effects Attributes)

仅在创建或修改片段效果(如焰火)时,这些属性才存在。

精灵属性(Sprite Attributes)

有关详细信息,请参见“精灵属性”。

附加属性(Extra Attributes)

有关重影属性的信息,请参见手册的“动画”部分中的“为选定对象生成重影”(Ghost Selected)选项窗口区域。

请将您关于此页内容的评论发送给我们