ランタイム ビルドでムービー レンダー キューを使用する

配布されたビルドでムービー レンダー キューを使用して、エンド ユーザーのデバイスでムービーを作成する方法を説明します。

Choose your operating system:

Windows

macOS

Linux

Unreal Engine 4.26 以降では、 ムービー レンダー キュー を使用してランタイム ビルドでムービーをレンダリングし、 ブループリント を使ってユーザーのコンピュータにファイルを出力することができます。特定のターゲット ハードウェアから品質の高い映像をレンダリングするのに便利です。

ワークフロー

Movie Pipeline Queue Engine Subsystem ノードを使ってブループリントでムービー レンダー キューにアクセスすることができます。

MRQSubsystemNode.png

このサブシステムは レンダリングする ジョブ のリストを含む キュー が特徴です。ジョブにはそれぞれ 1 つ以上の ショット と、ショットをレンダリングするために使用する

[設定](AnimatingObjects/Sequencer/Workflow/RenderAndExport/HighQualityMediaExport/Reference)
を含む、そのジョブ特有の コンフィギュレーション が含まれます。映像をレンダリングするには、ジョブのリストをビルドし、それらをキューにアロケートし、キューを処理するためにムービー レンダー キュー サブシステムの エグゼキューター を呼び出す必要があります。

手順

ランタイムでシーケンサーの映像をレンダリングするには、使用するアプリケーションで以下の手順を行う必要があります。

  1. Movie Pipeline Queue Engine Subsystem ノードを作成します。その出力ピンをクリックしてドラッグし、キューへの参照を取得するために Get Queue ノードを作成します。

    EngineSubsystemRef.png

  2. Get Queue ノードの Return Value をクリックしてドラッグし、 Allocate New Job を呼び出します。これでジョブがキューに追加されます。

    AllocateNewJob.png

  3. Return Value をクリックして Allocate New Job ノードへドラッグして、そのジョブの参照を取得します。 Set Sequence を呼び出し、それを再生するレベル シーケンスの soft object path につないだら、次に Set Map を呼び出し、シーケンスが置かれているレベルの soft object path につなぎます。ジョブが開始すると、ムービー レンダー キューは指定されたマップをロードし、指定されたシーケンスを開始します。

    SetSequenceAndMap.png

  4. Allocate New Job の Return Value を再びクリックしてドラッグし、 Get Configuration を呼び出してジョブの設定への参照を取得します。

    GetConfig.png

  5. Get Configuration の Return Value をクリックしてドラッグし、 Find or Add Setting by Class を呼び出して新しい設定を追加します。 In Class 入力のドロップダウンをクリックして変更する設定を選択します。Find or Add Setting by Class ノードの Return Value をクリックしてドラッグすることで、これらの設定のプロパティを編集することができます。

    CreateSettings.png

    エディタのみの機能に依存するムービー レンダー キュー設定もあり、それらはランタイム ビルドで使用することはできません。詳細については後述の 制限 セクションを参照してください。

  6. アロケートするジョブに対して、手順 2 から 5 までを繰り返して行います。

  7. 完了したら、パイプライン キュー エンジン サブシステムへの参照を取得し、 Render Queue with Executor を呼び出します。 In Executor Type MoviePipelineInProcessExecutor に設定します。このノードが、ムービー パイプライン キュー サブシステム内にビルドしたキューを処理し、エグゼキューターへの参照を返すようにエグゼキューターに指示します。

    RenderQueueWithExecutor.png

    MoviePipelineInProcessExecutor はアプリケーションのランタイム ビルドに特別に使用される Executor クラスです。その他の Executor クラスは、プレイ イン エディタ中など、別のケースで使用されます。

  8. エグゼキューターがキューの処理を完了したときにイベントを呼び出すには、Render Queue with Executor の Return Value ピンをクリックしてドラッグして、 Bind Event to On Executor Finished Delegate を呼び出します。次に、キューが終了した後で実行するように、イベントをこのノードにつなぎます。

    BindEventOnRenderFinish.png

ジョブを呼び出す

エグゼキューターから Cancel Current Job を呼びだして、エグゼキューターが実行中のジョブを取り消して、次のジョブへ移ることができます。 Cancel All Jobs を呼び出すと、キューのジョブが取り消されます。

CancelingJobs.png

エグゼキューターをカスタマイズする

エグゼキューターには、キューの処理方法を制御するために変更することができる設定があります。

Construct Object ノードを使って、エグゼキューターを手動で構築することができます。 Movie Pipeline In Process Executor を使用する クラス として選択し、参照を作成している新しいエグゼキューター インスタンスの アウター として Movie Pipeline Queue Engine Subsystem へつなぎます。

ConstructExecutor.png

このノードの Return Value を使用して新しく構築したエグゼキューターの設定を編集したり、イベントをデリゲートにバインドすることができます。次に Render Queue With Executor ではなく Render Queue With Executor Instance を呼び出し、エグゼキューターを In Executor ピンにつなぎます。

ChangeExecutorSettings.png

シーケンサーをリロードせずに現在ロードされているレベルで実行するには、エグゼキューターの Use Current Level 変数を True に設定します。この設定によって、レベルを最初からやりなおさなくても、再生中に行われた変更を維持が維持できるようになります。

UseCurrentLevel.png

デバッグ ウィジェットを変更する

デバッグ ウィジェット はレンダリング中にムービーのプレビュー フレームを表示する UI ウィジェットです。エグゼキューターから Debug Widget Class を設定することで、デバッグ ウィジェットを変更することができます。

SetDebugWidgetClass.png

この値を None に設定すると、デフォルトのデバッグ ウィジェットが使用されます。 Widget Blueprint を作成し、 Parent Class MovieRenderDebugWidget に設定することで、自分だけのカスタム デバッグ ウィジェットを作成することができます。

MovieRenderParentClass.png

このカスタム ウィジェットを使用するエグゼキューターの Debug Widget Class に選択することができます。

UsingCustomDebugWidget.png

制限事項

エディタ固有の機能に依存している設定は、ランタイム ビルドでは使用することができません。このようなプラグインには、以下のものがあります。

+ FinalCut Pro XML 出力フォーマット
+ オブジェクト ID レンダリング パス
Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
キャンセル