近年のMaxでは「シーンをレンダリング」ダイアログの下部にスクリプトの登録スロットがあるので、それでもいいかもしれません。
ポイント
preRenderスクリプトはシーンに保存されない
→persistent:trueを使うとシーン内にコールバックイベントを保存できます。
まとめ
preRender.msとpostRender.msを用意し、callbacks.addscript filename:を用いてそのスクリプトファイルを登録すれば大丈夫です。これはローカルでもBackburner上でも動きます。
preRender.msとpostRender.msをコールバックとしてシーン内に登録するには、シーンを開いた状態でcallbacksRegister.msにより登録して保存しておきます。
以下の例は、レンダリング開始時(#preRender)にローカルの時間をINI形式でファイルに書き出します。
そしてレンダリング終了時(#postRender)にローカルの時間をINI形式でファイルに書き出します。
preRender.ms
fn myPreRend = (
iniFile = "H:\\max_Scripts\\preRender_PostRender\\preRender.ini"
f = createFile iniFile
setIniSetting iniFile "preRender" "localTime" (localtime as string)
close f
)
myPreRend()
|
postRender.ms
fn myPostRend = (
iniFile = "H:\\max_Scripts\\preRender_PostRender\\postRender.ini"
f = createFile iniFile
setIniSetting iniFile "postRender" "localTime" (localtime as string)
close f
)
myPostRend()
|
callbacksRegister.ms
callbacks.removeScripts #preRender id:#myRendAuto
callbacks.removeScripts #postRender id:#myRendAuto
callbacks.addScript #preRender fileName:"H:\\max_Scripts\\preRender_PostRender\\preRenderScript_v001-001.ms" id:#myRendAuto persistent:true
callbacks.addScript #postRender fileName:"H:\\max_Scripts\\preRender_PostRender\\postRenderScript_v001-001.ms" id:#myRendAuto persistent:true
callbacks.show()
|
となると、Backburnerでいちいち手動で無いとレンダーレポートを保存できないあの面倒な部分、それをpostRenderFrameで行えばレポートを便利に出力できますね!