ノード アトリビュートをコンテナにパブリッシュすると、そのアトリビュートはコンテナ レベルで表示されるようになります。パブリッシュ済みアトリビュートは、次の 3 つの要素で構成されます。
対応する内部アトリビュートの値を直接変更しているように、パブリッシュされたアトリビュートを変更できます。この機能を利用して以下の処理を行うことができます。
パブリッシュ済みのアトリビュートは、コンテナのインタフェースを構成し、コンテナがロックされている場合でも編集できます。したがって、一連のアトリビュートをパブリッシュしてからコンテナをロックすると、ユーザはパブリッシュした特定のアトリビュートを通してしかコンテナの内容を操作できなくなります。
コンテナにパブリッシュ済みの名前が存在するが、内部ノード アトリビュートにコネクトされていない場合は、パブリッシュ済みの名前はバインドされません。パブリッシュ済みの名前は、バインドされるまでアトリビュート エディタ(Attribute Editor)、アウトライナ(Outliner)、およびチャンネル ボックス(Channel Box)に表示されません。これは、パブリッシュ済みの名前を変更しても、コンテナの内容に影響がないためです。パブリッシュ済みの名前へのアトリビュートのバインドとバインド解除は、アセット エディタ(Asset Editor)で行うことができます。
パブリッシュ済みのアトリビュートを子コンテナから親コンテナにパブリッシュできます。これにより、コンテナ階層を構築して、シーンをより適切に管理できます。
たとえば、車のシーンで、front_wheel_CNT という名前のフロント ホイールのコンテナを作成し、それを car_CNT という名前の車全体のコンテナによってカプセル化できます。最初にホイールの回転を front_wheel_CNT にパブリッシュしてから、これらのパブリッシュ済みアトリビュートを car_CNT にパブリッシュできます。
コンテナ ノードの独自のアトリビュートをコンテナ自体にパブリッシュすることもできます。これは、コンテナがロックされているときに、アーティストがビューを変更したり、他のコンテナ アトリビュートを制御したりできるようにする場合に便利です。
テンプレートはパブリッシュ済みの名前を使用して、必要なパブリッシュ済みアトリビュートを定義します。
ノードをパブリッシュすることもできます。詳細については、 パブリッシュ済みノードを参照してください。
アトリビュートのパブリッシュと同様に、ノードをコンテナにパブリッシュできます。パブリッシュ済みノードは、主に階層内でカプセル化された DAG ノードと外部 DAG ノードとの対話方法を定義する場合に使用されます。次の 3 つの方法でノードをパブリッシュできます。
パブリッシュ済みアトリビュートと同様に、パブリッシュ済みノードは、コンテナがロックされた後に再ペアレント化できる唯一のカプセル化されたノードです。親アンカーまたは子アンカーは、コンテナのノードがコンテナの外側でそれぞれノードの親または子になることができることを示します。ルート ノードはコンテナ中心の選択(詳細については コンテナ中心の選択を参照)で選択されるノードとして機能し、ユーザにコンテナの主要ノードを通知する場合に便利です。
ロックされたコンテナのノードをパブリッシュする一般的な方法を以下に示します。
パブリッシュ済みノードは、コンテナをブラック ボックス(Black Box)モードに設定している場合に、コンテナの下に表示される唯一のノードです。パブリッシュ済みノードのみを選択できるようにコンテナ中心の選択が自動的に適用されます。これにより、コンテナのパブリッシュされていないすべてのノードが透過的になるため、ブラック ボックス(Black Box)モードがコンテナの内部構造を非表示にして、他のユーザがコンテナの内容をシーンのその他の部分に意図した方法でコネクトするための基本的な手段になります。ブラック ボックス(Black Box)の詳細については、 未パブリッシュ ノードとアトリビュートを非表示にするを参照してください。
また、コンテナをロックしてコンテナの整合性を保護することもできます。コンテナがロックされている場合、パブリッシュ済みノードのペアレント化/子供化のみが可能です。コンテナのロックの詳細については、 コンテナをロックするを参照してください。
パブリッシュ済みノードのリレーションシップでは、Maya のその他のリレーションシップとは異なる処理が行われることに注意してください。親アンカーと子アンカーは、ノード名を直接使用せずに、親/子のパブリッシュ済みの名前を使用してオブジェクト間のリレーションシップを管理します。これは、ファイル リファレンスを処理する場合に特に便利です。
たとえば、花束のファイルを参照して、親ファイルの腕にペアレント化する場合を考えます。花束ファイルの階層または名前を変更すると、親ファイルでは DAG パスが変更されるため、腕と花束のリレーションシップを維持することはできません。
腕へのリレーションシップが認識されなくなり、結果として、花束はすべてのリレーションシップ データを失い、原点にリセットされます。
この問題を回避するには、花束をコンテナにカプセル化して、子アンカーとして bouquet_GRP をパブリッシュします。これで、花束の名前と構造を変更しても、腕へのリレーションシップに影響しなくなります。