2023年2月20日月曜日

Ignoreされたリファレンスファイルはどうなるのか

 リファレンスファイルが見つからなかったとき、ダイアログで [Ignore Reference] を指定した場合、mayaはどう処理するのか・・・。

 検証してみます。

 まずは、[Skip] をした場合、リファレンスエディタを確認すると、リファレンスファイルのロードがされていない状態で読み込まれていることが分かります。

[ Skip ] の場合

 そして [Ignore Reference] した場合、リファレンスされているはずのノード名がリファレンスエディタで確認できなくなっています。

[ Ignore Reference ] の場合

  この Ignore Referenceした状態で前回のスクリプトを実行してみると、ファイルパスは表示されずリファレンスノード名だけが表示されます。

 リファレンスエディタやアウトライナーなどを確認してもリファレンスノードは見当たらないのですが、シーンファイルをテキストエディタなどで確認するとノード自体は存在しているようです。
 ノード名を指定して selectコマンドを実行することで選択することも可能です。

 .maファイル

 リグを組む準備としてモデルファイルを確認すると、たまにファイルの中に _UNKNOWN_REF_NODE_ みたいなリファレンスノードを見つける事がありますが、たぶん Ignore Referenceの成れの果てかもしれません。
 モデルを確認するときには下のスクリプトを実行して、ノードを削除すると良いでしょう。

{
    string $refs[] =`ls -typ "reference"`;
    for($ref in $refs)
    {
        lockNode -l off $ref;
        delete $ref;
        
    }
    
}

 参照先のはっきりしているリファレンスノードの場合、Reference Editorを見ていると怪しい挙動を示しますが、参照自体は保持されるようです。
 しかしアニメーションさせていたりする場合、リファレンスノードに記述されている placeHolderListが削除されてしまうため、animCurveと参照先ノードとの接続が切れてしまうので、アニメーション用ファイルでは実行しない方が良いと思います。



0 件のコメント:

コメントを投稿