[Maya] Mayaのデータエラーの話 その1- リファレンスノードのDuplicate

データのエラー対応をしていてよく見かける内容についていくつか紹介していこうかとおもいます。

Mayaというソフトは、ソフト上問題ない・出来てしまうけれども、
問題を引き起こしがちなものというのがそこそこあります。(大半はリファレンスがらみなんですががが)

そんなこんなで 1回目は、Twitterでちょろっとつぶやいた、リファレンスノードのDuplicateの話です。

Mayaの場合、リファレンスで読み込んでいるもでるを CTL+D 等でDuplicateすることが可能です。
Duplicateしたモデルは、リファレンスではなく実体としてシーンに読み込まれるため、
シーン専用のオブジェクトにする 等のとき、ちょくちょく利用される機能でもあります。

リファレンスオブジェクトは、ノード名が赤いですが コピーされたノードを見ると実体オブジェクトになっているのが分かります。
ただし、ここで注意しなければならないのが、ここで実体としてDuplicateされたモデルは、TransformやMeshノードのような、親子化することができる、ハイパーグラフやアウトライナでツリー表示されているノード(DAGノード)と、オプションで設定した場合は、それにコネクションされたシェーダーアサイン情報以外の各種ノードのみになります。


特に、シェーダーのアサイン情報と、シェーダー本体はConnectionのDuplicateオプションを
つけたとしてもコピーされず、Meshのみ実体・シェーダーはリファレンス という構造ができあがってしまいます。

もちろん、この状態でもレンダリングは可能ですし 見た目上の不具合は発生しません。
しませんが、たとえば このDuplicateしたモデルをExportSelectionした場合、
シェーダーとのコネクション情報があるため リファレンスモデルも引きづられて
Exportされてしまいます。

しかも、Exportされたリファレンスモデルは 完全な状態ではなく、
キャラクターのはずなのにJointしかいないとか、
シェーダーの設定がぶっ壊れている 等、ReferenceEditor的には普通に読み込まれているのに
全然大丈夫じゃない状態になる可能性があります(複雑なデータなら尚更)

見た目上、問題がなさそうに見えるものの ぶっこわれる原因がこわれだったー(‘A`)
という実体験もあるので、極力リファレンスのDuplicateは避けImportReferenceして実体化する または
新規でImportする 等して、実体とリファレンスとのコネクションが複雑にならない作り方が
望ましいのかなと思います。

コメントを残す

メールアドレスが公開されることはありません。


*