本記事は、スタジオブロスが提供する3DCG変換サービスで活用している自社ツール等を紹介する特集の第2回目です。
変換サービスのパイプラインの一つとして作成した、Movie Render Queue自動化のBlueprint(以下、BP)について解説していきます。
今回は、大量のシーケンサーに対して手動でQueueに追加してconfig設定して...といった、Movie Render QueueまわりのBPの解説になります。
シーケンサーについての説明は省略しますが、詳しく知りたい方はおかずさんの記事が非常に参考になるので、ご覧になってください。
猫でもわかる UE5 シーケンサー自動生成!【Unreal Engine Meetup in Nagoya Season2 Vol.1】 | ドクセル
今回は、以下の流れで解説いたします。
- Movie Render Queueをざっくり解説
- アセットの準備
- BP実装その1 Movie Render Queueに追加する
- BP実装その2 レンダリングを始める
- 振り返り
1.Movie Render Queueをざっくり解説
ではまず、Movie Render Queueはどのような構成になっているかざっくり解説します。
Movie Render Queueは、Movie Pipeline QueueにJobを作成し、JobにLevel Sequence、Level、Movie Pipeline Primary Config(レンダリングの設定)の3点を設定することで機能します。
2.アセットの準備
以下の図のように、シーケンサーのレンダリングのために必要なアセットを準備しました。
左から順に説明します。
- 1番目:処理を書くBP(Editor Utility Widget)
- 2、3番目:レンダリングするレベル
- 4番目:レンダリング設定を保存する Movie Pipeline Primary Config (以下configと略します)
- 5番目:Queueを保存するMovie Pipeline Queue
- 6、7番目:レンダリングするLevel Sequence
今回は、レンダリングするレベルにDayとEveningの2種類のレベル、シーケンサーにキューブを置いただけのものとキューブを傾けたもの2種類を用意しました。
3.BP実装その1 Movie Render Queueに追加する
それでは早速、BPの実装に入ります。
まずはEditor Utility Widgetを開いてCreate Job from Sequenceをつなぎ、先ほど準備したMPQ_BlogとSQ_Blog01を割り当てます。ひとまずこの状態で一度実行します。
MPQ_Blogを開くと、中にSQ_BlogというJobが追加されます。
これで、QueueにJobが追加されLevel Sequenceが設定された状態になりました。
ただし、現時点ではconfigとLevelが初期状態のままです。
そこで次は、このJobにconfigを割り当てます。
もう一度Editor Utility Widgetを開いて、Set Configurationノードを接続、TargetをつないでIn Presetに作成したconfigを割り当てます。ここで再度実行します。
すると、Queueに先ほどとは別のJobが追加されました。
Settingsには、Set Configurationノードで割り当てたconfigが割り当てられています。
Jobが追加されたことが確認できたら、このJobはレンダリングしないので削除しておきます。
最後に、まだレベルが初期状態なのでレベルの割り当て処理を追加します。
Create Job from SequenceノードからSet Mapノードを繋いでレンダリングしたいレベルをセットします。
これをコピーして、最初に作成したアセットから二つ目のシーケンサーとEveningレベルを割り当てて実行します。
Queueを確認すると、SQ_Blog01とSQ_Blog02の2つのJobが追加されており、それぞれに上記のノードで設定したLevel Sequence、config、Levelが割り当てられました。
ここまでの手順で、QueueにJobを作成し、Level Sequence、config、Levelの3点を設定完了しました。
4.BP実装その2 レンダリングを始める
次は、実際にこのQueueのレンダリングを走らせます。
Editor Utility Widgetを開いて、Movie Pipeline Queue SubsystemからLoad Queueノードを繋ぎ、MPQ_Blogを割り当てます。この状態で実行します。
Movie Render Queueウィンドウから他のQueueを選択している状態でも、MPQ_Blogに切り替わりました。
次はいよいよレンダリングの実行の部分を作成します。
Movie Render Queue SubsystemからRender Queue with Executorにつなぎ、In Executor TypeをMovie Pipeline PIE Executorに変更します。
Render Queue with Exectorを呼び出すとき、同名で2種類のノードがありますので間違えないように注意してください!
今回使うのは、Target is Movie Pileline Queue Subsystemの方です。
ここまでの実装で実行します。
すると、実行だけでレンダリングが始まり、2種類のシーケンサーとレベル、設定でレンダリングされました!
5.振り返り
今回作成したBPをすべてつなげるとこのようになります。
流れとしては以下の手順になります。
- Jobを作成しLevel Sequence、config、Levelを設定する
- 追加したQueueを読み込みレンダリングを始める
今回はMovie Render Queue自動化BPを解説しました。
分かりやすくするためノードを複製して組みましたが、配列や引数にすることでさらに柔軟な設計が可能になります。
次回の第3回では、当変換サービスで変換したUEプロジェクトの構成やマテリアルの機能などを紹介していきます。
それでは、次回テックブログ更新をお楽しみに!