示例:交换机器人的手臂(仅限“高级资源”)

 
 
 

此示例将显示如何使用资源、文件引用、“传递属性值”(Transfer Attribute Values)选项和“发布子锚点”(Publish Child Anchor)选项,交换机器人模型上的不同手臂。

注意

虽然本示例着重于如何使用“高级资源”完成此操作,但是也可以使用“带变换的资源”,在不发布任何节点的情况下完成此操作。

假设一个机器人模型由引用了其他文件的不同身体部位组成(有关引用资源的详细信息,请参见资源和文件引用)。这些身体部位中的每个部位都由资源用相应的已发布属性封装。

假设在一个新动画中,机器人必须举起很重的板条箱。但是,这些手臂对于该动画而言过小。

如果打开引用的手臂文件,可以看到原始手臂由 L_RobotArm_AST 封装。这里可以建模第二个功能更强大的手臂。

创建第二个手臂

  1. 选择资源 > 高级资源 > 创建(Assets > Advanced Assets > Create) >

    此时将显示“创建高级资源选项”(Create Advanced Asset Options)窗口。

  2. 将资源命名为 L_PowerArm_AST。
  3. 单击“应用并关闭”(Apply and Close)
  4. 选择资源 > 高级资源 > 设置当前资源(Assets > Advanced Assets > Set Current Asset),然后选择 L_PowerArm_AST。
  5. 为新手臂建模。

    所有新的手臂几何体都将自动在 L_PowerArm_AST 节点下创建。

  6. 使用 L_RobotArm_AST 上对应属性和节点的名称,发布相应属性和节点。
  7. 完成后,选择资源 > 高级 源 > 设置 前 源(Assets > Advanced Assets > Set Current Asset),然后选择“无”(None)

现在就拥有了两个资源,每个都封装了一只手臂。但是,如果使用“传递属性值”(Transfer Attribute Values)选项切换主机器人文件引用的手臂,则会得到以下结果。

手臂显示在另一只手臂的上方,未正确转换。如果需要仔细查看层次,可以看到引用的手臂不再正确定位在角色的层次中(它们已从各自组之下消失)。这是因为主机器人场景不再识别资源下的任何节点(有关详细信息,请参见已发布的节点

要正确交换手臂,必须先将新手臂发布为子对象,然后再传递其属性。

交换机器人手臂

  1. 在手臂文件中,选择节点 L_powerArm_GRP。此组正好在 L_powerArm_CNT 节点的下方,是组成新手臂的所有几何体的组合。
  2. 选择资源 > 高级资源 > 节点发布(Assets > Advanced Assets > Node Publishing) > 发布子锚点(Publish Child Anchor)
  3. 选择 L_robotArm_AST,然后按住 并选择 L_powerArm_AST。
  4. 选择编辑 > 传递属性值(Edit > Transfer Attribute Values) >

    此时将显示“传递属性值选项”(Transfer Attribute Values Options)窗口。

  5. 启用“值”(Value)
  6. “输入连接”(In connections)设置为“从源传递”(Transfer from source)
  7. “关系”(Relationships)设置为“传递父/子关系”(Transfer parent/child relationships)
  8. “重命名”(Rename)设置为“重命名目标资源”(Rename target asset)
  9. 单击“应用并关闭”(Apply and Close)
  10. 隐藏对应于旧机器人手臂的显示层。
  11. 保存文件。

新手臂在资源 L_robotArm_AST 下组织,而旧手臂在资源 L_robot_arm_ASTOrig 下组织。

现在,如果打开主机器人文件,机器人手臂将替换为新的、看起来更为有力的手臂。因为已将这些手臂发布为源文件中的子对象,所以 Maya 知道这些手臂是层次中的一部分,并使用它们的节点信息,而非它们的名称,确定它们在层次中的位置。

只要新手臂的已发布属性匹配旧手臂的已发布属性,任何关联操作(如动画)都将从旧手臂传递到新手臂。