3dsMaxのコマンドライン(3dsmaxcmd.exe)を使用したバッチレンダリングの方法について書いてみます。
3dsMaxにはBackburnerやバッチ レンダリング ツールなどいくつかバッチレンダリング機能が搭載されていますが、.batファイルを使用してレンダリングする方法をメモしておきます。
バッチファイル作成
例えばCut_001.max、Cut_002.max、Cut_003.maxのように複数のシーンファイルがあって、全てのシーンをレンダリングする場合について書いてみます。
テキストエディタを使用して3dsmaxcmdと.maxファイルへのパスを記述し、拡張子を.batにして保存します。バッチファイルは行ごとにコマンドが実行されるので改行には注意してください。
"C:\Program Files\Autodesk\3ds Max 2020\3dsmaxcmd" -o="C:\BatchFolder\Output\Cut_001_.png" "C:\BatchFolder\Cut_001.max"
"C:\Program Files\Autodesk\3ds Max 2020\3dsmaxcmd" -frames=1-5 -o="C:\BatchFolder\Output\Cut_002_.tga" "C:\BatchFolder\Cut_002.max"
"C:\Program Files\Autodesk\3ds Max 2020\3dsmaxcmd" -showRFW=0 -frames=1-10 -o="C:\BatchFolder\Output\Cut_003_.png" "C:\BatchFolder\Cut_003.max"
cmd /k
コマンドラインレンダリングはスイッチを設定して、maxファイルの設定を変えてレンダリングすることができます。
1行目が最も単純な記述方法です。レンダリング スイッチ -o="" はレンダリングした画像の出力先を指定するものです。ファイル名の拡張を .jpg や .tga に変えるとフォーマットを変更できます。
2行目 -frames=1-5 はレンダリング範囲の始点と終点です。
3行目 -showRFW=0 はレンダリング フレーム ウィンドウを非表示にします。レンダリングの進捗は確認できなくなりますが、レンダリングが速くなると思います。
レンダリングのログを出力したい場合は > "C:\BatchFolder\Output\render.log" を追加します。
基本的には「レンダリング設定」のレンダリング スイッチを覚えると便利に使えます。
.batをダブルクリックするとコマンドプロンプトが起動してレンダリングが実行されます。レンダリングが終了したらコマンドプロンプトを閉じて完了です。
ファイルパスについて
上の例ではファイルパスがわかりやすいようにドライブ名を含めた「C:\BatchFolder\Cut_001.max」のような絶対パスで記述してますが、バッチファイルからの相対パスで指定することもできます。
"C:\Program Files\Autodesk\3ds Max 2020\3dsmaxcmd" -showRFW=0 -frames=1-10 -o="%~dp0\Output\Cut_001_.png" "%~dp0\Cut_001.max"
「%~dp0」はバッチファイルのあるディレクトリを設定するコマンドです。
参考
コマンドライン レンダリング スイッチ
https://help.autodesk.com/view/3DSMAX/2020/JPN/?guid=GUID-E5239450-557C-4F51-8DBE-B9BE22F881CA
余談ですが、Autodeskのドキュメントに書かれてるコマンドレンダリングの記述例は、そのままコピペで動かないので注意が必要です。
恐らくサイトが勝手に記号を変換してます。記号の""が“”に変換されている、¥が異なる文字コードなので基本的に動かないです。