指定给自定义属性

 
 
 

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

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

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

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

  2. 执行下列操作之一:

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

  3. “长名称”(Long name)框中输入属性的名称。
  4. 确保“创建属性: 可设置关键帧”(Make attribute: Keyable)处于启用状态。
  5. 选择下列数据类型之一:
    向量(Vector)

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

    浮点型(Float)

    创建浮点属性。

    整型(Integer)

    创建整型属性。

    布尔(Boolean)

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

    字符串(String)

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

    枚举(Enum)

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

  6. 选择下列属性类型之一:
    标量(Scalar)

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

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

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

  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 + "\n");

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

示例

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

float $randomNumber = rand(1);
sunspotShape.heat = <<$randomNumber,0,0>>;
print(sunspotShape.heat + "\n");

回放动画时,表达式会循环执行 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),才能为该属性输入值。