たらちゃんの知恵箱

CGに関するちょこっとテクニカルなブログ

【Maya】レンダーレイヤーが壊れる原因と対処法

Mayaのレンダーレイヤーはかなりの高確率で壊れることがあります。

経験上、壊れる原因はいくつかあるので、その対処法をまとめようと思います。

今の時代でこの記事がどれだけ為になるかは分かりませんが。。

 

1,フェース単位でのマテリアルアサイ

これはMayaではある意味ご法度で、プロダクションによっては禁止されているかと思います。(例えば社内チェックツール等が用意されており、様々なチェック工程をクリアしないと下流へデータをパブリッシュ出来ないなど。)

ただ小規模の会社等パイプラインがきっちり整備されてないような会社ではやってしまいがち。見極め方はいくつかあり、ノードネットワークを見ると下図のような違いが見られます。

f:id:pusan00:20180918005959p:plain

 ※上のコネクションが正常な状態。下のコネクションがフェース単位で当たっている状態。コネクションがごちゃごちゃしてしまっている。また、シェーディンググループが複数ある場合、マテリアルが複数当たっている状態。

基本的にはシェイプノード→シェーディンググループへの黒色のコネクション一つが正しい状態ですが、フェース単位で当たってる場合はシェーディンググループ→シェイプノードに緑色のコネクションが当たってますので、その場合はフェース単位のアサインを疑いましょう。

 

2,リファレンスでシーンに読み込む

ある意味これが一番の根幹の部分で、例えばキャラのデータにレンダーレイヤーを構築しておき、カット作成時にリファレンスでシーンに読み込むと高確率で壊れる、ということが起こります。(とくにフェース単位でアサインしているメッシュ。

これは何故か?

恐らくですが、リファレンス読み込み時にネームスペース名が付くことでMayaがコネクション情報を拾いきれなくなり、マテリアルのアサイン情報が無くなってしまうのではないかと思います。(Mayaは名前で判別することが多々あるので。)

 とはいえ、大量のカットを構築するにはリファレンスは避けては通れないので、対処法を考える必要があります。以下が主な対処法になります。

 

■レンダーレイヤーの構築情報をいったん別ファイルに書き出し、シーン上で構築する。

この方法が一番事故の少ないやり方かと思いますが、こちらは残念ながらMayaの標準機能では出来ず、別途スクリプトを用意する必要があります。

こちらが難しい場合は下記の方法になるかと思います。

 

■マテリアルをアサインし直さずにレンダーレイヤーを構築する。

一番有効なのがマテリアルオーバーライド。

設定方法はレンダーレイヤー上で右クリック→【Overrides】→【Create New Material Override】。

または、レンダーレイヤーアトリビュートの【Shading Group】にオーバーライド設定後、シェーディンググループノードをドラッグ&ドロップでコネクトすれば同じ設定が出来ます。

ただ、これは一括で同一のマテリアルが当たってしまうため、メッシュ単位で別の設定をしたい場合は使用出来ません。

 その場合はマテリアルのカラー等のアトリビュートをオーバーライド設定するやり方が有効です。

こちらの場合は、masterLayerの時点でメッシュ単位でマテリアルを分けておく必要があります。

 

要するにマテリアルのアサイン情報が壊れるわけなので、レンダーレイヤーの設定時にマテリアルを当て直さなければいい訳です。

恐らく今のご時世、フォトリアル系のCGではArnold,V-Ray等のレンダーパスでパスを出力する方法が多いので、レンダーレイヤーを設定するのはアニメ系の案件が多いかと思います。

その場合は上記の設定方法で問題なく設定できるので有効な方法になるかと思います。

 

3,壊れてしまった場合の対処法

もしシーン上で壊れてしまった場合、以下のコマンドをMELで実行すると修復される場合があります。

fixRenderLayerOutAdjustmentErrors;

ただこちらのコマンドはシーンの全レンダーレイヤーに実行されるのですが、シーン内で使用していないレンダーレイヤー(レンダーレイヤーエディタ上では見えないがシーン内にゴミとして存在している場合)はエラーが出る場合があります。(アウトライナの【DAG Objects Only】をオフにすると存在を確認出来ます。)

しっかりシーンを整理した状態で実行しましょう。

もしこちらのコマンドでもうまくいかない場合は、リファレンス元のデータの作りを上記の【マテリアルをアサインし直さずにレンダーレイヤーを構築する。】やり方で再設定すると修復されることもありますので試してみてください。 

 

 

今回はMayaのレンダーレイヤーの設定周りの説明でしたが、Maya 2016 Extension2 以降ではレンダーレイヤーの仕様が変わっており、設定ファイルのエクスポート等も出来るようになっているようです。(まだ業務で試したことはないのでなんとも言えませんが。。(;^ω^))

 

ではでは(^^♪