公式の手順を試しても真っ白のまま
https://docs.unrealengine.com/5.0/ja/play-a-video-file-in-unreal-engine/
上記の手順をとりあえずそのまま試してみたのですが、Planeに貼り付けたマテリアルは真っ白のまま…そもそもmp4が再生できていない感じがする。
Electra Playerを使うと良い
結論から言うと、WMFではなくElectra Playerを使うと解決しました。
フォーラムを見てみると、UE5のバージョンが問題だったり、DXI1じゃないとだめだとか色々書いてありましたが、ElectraPlayerを使ったら解決しました。
https://forums.unrealengine.com/t/error-with-video-input-to-media-player-ue5/508033
ElectraPlayerはプラグインを有効にすると使えます。
概要図
UE5で動画再生は下記のようなイメージです。
Materialとしてmp4を反映したら、Planeでもなんでも好きなものに設定すればOKです。
FileSourceMediaとmp4ファイルを紐づけする
mp4ファイルをUEで使えるように、content/Moviesに入れておきます。
これでおそらく起動時やインポート時に勝手にmp4.uassetみたいな感じで作成されているはず。
このuassetsがFileMediaSourceクラスとしてエディター側で確認できます。
FileMediaSourceを確認するとUrlにmp4本体が紐づけされているのがわかると思いますが、FileMediaSourceを開いて指定することが出来ます。
このとき、指定するmp4は英文字でなければ再生出来ないので注意。
MediaPlayerとMediaTextureを作成する
ContentBrowserで右クリックすると作成できる。
作成時にポップアップが表示されるので、チェックマークをつければMediaTextureも紐づけされた状態で作成されるのでチェックしましょう。
MediaPlayerを開くとFileMediaSourceを認識してくれていて、選択すると再生できるはず。
右上にもElectraPlayerと表示されていますね。
一応MediaTexture側も開いて、Details欄のMediaPlayer欄が正しく設定されているかどうかも確認してください。
Materialとして使えるようにする
次に、MediaTextureをMaterialに変換して、自由に使えるようにします。
Materialを作成したら、MaterialDomainを「User Interface」にします。
その後、生成されるFinal Colorに接続されたノードで、先程設定したMediaTextureを指定します。
LevelBPなどで再生するように設定する
後は実際にレベル上で再生されるようにBPを組むだけです。
レベルにPlaneなど配置して、そこに先程作成したmaterialを紐づければ再生されるようになります。
まとめ
UE5でレベル内で動画を再生する方法についてまとめてみました。
VR展示会を作るとか、ゲームのカットインみたいな感じで使えるのかな?という感じがしています。