スタジオブロス TECH BLOG

スタジオブロススタッフからの最新ツール情報やチュートリアル・TIPSなどを紹介します

3DCG変換サービス Movie Render Queue自動化Blueprintの解説

本記事は、スタジオブロスが提供する3DCG変換サービスで活用している自社ツール等を紹介する特集の第2回目です。

変換サービスのパイプラインの一つとして作成した、Movie Render Queue自動化のBlueprint(以下、BP)について解説していきます。

 

今回は、大量のシーケンサーに対して手動でQueueに追加してconfig設定して...といった、Movie Render QueueまわりのBPの解説になります。

シーケンサーについての説明は省略しますが、詳しく知りたい方はおかずさんの記事が非常に参考になるので、ご覧になってください。

猫でもわかる UE5 シーケンサー自動生成!【Unreal Engine Meetup in Nagoya Season2 Vol.1】 | ドクセル

今回は、以下の流れで解説いたします。

  1. Movie Render Queueをざっくり解説
  2. アセットの準備
  3. BP実装その1 Movie Render Queueに追加する
  4. BP実装その2 レンダリングを始める
  5. 振り返り

 

1.Movie Render Queueをざっくり解説

ではまず、Movie Render Queueはどのような構成になっているかざっくり解説します。

Movie Render Queueは、Movie Pipeline QueueにJobを作成し、JobにLevel Sequence、Level、Movie Pipeline Primary Config(レンダリングの設定)の3点を設定することで機能します。

Movie Render Queueに3つのJobを作成した場合

 

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を割り当てます。ひとまずこの状態で一度実行します。

Jobを追加するQueueと、レンダリングするLevel Sequenceを割り当てる

 

MPQ_Blogを開くと、中にSQ_BlogというJobが追加されます。
これで、QueueにJobが追加されLevel Sequenceが設定された状態になりました。

ただし、現時点ではconfigとLevelが初期状態のままです。

QueueにJobが追加されている

 

そこで次は、このJobにconfigを割り当てます。
もう一度Editor Utility Widgetを開いて、Set Configurationノードを接続、TargetをつないでIn Presetに作成したconfigを割り当てます。ここで再度実行します。

configを割り当てる

 

すると、Queueに先ほどとは別のJobが追加されました。
Settingsには、Set Configurationノードで割り当てたconfigが割り当てられています。

Settingsの欄に割り当てたconfigのMPPconfig_Blogが表示されている

Jobが追加されたことが確認できたら、このJobはレンダリングしないので削除しておきます。

 

最後に、まだレベルが初期状態なのでレベルの割り当て処理を追加します。
Create Job from SequenceノードからSet Mapノードを繋いでレンダリングしたいレベルをセットします。

レベルを割り当てた状態

 

これをコピーして、最初に作成したアセットから二つ目のシーケンサーとEveningレベルを割り当てて実行します。

ノードを複製して2つ目のLevel SequenceとLevelを割り当てた状態

 

Queueを確認すると、SQ_Blog01とSQ_Blog02の2つのJobが追加されており、それぞれに上記のノードで設定したLevel Sequence、config、Levelが割り当てられました。

2種類のJobがQueueに追加されている

 

2つ目のJobはコピーしたノードで割り当てたLevel, Level Sequenceになっている

ここまでの手順で、QueueにJobを作成し、Level Sequence、config、Levelの3点を設定完了しました。

 

4.BP実装その2 レンダリングを始める

次は、実際にこのQueueのレンダリングを走らせます。

Editor Utility Widgetを開いて、Movie Pipeline Queue SubsystemからLoad Queueノードを繋ぎ、MPQ_Blogを割り当てます。この状態で実行します。

レンダリングするQueueを割り当てる

 

Movie Render Queueウィンドウから他のQueueを選択している状態でも、MPQ_Blogに切り替わりました。

他のQueueを選択している状態

Queueがロードされて表示が切り替わった

 

次はいよいよレンダリングの実行の部分を作成します。

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の方です。

図で示した上のTarget is Movie Pipline Queue Subsystemを使用します。

 

ここまでの実装で実行します。

すると、実行だけでレンダリングが始まり、2種類のシーケンサーとレベル、設定でレンダリングされました!

レンダービューには一つ目のjobのレンダリングが表示された

二つ目のjobのレンダリングでは2つ目のLevel, Level Sequenceでレンダリングが表示された

 

5.振り返り

今回作成したBPをすべてつなげるとこのようになります。

流れとしては以下の手順になります。

  1. Jobを作成しLevel Sequence、config、Levelを設定する
  2. 追加したQueueを読み込みレンダリングを始める

BP全体の図

 

今回はMovie Render Queue自動化BPを解説しました。

分かりやすくするためノードを複製して組みましたが、配列や引数にすることでさらに柔軟な設計が可能になります。


次回の第3回では、当変換サービスで変換したUEプロジェクトの構成やマテリアルの機能などを紹介していきます。

それでは、次回テックブログ更新をお楽しみに!