Language:
Page Info
Skill Level:
Engine Version:

ブループリントでビデオの再生方法を制御する

アンリアル エンジン 4 プロジェクト内でのビデオ再生に加えて、さまざまな ブループリント ノードを使って、プレイヤーによるビデオの制御を可能にすることができます。

この操作ガイドでは、ビデオの早送り、巻き戻し、ポーズ、停止、再生開始のそれぞれの機能を作成して、プレイヤーがビデオの再生方法を制御する仕組みを説明します。

FinalHero.png

すべてのプレイヤー プラグインが早送り / 逆再生に対応しているわけではありません。詳細は、メディア フレームワークの技術リファレンス をご覧ください。

ステップ

ここでは Starter Content Enabled (スターター コンテンツを有効にした状態)Blueprint Third Person Template プロジェクトを使います。 再生するビデオが必要です。右クリック して サンプル ビデオ をダウンロードすることもできます。

  1. [コンテンツ ブラウザ]Sources パネルを展開し 「Movies」 という名前で新規フォルダを追加したら右クリックして [Show in Explorer] を選択します。

    ControllingPlayback_01.png

  2. サンプル映像 (対応する映像) をパソコン上のプロジェクトの 「Content/Movies」 フォルダにドラッグします。

    ControllingPlayback_02.png

    ビデオ コンテンツをプロジェクトでパッケージ化およびデプロイするために、コンテンツは常にプロジェクトの Content/Movies フォルダに置かれている状態にしておく必要があります。

  3. プロジェクトで、Media Player と関連する Media Texture アセットを作成し、それぞれに 「MediaPlayer」「MediaPlayer_Video」 と名前を付けます。

  4. 「Video」 という名前で File Media Source アセットを作成し、その中で、ファイル パスStep 2 に追加されたビデオに指定します。

    ControllingPlayback_03.png

  5. Media Player アセットを開き、[Play on Open] オプションを無効にします。

    ControllingPlayback_04.png

    この例では、Media Source を開くと自動的に再生開始になるのではなく、プレイヤーが再生の制御を行えるようにします。

  6. メイン エディタの [Modes] パネルの [Basic] から、[Plane] をレベルにドラッグし、自由にサイズ変更します。

  7. MediaPlayer_Video テクスチャを Plane にドラッグし、そのプレーンの [Details] パネルに Media Sound Component を追加し、Media Player アセットを使用する設定にします。

    クリックしてフルサイズで表示

  8. メイン ツールバー で [ブループリント] ボタンをクリックして、次に [Open Level Blueprint (Level ブループリントを開く)] を選択します。

    ControllingPlayback_06.png

  9. Level Blueprint「Media Player Object Reference」 型の 「MediaPlayer」 という変数を作成し、MediaPlayer アセットに指定します。

  10. Ctrl を押しながら MediaPlayer 変数をグラフへドラッグし、右クリックして Open SourceEvent Begin Play を使って Video File Media Source アセットを開きます。

    ControllingPlayback_07.png

  11. Up キーボード イベントを追加して Flip Flop に接続し、Media Player 変数を引き出して、PlayPause を下図のように使用します。

    ControllingPlayback_08.png

    プレイヤーが Up 矢印キーボード キーを押すと、Media Source が再生を開始し、もう 1 度押すとビデオがポーズします。

    ポーズは Play Rate が 0.0 に設定された状態です。ただし、すべての Media Sources がポーズをサポートしているわけではありません (たとえば、Web Cam その他のビデオ キャプチャ ハードウェア ソース)。 Can Pause ブループリント ノードを使って、Media Source のポーズ対応を決定することができます。

  12. Left および Right キーボード イベントを追加して、Media Player 変数を引き出し、左向きのキーは -2、右向きのキーは 2Set Rate を使います。

    ControllingPlayback_09.png

    これにより、Player が Left 矢印キーボード キーを押すとビデオの再生レートを「-2」に設定することができます (値 1.0 の倍速でのビデオ逆送り再生が、通常の順送り再生です)。 右向き矢印のキーボード キーを押すと、ビデオは通常の再生速度の倍速で順送り再生されます。プレイヤーが巻き戻しキーあるいは早送りキーを押す回数を決めたり、再生レートを倍速、4 倍速、または 6 倍速以上に調整するためのブループリント ロジックを追加することができます。

    1.0 以外の Play Rates がプレイヤーのプラグインによってサポートされていたとしても、実際に選択できる再生レートは使用中の Media Source に依存します。 サポート対象のレートは、Get Forward Rates または Get Reverse Rates Blueprint ノードで確認できます。Support Rate 関数にレートを入力してもサポート対象かどうかを判断できます。

    SupportRates.jpg

    [Thinned] レートと [Unthinned] レートには違いがあります。Thinned はいくつかのフレームがスキップされるレートであり、Unthinned はすべてのフレームをデコードするレートです。

  13. [Down] キーボード イベントを追加して Flip Flop へ接続し、Media Player リファレンスを引き出して Get Time 関数コールを使います。

    ControllingPlayback_10.png

    Get Time 関数コールは、格納しておいてビデオを再度開いて再生を開始する時に使用する現在の再生時間を返します。

  14. Get Time ノードの Return Value を右クリックして Stop Time という名前の変数へ昇格させて、以下のようにすべてのノードを Close 関数コールへ接続します。

    ControllingPlayback_11.png

    これによりキーボードの下向き矢印を押すと Media Player が終了しますが、Media Player が停止した現在時刻は位置は変数に格納されます。

  15. Flip FlopB ピンを引き出して、Open Source ノードを使い、Media SourceVideo Media Source に設定します。

    ControllingPlayback_12.png

    これにより、ビデオが再度開きます。ただしビデオの冒頭から開きます。これについて説明します。

  16. Media Player 参照を引き出して、Assign On Media Opened Event Dispatcher を使って以下のように接続します。

    ControllingPlayback_13.png

    すると Media Source が完全に開いた時に接続しているイベントのみを呼び出す Event Dispatcher が作成されます。 Media Source に命令を伝える前に Media Source が開いていることが確認することができるので、Media Player にコマンドを発行する時のグッドプラクティスです。 Media Source を開いた直後に Media Player に直接コマンドを発行すると、Media Source が完全に開いていることが保証されず、失敗を引き起こす可能性のあるコマンドを受け取る可能性があります。

  17. Media Player 参照を引き出して、Seek function followed by the Play 関数の後に Seek 関数を呼び出します。

  18. Stop Time 変数を Seek ノード上の Time ピンに接続して、Seek ノードと Play ノードを OnMediaOpened イベントに以下のように接続します。

    ControllingPlayback_14.png

    これで、プレイヤーが下向き矢印キーを押すと、Media Player の終了前に現在時刻が格納されるようになりました。 もう 1 回押すと Video Media Source が開きます。完全に開くと、ビデオの再生前 (再生の開始前) に指定された Stop Time へ移動します。

  19. Level ブループリント を開き、エディタのメイン ツールバーから [Play] ボタンを押して再生します。

最終結果

上向き下向き左向き右向き 矢印キーを使って、ビデオの再生を調整します。

上向き矢印 はビデオの再生 / 一時停止、下向き矢印 はビデオの終了 / 再開、左向き矢印 は巻き戻し、右向き矢印 は早送りです。