レンダリング管理ツール 「Deadline」 を使ってみたのでメモです。
目次
Deadline とは
「Deadline」はネットワーク レンダリングを管理するツールです。
アニメーションをレンダリングする場合、1台のPCで全てのフレームをレンダリングすると時間が掛かります。ネットワーク内の複数のPC(レンダーファーム)に、計算するフレームを分散して割り当ててレンダリングすることで、レンダリングを効率的に行うことができます。これを「ネットワーク レンダリング」や「分散レンダリング」と呼びます。
Deadlineを使用するとネットワーク レンダリングが簡単に行えるようになります。1台のPCで連続してシーンをレンダリングする用途にも使用できます。
Deadlineのようなツールは「レンダーマネージャー」「ネットワーク レンダリング コントローラー」「ディスパッチャー」とも呼ばれます。
Deadlineの無料化
DeadlineはThinkbox Softwareが開発する大規模スタジオ向けの製品で、レンダリングノード ライセンスを年間 $48 で販売していました。2017年にAmazonに買収され、2022年に無料化されました。
インストール方法
Deadlineのインストールオプションは把握していないので、以下のサイトを参考にしてください。
- Deadline Repositoryとデータベースは 1 台のPCにのみインストールする
- Deadline Client はレンダリングに参加するPC全てにインストールする
- Deadlineのインストール後はPCを再起動する。PCを再起動しないと環境変数が反映されず、レンダリングに失敗します
3Dソフト用のプラグイン
Deadlineは対応しているソフト向けに、サブミットスクリプトを提供しています。スクリプトをインストールすると3Dソフト内からDeadlineへサブミットできるようになります。
スクリプトはインストールしたDeadline Repository内の「submission」フォルダに入っています。
- DeadlineRepository\submission\3dsmax\Installers\3dsmax-submitter-windows-installer.exe
- DeadlineRepository\submission\maya\Installers\Maya-submitter-windows-installer.exe
- DeadlineRepository\submission\Modo\Installers\Modo-submitter-windows-installer.exe
使用方法
Deadlineでネットワーク レンダリングするには、3Dソフト内または Deadline Monitor から「ジョブ」を「サブミット」します。
- 「ジョブ」とは、どのファイルを何フレームレンダリングするかの設定です。
- 「サブミット」はDeadlineにジョブを送ることです。
3Dソフト内からのサブミットはシーン内の「フレーム範囲 (レンダリングする範囲)」が自動的に設定されるのに対して、Deadline Monitor からのサブミットは「フレーム範囲」や「画像の出力先」を手動で設定する必要があります。
以下、各3Dソフトで気がついたことを書いておきます。
3ds Max
Max内のサブミットダイアログ
- レンダリング画像の出力先は、Maxファイルの「レンダリング設定」のパスが使用されます
- 日本語版Maxの使用は避けた方がよいです(以下の2つのルールを守れば一応日本語版でも使用できますが面倒くさいだけ)
- 日本語版Maxでレンダリング出力先のパスを設定するとエラーが出るので、英語版Maxでパスを設定する必要がある
- デフォルトのMax起動言語が「日本語」の場合はエラーが出るので、Optionsの「Override 3ds Max Language」は「English」を使用する
Deadline Monitor のサブミットダイアログ
Deadline Monitorには「3dsmax」と「3ds Command」の2種類ありますが、「3ds Command」がお勧めです。
3ds Command
「3dsmax」に比べてレンダリングの出力先や保存形式を変更できるなど高機能です。ただしレンンダーエレメントのファイルパスは変更しないので、あまりメリットはありません。Maxの言語を気にしなくてよいのが一番のメリットです。
- Flame List の設定が必須
3dsmax
何となく正式名称の「3dsmax」がよさそうですが、日本語版Maxを使用している場合は罠です。「3ds Command」の方がMaxの言語を気にせず使用できます。
以下の点に注意すれば使用することは可能です。
- Flame List の設定が必須
- Advanced OptionsのOverride LanguageはENUを使用する
- レンダリング画像の出力先のパスは、英語版Maxで設定する
「3dsmax」でサブミット時に、日本語版Maxが起動していると以下のようなエラーが出ます。
Error: 3dsmax startup: Error getting connection from 3dsmax: Dialog popup detected: Title "スクリプト リスナー", Message "MAXScript " at Deadline.Plugins.PluginWrapper.StartJob(String& outMessage, AbortLevel& abortLevel)
「3dsmax」でサブミット時に、レンダリング画像の出力先のパスが日本語版Maxで設定され得ている場合は以下のようなエラーが出ます。
Exception during render: An error occurred in RenderTasks(): RenderTask: Unexpected exception (Error in bm->OpenOutput(): error code 12
Maya
Maya内のサブミットダイアログ
- 特に注意点なし
Deadline Monitor のサブミットダイアログ
- Project Directoryの設定が必須
- Output Folder の設定が必須
- Flame Listの設定が必須
modo
modo内のサブミットダイアログ
デフォルトの日本語Windows環境では、modo内からのサブミットが動作しません。Deadlineが対応しているmodo 13など古いバージョンでもスクリプトエラーが出ていました。
恐らく日本語Windowsのデフォルト文字コードが「Shift-JIS」なのが原因だと思うので、Windowsの設定を「UTF-8」に変更すれば改善するんじゃないかと思いますが、確認が面倒なので試してません。
Deadline Monitor のサブミットダイアログ
- Flame Listの設定が必須
- Output Folderはレンダー出力アイテム (Final Color Outputなど) にパスが設定されている場合は入力不要です
自分の場合はレンダー出力のパスは使用しないので設定が必須、Output Formatも設定する必要がある
Deadlineスクリプトはmodo 13が最終対応バージョンです。このためデフォルトでは最新バージョンのmodoで使用することができません。
プラグインの設定やスクリプトを編集すると、modo 17などの最新バージョンで使用できます。
modoのプラグイン設定を書き換える方法
Deadlineのコンフィグから、参照しているmodo_cl.exeへのパスを古いバージョンから新しいバージョンに書き換える方法です。
1. Super User ModeをONにする
デフォルトではDeadlineの細かな設定が隠されています。Toolsメニューから「Super User Mode」をクリックします。
2. Configure Pluginsを開く
「Super User Mode」がONになると詳細な設定にアクセスできるようになります。Toolsメニューから「Configure Plugins」を開きます。
3. modo_cl.exeのパスを書き換える
Configure Plugins 左のリストからmodoをクリックします。modo_cl.exeへのパスが書かれているので、使用したいバージョンのmodo_cl.exeにパスを書き換えます。ここではmodo 13の設定をmodo17に書き換えました。
modo 16.1移行はインストールパスが変更になっているので注意が必要です。「Program Files」直下に各modoバージョンがインストールされるようになりました。
以上で設定は完了です。
この方法はUIから手軽にファイルパスを書き換えできます。デメリットとして、modo 13の設定を書き換えているのでサブミットダイアログのVersionと、実際に動作するバージョンが異なってしまいます。
Deadline Monitorからジョブをサブミットすると、無事にレンダリングが実行されます。
Deadlineのサブミットスクリプトを書き換える方法
Deadlineのリポジトリにインストールされている、サブミットスクリプトを書き換える方法です。
以下の2つのファイルを書き換えます。
- \DeadlineRepository\plugins\Modo\Modo.param
- \DeadlineRepository\scripts\Submission\ModoSubmission.py
Modo.param
Configure Plugins ダイアログに表示される設定ファイルと思われます。
ファイル内を「13xx」で検索して関連しそうな行をコピー、使用したいmodoバージョンに書き換えます。
ModoSubmission.py
サブミット ダイアログの設定ファイルと思われます。
ファイル内を「13xx」で検索して関連しそうな行をコピー、 使用したいmodoバージョンに書き換えます。
このファイルには2箇所書き換える箇所があります。1箇所目はVersionのドロップダウンリストの項目です。
2箇所目はOutput Formatのドロップダウンリストの項目です。
デフォルトのファイルフォーマットを設定できるようなのでPngに変更しました。Jpgなど不要なフォーマットを削除しました。
以上でスクリプトの書き換えは完了です。
スクリプトを書き換えるとデフォルトの設定など、好みにカスタマイズできそうです。
レンダリング管理ツールは様々なソフトに対応していますが、不思議と3Dソフトごとに利用者の多いツールが異なっていました。LightWaveなら「ButterflyNetRender」、3ds Maxなら「Backburner」や「Deadline」のような感じです。
3ds MaxやMayaには「Backburner」がバンドルされていて、Autodesk製品のネットワーク レンダリング管理ツールとして利用されていました。しかし、Backburnerは32bitアプリのため2GBを超えるシーンを処理できないなど大規模なシーンで使用できない状態でした。3ds Max 2019 以降はBackburnerがバンドルされなくなり積極的な開発の終了が告知されました。
AutodeskにBackburnerが不安定だと伝えるとDeadlineを使えと回答されるくらいには、メジャーなレンダリング管理ツールです。以前のDeadlineは類似ソフトに比べてかなり高いという印象でしたが、無料化されて手軽に使えるようになったのは助かりますね。多くの企業はDeadlineに移行していくんじゃないかと思います。
参考
Deadline ドキュメント
https://docs.thinkboxsoftware.com/products/deadline/10.3/1_User%20Manual/index.html