Note ! 本記事は公開から1年以上経過しています。

  • Windows / UE における H.265(HEVC)のデコード可否は OS・GPU・ストア拡張機能の組み合わせに依存します。公式の対応表を確認してください。
  • Media Player まわりの推奨コンテナとコーデックは UE の版で変わります。該当バージョンのメディアドキュメントを参照してください。
  • 配信先やエンコードツールごとに要求されるプロファイルは更新されます。

2024年1月8日UE5.3.2を使った記事です。

UE5のレベル内に動画をアクター(スクリーン)に配置して再生する方法を紹介します。

動画を配置して再生する方法は大きく2つあります。

古い方法は動画を読み込んでブループリントを設定して再生される方法です。

新しい方法はMedia Plateを使う方法です。

まずMedia Plateから紹介します。

動画の基礎知識として、コンテナとコーデックがあります。コンテナはmp4やmovなど拡張子っぽい入れ物のことです。コーデックはH265やH264など圧縮方法です。UE5ではmp4を使ったほうがトラブルが少ないのでオススメです。mp4でH265を使うのがよいでしょう。 Media Framework の操作ガイドUnreal Engine 5 で Media Framework を使用するための操作ガイドのリンク集のUE5ドキュメントも参照です。 https://docs.unrealengine.com/5.3/ja/working-with-media-in-unreal-engine/

Media PlateでUE5のレベル内に動画をアクター(スクリーン)に配置して再生する方法

古い方法は、いろいろ面倒な作業をしましたがUE5からMedia Plate アクタを使うと簡単にできるようになりました。とても簡単です。 Media Plate アクタUE5ドキュメントも参照 https://docs.unrealengine.com/5.1/ja/the-media-plate-actor-in-unreal-engine/ まずUE5のコンテンツフォルダーの中に、適当な動画用のフォルダーを作ります。「エクスプローラで表示する」などを選び実際のフォルダーを表示します。APKファイルで書き出すときにコンテンツフォルダーの中に実際の動画がないとパッケージ化されないのでフォルダーに動画を配置する作業をしています。 作ったフォルダーに動画をドロップして移動します。ドロップした動画をコンテンツブラウザー内の対象のフォルダーにドロップして、ファイルメディアソースとなった動画をプレビューエリアにドロップするだけです。 制御関連もブループリントを作る必要がなくなりました。右側のパネルから設定できます。テストで動かすなら初期設定でよいです。 スクリーンの形状もより簡単に調整できるようになりました。自動アスペクト比にチェックが入っていれば、動画素材のサイズに自動で合わせてくれます。簡単ですね。手動で設定もできます。 APKで書き出す際に動画として機能させるために動画のURLの設定を確認します。ファイルメディアソースをタブルクリックします。 ファイルパスの右に「!」が出ていたら、参照しているURLではAPKに動画をパッケージ化できないことを示しています。UE5のコンテンツフォルダーの中に移動したmp4を参照するようにします。 参照URLが、ディスクトップ上のフォルダー等を参照している場合は、パッケージ化ができないので注意です。 APKに書き出したら動画として見れました。これで完了です。簡単!!

古い方法でUE5のレベル内に動画をアクター(スクリーン)に配置して再生する方法

UE5のレベル内に動画をアクター(スクリーン)に配置して再生する古い方法を紹介します。動画を読み込んでブループリントを設定して再生される方法です。3840×1080の24p動画を作成しました。32:9のワイドな映像です。コンテナはmp4でコーデックはH265です。 Movies等の適当なフォルダーを作ります。 Moviesフォルダーを右クリックして、「エクスプローラーで表示する」を選択します。実際のリアルなフォルダーを開くためです。APKで書き出す場合に、実際のUE5のコンテンツフォルダー内に動画がある必要があります。 Moviesフォルダーに動画を移動します。 Moviesフォルダーから、動画をUE5のコンテンツブラウザーにドロップします。 コンテンツブラウザー内を右クリックして、メディアプレイヤーを追加します。 ビデオ出力MediaTextureアセットにチェックを入れます。自動でテクスチャーをつくってくれます。 メディアプレイヤーを開きます。動画ファイルをクリックして、再生されるか確認します。コーデックなど再生できない場合は、Electra Playerなどを使う方法もあります。ここでは説明しません。 問題なく再生できたらレベルブループリントを開きます。 左下の変数の+を押して、適当な変数名をつけます。 変数の型(Booleanをクリック)をMedia Playerにします。そのままオブジェクト参照型を選びます。 レベルプリント内(イベントグラフ)で右クリックをして、Open Sourceを追加します。※出てこない場合は、状況に合わせた表示のチェックを外します。 変数のMediaをレベルプリント内にドロップします。Get mediaを選びます。 Event BeginPlayとMediaとOpen Sourceを次のように繋げます。 いったんコンパイルを押します。 コンパイルを押すと、Mediaの右側のデフォルト値が選択できるようになります。 先ほど作ったメディアプレイヤーを選びます。 Media Sourceのアセットを選択します。 動画のファイルソースを選択します。 保存、コンパイルをして完成です。 テストのためのスクリーンを用意します。Planeを追加しました。 32:9になるように、サイズなど適当に調整します。 メディアテクスチャーを貼り付けます。適宜サイズ調整をします。 プレビュー...メニューから、Androidの「プロジェクトをパッケージ化」で書き出し完了です。 新しいMedia Plateを使うと簡単に動画を再生できます。その動画を細かく制御したい場合は、古いやり方のようにブループリントで再生等を管理する方がよいのかもしれません。

関連記事