コマンドでMentalrayに切り替えた時の注意と方法!!

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に切り替えて各種設定を行えるようになります!(`・ω・´)ゞ