Unreal Engine 4 (UE4)でMedia Textureを作って動画を流す
去年の夏、全天球動画(360°パノラマ動画)をUE4をつかってVR空間で見ようと作業していました。当時の自分は初めてUE4に触れ、まだ何もわからない状態で作業しているうちに色々な壁を前にして挫折してしまったので、今回はその中の1つであった動画の流し方を紹介します。
ネットで検索すれば色々記事が出てきますが、昔のものも多く、1つの記事を参考にしてもうまくいかないことがあったので、これだけで最低限はうまく動くようにできるようにしたいと思います。
まずは流す動画を準備していく
今回は空のプロジェクトにStarterContentを後から追加した状態から始めますが、各自のプロジェクトに動画を追加してもらっても問題ありません。
流したい動画をコンテンツブラウザへインポートする
次にコンテンツブラウザ内で右クリックし、Media → Media Player を選択
表示されるチェックボックス両方にチェックを入れ「OK」で作成。
この3つができていれば大丈夫です。
動画がちゃんと使えるかを確かめるなら、MediaPlayer(画像ではmyMediaPlayer)を開き、動画を再生してみてください。
次にどの動画を流すかを指示するためにBluePrintを書いていく。
今回は実行したら流れるようにするので、レベルブループリントで作成する。
レベルブループリントを開き、変数を作成
変数の型を「MediaPlayer」の「リファレンス」にする。
コンパイルし、デフォルト値を先ほど作ったMediaPlayerにする。
作った変数をドラッグ&ドロップし、ゲット(Get)で用いる
変数からOpenSourceノードを作成する
Media Sourceを自分でインポートした動画にする
実行されたら流すようにしたいのでBeginPlayにつなげる
動画の準備はできたので、次に再生する場所を設置する
StarterContentの中のShape_Planeをビューポート内に配置
位置や大きさを以下のようにするとちょうどよい
これで再生する場所もできたので、動画を貼り付ける
MediaPlayerのSoundとVideoの2つを選択し、先ほど配置したShape_Planeにドラッグ&ドロップする
自動的にマテリアルを作成してくれる。
これで実行すれば再生されるようになった
最後に
ここまでで動画は流せるようになったので、全天球動画をVRで見るためには、動画を貼り付けるものを内側にテクスチャが貼れる球体を用意し、インポートする動画を全天球動画に変更すれば大丈夫です。
今回は初歩的なUE4で動画を再生する方法を紹介しました。
これを使えばゲーム内でTVを作ったりすることが可能だと思いますので、試してみてください。