MELやPythonを使って、Mentalrayに切り替えて、色々設定やRenderLayerを自動で作ったりしたいっと思ったことありませんか!?
レンダリング設定をスピーディーにやったり、カットごとにばらつかないようにするには必要不可欠!また、アニメ業界では、Mentalrayがまだまだ現役かと思います。
そこで、コマンド経由でMentalrayに切り替えた時に、注意しないといけないことを見ながら、切り替える方法をご紹介したいと思います(`・ω・´)ゞ
Mentalrayに切り替える方法
RendererをMentalrayに切り替える方法はとってもシンプルです。「defaultRenderGlobals」の「currentRenderer (ren)」を「mentalRay」に設定します。
MEL
setAttr -type "string" "defaultRenderGlobals.ren" "mentalRay";
Python
from maya import cmds cmds.setAttr('defaultRenderGlobals.ren', 'mentalRay', type='string')
Mentalrayの設定を変える場合の注意
Mentalrayに切り替えたところで、設定を書き換えるぞー!っと意気込んでツールを作っていると、こんな感じのエラーに悩まされたことはありませんか?
あるはずの「miDefaultOptions」がないだと!?Mentalrayにちゃんと切り替えてるぞ!どういうことだー!!っという具合だと思います。
実は、Mentalrayに切り替えただけでは、「Mentalrayの設定を管理するためのノードやコネクションが作られていない」んです!
なので、Render Settingsで設定を変えて、コマンドのログを参考に作っている時はちゃんと動くんですが、New Sceneなどをしてツールを実行するとエラーが起きてしまいます。(´・ω・`)
Mentalrayの初期化
Mentalrayに切り替えた後に、スムーズにMentalrayの設定を書き換えるには、「Mentalrayの初期化」をしてあげないといけません。通常のオペレーションでは、「Render Settings」のタブを切り替えた時に行われています。
「Mentalrayの初期化」はMELで書かれているので、Pythonの場合は「mel.eval」を使って処理します。
MEL
setAttr -type "string" "defaultRenderGlobals.ren" "mentalRay"; miCreateDefaultNodes;
Python
from maya import cmds, mel cmds.setAttr('defaultRenderGlobals.ren', 'mentalRay', type='string') mel.eval('miCreateDefaultNodes')
これで、ばっちりきれいサッパリな状態から、Mentalrayに切り替えて各種設定を行えるようになります!(`・ω・´)ゞ