プロキシ リファレンスのヒント

 
 
 

リファレンスの置き換え(Replace Reference)とプロキシ リファレンス(Proxy References)

リファレンス エディタ(Reference Editor)には、親シーン内でファイル リファレンスを置き換えるための 2 つの方法があります。それぞれに利点と制限事項があります。

リファレンスの置き換え(Replace Reference)コマンドは、ファイル ブラウザを開いて現在のリファレンスを選択した他のリファレンスに置き換えます。グループ ノードやロケータはそのまま変わりません。親シーン レベルでのファイル リファレンスへの既存の編集内容は、リファレンス ノードが変更されていないため、置き換えたファイル リファレンスに適用されます。これは、置き換えるファイル リファレンスのノード名と DAG ノード階層がオリジナルとまったく同じ場合には非常に有効ですが、用途が制限されます。ノード名と DAG ノード階層が同一でない場合、リファレンスの編集内容を置き換えたリファレンスに適用するときにエラーが発生し、データが消失してしまう可能性があります。Maya はリファレンスの置き換え(Replace Reference)コマンドを使用した場合に発生する代替リファレンスを記録しないため、このコマンドは参照階層にネストされたファイル リファレンスが存在する場合にはお勧めしません。

プロキシ リファレンスを使うと、特定のファイル リファレンスの代替リファレンス セットを作成して、1 つまたは複数のファイル リファレンスの代わりに使用できます。新しいノードが作成されて複数のプロキシを記録します。プロキシ リファレンスを使用すると、プロキシ リファレンスを選択してプロキシ タグに基づいてリロードし、一度に多数のプロキシ リファレンスを置き換えることができます。これは低解像度シーンを高解像度に、またはその逆にすばやく置き換える必要がある場合に役立ちます。

プロキシ リファレンス間でアニメーションを共有する

特定のファイル リファレンスのプロキシ リファレンス間でアニメーションを共有する場合、特定のファイル リファレンスとその親シーンに対してさまざまなプロキシ ファイル間で同等の状態が存在していることを確認する必要があります。つまり、親シーン内でキーフレームを設定するときに、ロードするプロキシ ファイルに関係なく、適切なノードにアニメーションを適用できることを確認します。このように同等の状態にするには、プロキシ ファイルを次のように設定します。

プロキシ リファレンスによるレンダリング

ファイル リファレンスとプロキシ リファレンスを含むシーンをレンダーするとき、特に指定しないかぎりは、現在ロードしているファイル リファレンスとプロキシ リファレンスがイメージでレンダーされます。レンダーする前にレンダリング結果に表示するリファレンスをロードする必要があります。プリ レンダー MEL(Pre Render MEL)スクリプトとポスト レンダー MEL(Post Render MEL)スクリプトを使用して、レンダリングの目的に合わせてプロキシを切り替えることができます。

たとえば、現在、シーンで低解像度プロキシが表示されていて、レンダーする前に高解像度に切り替え、レンダリングの完了後に低解像度に戻す必要があるとします。リファレンス エディタ(Reference Editor)でプロキシ マネージャの名前を定義すると、プロキシごとに関連プロキシ セットのノード名を定義して、レンダリングの前後で低解像度と高解像度のプロキシを切り替える簡単なスクリプトを作成できます。

次のワークフローはレンダリングの前後でプロキシ リファレンスを切り替える方法を示します。

  • リファレンス エディタ(Reference Editor)にプロキシ マネージャ ノードの名前を表示し、その名前を定義します。この例では、プロキシ マネージャに treePM という名前を付けます。
  • プロキシ マネージャ ノードを選択します。ハイパーグラフ(Hypergraph)内で選択したノードのディペンデンシー グラフを表示することで、個々のプロキシ ノードを定義できます。コマンド ラインに select -replace treePM と入力すると、プロキシ マネージャ ノードを選択できます。この例では、treePM の下位を表示するノードは treeRNtreeloRN という名前です(treeRN はオリジナルの高解像度ファイル リファレンスで、treeloRN は低解像度プロキシです)。
  • 次のように簡単なレンダリング前後用の MEL スクリプトを作成して、低解像度と高解像度を切り替えます。

    レンダリング前のスクリプト:

    //switch to the high res version

    proxySwitch treeRN;
    

    レンダリング後のスクリプト:

    //switch to the low res version

    proxySwitch treeloRN;
    
    注:

    上記のテクニックを使用すると、複数のプロキシ リファレンス間で切り替えることができます。つまり、複数の proxySwitch ラインを各スクリプトに追加すると、複数のプロキシを一度にロードまたはアンロードできます。