您可以按照在场景中切换不受约束的场景、缓存和定位器表示的相同方式来切换约束的表示。但是,切换表示时,约束的行为及其持久性取决于层次中的集合节点位置。以下部分对此概念进行了更详细的介绍。
切换受约束集合引用节点上的表示
如果顶级 assemblyReference 节点是目标对象或受约束对象,则切换表示时约束行为将保持。例如,如果 assemblyReference 节点被约束为目标对象,则集合表示从“场景表示”(Scene representation)切换为“缓存表示”(Cache representation)时,约束行为不会改变。
在这种情况下,受约束对象(集合引用节点)不会从场景卸载,以保持与约束节点的连接,从而保持约束行为。
切换受约束的嵌套集合引用节点或成员上的表示
当您切换符合以下条件的 assemblyReference 节点或成员上的表示时,约束行为的持久性会改变:
assemblyReference 节点或成员是受约束对象和集合引用层次中的子节点,如“场景表示”(Scene representation)。
assemblyReference 节点或成员是受约束对象和集合引用成员,如顶级集合引用节点所包含的“场景表示”(Scene representation)。
下图说明了受约束的集合引用成员,该成员也是活动表示。
在此情况下,切换表示会导致从场景中卸载受约束对象。Maya 随后将创建一个 fosterParent 节点来临时替代已卸载的 assemblyReference 节点或集合引用成员。受约束对象恢复到其不受约束的位置和行为,直到重新载入集合引用节点或成员。
下图说明了受约束的集合引用成员不再是活动表示。
通过此 fosterParent 节点可以维护与约束节点的连接。fosterParent 节点暂时继承来自 assemblyReference 节点的变换值。当重新加载 assemblyReference 节点时,fosterParent 节点将被移除。重新加载assemblyReference 节点时,不会向其应用对 fosterParent 节点所做的修改。