コンストレイントされたリプリゼンテーションは、シーン内のコンストレイントされていないシーン、キャッシュ、およびロケータ リプリゼンテーションを切り替えるのと同じ方法で切り替えることができます。ただし、リプリゼンテーションが切り替えられるときのコンストレイントの動作とその存続は、階層内のアセンブリ ノードの位置によって異なります。次のセクションでは、この概念の詳細について説明します。
最上位の assemblyReference ノードがターゲット オブジェクトまたはコンストレイントされたオブジェクトである場合、リプリゼンテーションが切り替えられてもコンストレイントの動作は存続します。たとえば、assemblyReference ノードがターゲット オブジェクトにコンストレインされている場合、アセンブリ リプリゼンテーションがシーンリプリゼンテーションからキャッシュリプリゼンテーションに切り替わっても、コンストレイントの動作は変更されません。
この場合、コンストレイントされたオブジェクト(アセンブリ リファレンス ノード)はシーンからアンロードされず、コンストレイント ノードとの接続が維持されるため、コンストレイントの動作が存続することができます。
コンストレイント動作の存続は、以下の assemblyReference ノードまたはメンバーでリプリゼンテーションを切り替えたときに変更されます。
次の図は、アクティブ リプリゼンテーションでもある、コンストレイントされたアセンブリ リファレンス メンバーを示します。
この場合、リプリゼンテーションを切り替えると、コンストレインvされたオブジェクトはシーンからアンロードされます。Maya では、アンロードされた assemblyReference ノードまたはアセンブリ リファレンス メンバーの一時的な代替物となる fosterParent ノードが作成されます。コンストレイントされたオブジェクトは、アセンブリ リファレンス ノードまたはメンバーがリロードされるまで、コンストレイントされていない場所および動作に戻ります。
次の図は、コンストレイントされたアセンブリ リファレンス メンバーがアクティブ リプリゼンテーションではなくなったことを示しています。
この fosterParent ノードを使用すると、コンストレイント ノードへの接続を維持することができます。fosterParent ノードは assemblyReference ノードのトランスフォームの値を一時的に継承します。assemblyReference ノードがリロードされると、fosterParent ノードは除去されます。fosterParent ノードに対する修正は、リロードされる場合、assemblyReference ノードに適用されません。