此示例将显示如何使用资源、文件引用、“传递属性值”(Transfer Attribute Values)选项和“发布子锚点”(Publish Child Anchor)选项,交换机器人模型上的不同手臂。
假设一个机器人模型由引用了其他文件的不同身体部位组成(有关引用资源的详细信息,请参见资源和文件引用)。这些身体部位中的每个部位都由资源用相应的已发布属性封装。
假设在一个新动画中,机器人必须举起很重的板条箱。但是,这些手臂对于该动画而言过小。
如果打开引用的手臂文件,可以看到原始手臂由 L_RobotArm_AST 封装。这里可以建模第二个功能更强大的手臂。
现在就拥有了两个资源,每个都封装了一只手臂。但是,如果使用“传递属性值”(Transfer Attribute Values)选项切换主机器人文件引用的手臂,则会得到以下结果。
手臂显示在另一只手臂的上方,未正确转换。如果需要仔细查看层次,可以看到引用的手臂不再正确定位在角色的层次中(它们已从各自组之下消失)。这是因为主机器人场景不再识别资源下的任何节点(有关详细信息,请参见已发布的节点。
要正确交换手臂,必须先将新手臂发布为子对象,然后再传递其属性。
新手臂在资源 L_robotArm_AST 下组织,而旧手臂在资源 L_robot_arm_ASTOrig 下组织。
现在,如果打开主机器人文件,机器人手臂将替换为新的、看起来更为有力的手臂。因为已将这些手臂发布为源文件中的子对象,所以 Maya 知道这些手臂是层次中的一部分,并使用它们的节点信息,而非它们的名称,确定它们在层次中的位置。
只要新手臂的已发布属性匹配旧手臂的已发布属性,任何关联操作(如动画)都将从旧手臂传递到新手臂。