可以将自定义属性添加到“粒子形状”(particle shape)节点中并通过表达式控制其值。        

要添加自定义属性,请执行以下操作:        

  1. 选择对象的“粒子形状”(particle shape)节点,而非其“变换”(transform)节点。              

    使用“Hypergraph”“大纲视图”(Outliner)选择形状节点。              


  2. 执行下列操作之一:

    • 选择修改 > 添加属性(Modify > Add Attribute)。                  

    • “属性编辑器”(Attribute Editor)“添加动态属性”(Add Dynamic Attributes)区域中,单击“常规”(General)按钮。                  

    此时将显示“添加属性”(Add Attribute)窗口:              


  3. “长名称”(Long name)框中输入属性的名称。

  4. 确保“创建属性: 可设定关键帧”(Make attribute: Keyable)处于启用状态。

  5. 选择下列数据类型之一:

    向量(Vector)

    创建由三个浮点值组成的向量属性。

    浮点型(Float)

    创建浮点属性。

    整型(Integer)

    创建整型属性。

    布尔(Boolean)

    创建由开/关切换组成的属性。

    字符串(String)

    创建接受字母数字条目作为数据输入的字符串属性。

    枚举(Enum)

    创建接受从枚举属性下拉列表中所做的选择的属性。


  6. 选择下列属性类型之一:

    标量(Scalar)

    创建每对象属性,可将其设定为单值,应用于该对象中的每个粒子。向量标量被视为包含三个数字的单值。

    每粒子(数组) (Per particle (array))

    创建每粒子属性。对于每个粒子,可以将该类型属性设定为不同的值。


  • 如果选择“标量”(Scalar),可以为“浮点型”(Float)“整型”(Integer)属性指定“最小值”(Minimum)“最大值”(Maximum)“默认”(Default)值的值。              

    “最小值”(Minimum)“最大值”(Maximum)用于设定可以在“属性编辑器”(Attribute Editor)“通道盒”(Channel Box)中为属性输入的最小值和最大值。“默认值”用于设定为属性显示的默认值。由于要使用表达式控制属性的值,因此可能要跳过为这些选项输入值这一步骤。                

    表达式不受“最小值”(Minimum)“最大值”(Maximum)的值限制。只要是在表达式中指定的值,属性都会接收。表达式可以读取属性的“默认”(Default)值”的值或在“属性编辑器”(Attribute Editor)“通道盒”(Channel Box)中为其指定的任何其他值。              

    如果选择“标量”(Scalar),将无法通过启用“添加初始状态属性”(Add Initial State Attribute)创建对应的初始状态属性。                


  •  如果选择“每粒子(数组)”(Per particle (array)),还可以通过启用“添加初始状态属性”(Add Initial State Attribute)来创建对应的初始状态属性。有关详细信息,请参见了解初始状态属性。              

    不能为“数组”(Array)属性设置“最小值”(Minimum)“最大值”(Maximum)“默认”(Default)值。              

  1. 如果要添加更多属性,请单击“添加”(Add)。单击“确定”(OK)添加属性并关闭“添加属性”(Add Attribute)窗口。                

    此时,新的属性将显示在“属性编辑器”(Attribute Editor)“附加属性”(Extra Attributes)区域下。尽管在“属性编辑器”(Attribute Editor)中属性名称始终以首字母大写形式拼写,但必须使用“表达式编辑器”(Expression Editor)中显示的精确拼写(无论小写或大写)。              

为自定义属性指定值        

  1. 可以使用为静态或动态属性指定值的相同方法为自定义属性指定值。


示例

假设已创建名为 sunspot 的 10 粒子对象,并将名为 glow 的浮点标量(每对象)属性添加到该对象的“粒子形状”(particle shape)节点中。在创建表达式中为 glow 属性指定一个值,如下所示:

sunspotShape.glow = 11.5; print (sunspotShape.glow + " ");

回放动画时,sunspotShape 的 glow 属性会接收到值 11.5。输出语句会在“脚本编辑器”(Script Editor)中显示该值。由于表达式会为对象中的每个粒子各执行一次,因此该值将显示 10 次。


示例

假设将名为 heat 的向量数组(每粒子)属性添加到 10 粒子 sunspot 形状节点中。可以为每个粒子指定不同的值,如以下创建表达式所示:

float $randomNumber = rand(1);

sunspotShape.heat = <<$randomNumber,0,0>>;

print(sunspotShape.heat + " ");

回放动画时,表达式会循环执行 10 次(为每个粒子各执行一次)。

第一条语句将 $randomNumber 变量设定为介于 0 到 1 之间的随机数值。下一条语句为单粒子的 heat 属性指定向量。每次执行语句时,指定给 heat 的向量的左侧分量都是不同的随机数值。中间和右侧分量始终为 0。

一个粒子的值可能为 <<0.57, 0, 0>>、<<0.32, 0, 0>>、<<0.98, 0, 0>> 等。

输出语句会在“脚本编辑器”(Script Editor)中显示这些值。


注意                  

如果为对象添加了自定义向量属性,则 Maya 会在“属性编辑器”(Attribute Editor)中显示该属性,但无法在其中输入该属性的值。必须在表达式中或使用“属性编辑器”(Attribute Editor)提供的“组件编辑器”(Component Editor),才能为该属性输入值。                  

,