Unreal Engine で Bink Video を使用する

Bink Video を使用して動画を見せる方法の概要。

Bink Media プラグインは、Unreal Engine 4.27 以降に組み込まれています。これは、すべての Unreal プラットフォーム (NDA プラットフォームを含む) をサポートしています。

インストール

  1. エディタで [Edit (編集)] > [Plugins (プラグイン)] を選択し、Bink を検索して、プラグインを有効にします。必要に応じて Unreal Engine を再起動します。

    画像をクリックして拡大表示します。

  2. Bink Video ファイルを Unreal Engine プロジェクト ディレクトリ内の「Contents/Movies」ディレクトリにコピーします。

    Bink ファイルは、「Engine/Binaries/ThirdParty/Bink」ディレクトリにある Bink 2 Encoder for Unreal (Bink2ForUnreal.exe) を使用して作成します。 実行ファイルをダブルクリックし、変換するビデオ ファイルを選択して、[Bink it!] をクリックします。すると、変換が実行されます。ほとんどのユースケースで自動設定がうまく機能します。

    The Bink 2 Encoder for Unreal

  3. プロジェクトの「.uproject」ファイルをダブルクリックすると、警告ダイアログが表示され、プラグインがないためにプロジェクトを再ビルドするかどうかを尋ねられます。再ビルドの実行を確認すると、プロジェクトがロードされた状態で Unreal Engine が再起動します。

  4. これで、「Content/Movies」ディレクトリにある Bink ファイルを再生できるようになります。

Unreal Engine の動画タイプで Bink を使用する

Unreal Engine には、フルスクリーン スタートアップ動画、ゲーム内の非スタートアップ動画という 2 つの異なるタイプの動画があります。以下で説明するように、各タイプの使用方法は少し異なります。

フルスクリーン スタートアップ動画をセットアップする

まず、他のすべての動画プレイヤー プラグインを無効にする必要があります。無効にしなかった場合、有効な MPEG-4 プレイヤーで Bink 動画ファイルを再生しようすると、何もエラーが出ずに失敗してしまいます。

これを行うには、[Edit] > [Plugins] に移動します。

画像をクリックして拡大表示します。

[Movie Player] にある Bink Media プラグイン以外のすべてのプラグインを無効にします。

次に、いくつかの動画を設定して、スタートアップ時に再生するようにします。

[Edit] > [Project Settings (プロジェクト設定)] に移動します。

画像をクリックして拡大表示します。

[Startup Movies (スタートアップ動画)] の横にある [+] ボタンをクリックし、リストを展開して動画を表示します。ここでは、複数の動画を順番に再生できます。次に、[…] ボタンをクリックして、再生するファイルを選択します。

[Edit] > [Project Settings] > [Bink Movies] の順にクリックして Bink 固有のオプションを表示します。

画像をクリックして拡大表示します。

ここには、Bink 固有のオプションがいくつかあります。

  1. Bink Buffer Mode:これは、動画の一部をローカルディスクからストリーミングするか、再生する前に動画全体を事前ロードするか、または動画全体が常駐するまでストリーミングを開始しないかを制御します。

  2. Bink Sound Track: これにより、サウンドの再生方法が決まります。いくつかのオプションがあります。

    1. SndNone: この Bink で音を再生しません。

    2. Snd Simple: デフォルト。このオプションは、Bink ファイルのファイル名に基づいて必要なものを判断します。

      • ファイル名が _51 で終わる場合は、Snd 51 オプションを使用します。

      • ファイル名が _51L で終わる場合は、Snd 51 Language Override オプションを使用します。

      • ファイル名が _71 で終わる場合は、Snd 71 オプションを使用します。

      • ファイル名が _71L で終わる場合は、Snd 71 Language Override オプションを使用します。

      それ以外の場合は、[Sound Track Start (サウンドトラックの開始値)] で指定された Bink トラックを再生します (デフォルトではトラック 0)。

    3. Snd Language Override:このオプションは 2 つのトラックを再生します。

      • トラック 0 のオーディオ。通常はバックグラウンド ミュージック/エフェクトです。

      • [Sound Track Start] で指定されたトラック。通常は言語トラックです。

    4. Snd 51:このオプションは、[Sound Track Offset (サウンドトラック オフセット)] (デフォルトでは 0) で指定されたトラックから始まる 6 つのモノラル トラックをシステムで再生します。したがって、4 つの言語に完全にローカライズされた 5.1 チャンネルのトラックがある場合は、24 の Bink トラックをミックスし、[Sound Track Offset] 設定を使用して、再生するオーディオトラックの適切な範囲を指定することになります。

    5. Snd 51 Language Override:Snd 51 Language Override:このオプションは、オフセット 0 から始まる 6 つのモノラル バックグラウンド / エフェクト トラックを再生し、次に [Sound Track Start] の値で指定された 1 つのモノラル トラックを言語トラックとしてセンター チャンネルで再生します。したがって、このオプションで 4 つの言語を使用している場合、10 個のオーディオトラック、5.1 チャンネルのバックグラウンド ミュージック / エフェクト トラック、そして 4 つの異なるセンター言語トラックを持つことになります。

    6. Snd 71:このオプションは、[Sound Track Offset] (デフォルトでは 0) で指定されたトラックから始まる 8 つのモノラル トラックをシステムで再生します。したがって、4 つの言語に完全にローカライズされた 7.1 チャンネルのトラックがある場合は、28 の Bink トラックをミックスし、[Sound Track Offset] 設定を使用して、再生するオーディオトラックの適切な範囲を指定することになります。

    7. Snd 71 Language Override:このオプションは、オフセット 0 から始まる 8 つのモノラル バックグラウンド / エフェクト トラックを再生し、次に [Sound Track Start]** の値で指定された 1 つのモノラル トラックを言語トラックとしてセンター チャンネルで再生します。したがって、このオプションで 4 つの言語を使用している場合、12 個のオーディオトラック、7.1 チャンネルのバックグラウンド ミュージック / エフェクト トラック、そして 4 つの異なるセンター言語トラックを持つことになります。

  3. Bink Sound Track Start: Bink の動画には、複数の異なるサウンド トラックを使用できます。このオプションを使用すると、再生するサウンド トラックを指定できます。

  4. Bink Destination Upper Left / Lower Right これは、動画をレンダリングする四角形を指定します。これを使用すると、形をレターボックスに強制したりすることができます。

ゲーム内 (非スタートアップ) 動画をセットアップする

ゲームレベル自体で動画をレンダリングすることもできます。テクスチャに直接レンダリングしてからゲームでそのテクスチャを使用するか、画面に直接レンダリングすることができます。Bink は、すべてのグラフィックスの後かつ UI の前にレンダリングするため、動画の上に字幕を描画できます。

これを行うには、[Content Browser (コンテンツ ブラウザ)] を右クリックし、[Miscellaneous (その他)] セクションの下に新しい Bink Media Player を追加します。

Create a new Bink Media Player

画像をクリックして拡大表示します。

Bink 固有の構成オプションは次のとおりです。

  1. Bink Buffer Mode これは、動画の一部をローカルディスクからストリーミングするか、再生する前に動画全体を事前ロードするか、または動画全体が常駐するまでストリーミングを開始しないかを制御します。

  2. Bink Sound Track これにより、サウンドの再生方法が決まります。シンプルなステレオから 7.1 サラウンド サウンドまで、さまざまなオプションがあります。

  3. Bink Sound Track Start Bink の動画には、複数の異なるサウンド トラックを使用できます。このオプションを使用すると、再生するサウンド トラックを指定できます。

  4. Bink Draw Style これを使用すると、テクスチャへのレンダリングのデフォルトの UE4 機能をオーバーライドします。それにより、UE4 レンダリングをバイパスして画面に直接レンダリングできます。

  5. Bink Destination Upper Left / Lower Right これは、動画をレンダリングする四角形を指定します。これを使用すると、形をレターボックスに強制したりすることができます。

  6. Bink Layer Depth 複数の動画を同時にレンダリングし、深さを設定することにより、動画が描画される順序を制御できます。

Bink 動画ファイル (*.bk2) は、「(ProjectName)/Content/Movies」フォルダに配置する必要があります。(ProjectName) はプロジェクトの名前です。これにより、すべての構成で最終ビルドに正しくコピーされるようになります。

コンテンツ ブラウザBinkMediaPlayer を右クリックし、[Create Media Texture (メディアテクスチャの作成)] を選択して、プレイヤーからテクスチャを生成します。次に、コンテンツ ブラウザBinkMediaPlayer_Tex テクスチャを右クリックし、[Create Material (マテリアルの作成)] を選択することで、このテクスチャを使用してデフォルトのマテリアルを作成できます。このマテリアルとテクスチャは、Unreal Engine の他のマテリアルやテクスチャと同じように使用できます。

Unreal 向け Bink のその他備考

マルチスレッド デコード

Unreal Engine 向け Bink Media プラグインは、マルチスレッド デコードをネイティブにサポートしています。実行時の CPU 数に応じて、解凍中に最大 4 つのスレッドを使用します。

デフォルトでは、Bink 2 Encoder for Unreal Engine は 4 つのビデオ スライスを使用してマルチスレッド時に最高のパフォーマンスを実現します。

シーク

Bink プラグイン関数 BinkPluginGoto を直接呼び出すことで、新しい再生位置を設定できます。通常、キーフレームにジャンプするか、途中ですべての間にあるフレームを解凍する必要があります (Bink プラグインはこれをバックグラウンドで実行します)。この際、CPU Bink が ms_per_process パラメータを使用した新しいフレームをシークするために費やす各フレームの量を制御できます。通常、フレームごとに 30 ミリ秒程度を使用すると、比較的高速にシークできます。

ビデオの深さ (描画中の並べ替え)

非スタートアップ動画オプションを使用して多数の動画のオーバーレイを描画している場合、[Depth (深度)] オプションでそれらが描画される順序を制御できます。これにより、Unreal Engine が動画を処理する順序に関わらず、動画を正しくスタックできるようになります。

レンダー ターゲットの場合、[Depth] は動画がレンダー ターゲットに描画される順序を制御しますが、レンダー ターゲットは通常 Unreal Engine によってシーンに描画されます。

字幕

字幕は、 「Subrip」 .srt ファイル形式でサポートされています。

srt ファイルを使用するには、 Bink 2 Video bk2 ファイルと同じディレクトリにファイルを含めます。 次の形式を使用してファイルに名前を付けます: <name of Bink2 video file>_<language<.srt このファイルには指定した言語の字幕が含まれている必要があります。

例えば、「Movies/example.bk2」ファイルがある場合、英語の字幕を含む 「Movies/example_en.srt」 というファイルが追加されることになります。

ステレオ動画

Bink は、3D 動画向けにも十分な速度で動作します。これを行うには、レンダー ターゲット パスを使用してから、画面に揃えられたクワッドに描画します。それぞれの目に対して、クワッドを調整して、クワッドの上半分またはビデオの下半分のいずれかで画面を埋めます。

Bink プラグイン API

Bink プラグイン API には他にも多くのコントロールがあります。シーク、一時停止などのカスタム コントロールが必要な場合は、binkplugin.h で任意の関数を呼び出すことができます。

タグ
Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
キャンセル