Unreal Engine 4 (UE4)でMedia Textureを作って動画を流す

去年の夏、全天球動画(360°パノラマ動画)をUE4をつかってVR空間で見ようと作業していました。当時の自分は初めてUE4に触れ、まだ何もわからない状態で作業しているうちに色々な壁を前にして挫折してしまったので、今回はその中の1つであった動画の流し方を紹介します。

 

ネットで検索すれば色々記事が出てきますが、昔のものも多く、1つの記事を参考にしてもうまくいかないことがあったので、これだけで最低限はうまく動くようにできるようにしたいと思います。

 

まずは流す動画を準備していく

今回は空のプロジェクトにStarterContentを後から追加した状態から始めますが、各自のプロジェクトに動画を追加してもらっても問題ありません。

 流したい動画をコンテンツブラウザへインポートする

f:id:ymhr126:20170808035953p:plain

 

 次にコンテンツブラウザ内で右クリックし、Media → Media Player を選択

f:id:ymhr126:20170808040051p:plain

 

表示されるチェックボックス両方にチェックを入れ「OK」で作成。

f:id:ymhr126:20170808040116p:plain

 

この3つができていれば大丈夫です。

f:id:ymhr126:20170808040143p:plain

 

動画がちゃんと使えるかを確かめるなら、MediaPlayer(画像ではmyMediaPlayer)を開き、動画を再生してみてください。

 

次にどの動画を流すかを指示するためにBluePrintを書いていく。

今回は実行したら流れるようにするので、レベルブループリントで作成する。

 

レベルブループリントを開き、変数を作成

f:id:ymhr126:20170808040354p:plain

 

変数の型を「MediaPlayer」の「リファレンス」にする。

f:id:ymhr126:20170808040431p:plain

 

コンパイルし、デフォルト値を先ほど作ったMediaPlayerにする。

f:id:ymhr126:20170808040538p:plain

 

作った変数をドラッグ&ドロップし、ゲット(Get)で用いる
変数からOpenSourceノードを作成する

f:id:ymhr126:20170808040615p:plain

 

Media Sourceを自分でインポートした動画にする

f:id:ymhr126:20170808041207p:plain

 

実行されたら流すようにしたいのでBeginPlayにつなげる

 

動画の準備はできたので、次に再生する場所を設置する

StarterContentの中のShape_Planeをビューポート内に配置

f:id:ymhr126:20170808041302p:plain

 

位置や大きさを以下のようにするとちょうどよい

f:id:ymhr126:20170808041323p:plain

 

これで再生する場所もできたので、動画を貼り付ける

MediaPlayerのSoundとVideoの2つを選択し、先ほど配置したShape_Planeにドラッグ&ドロップする

f:id:ymhr126:20170808041429p:plain

 

自動的にマテリアルを作成してくれる。

f:id:ymhr126:20170808041448p:plain

 

これで実行すれば再生されるようになった

f:id:ymhr126:20170808041507j:plain

 

最後に

ここまでで動画は流せるようになったので、全天球動画をVRで見るためには、動画を貼り付けるものを内側にテクスチャが貼れる球体を用意し、インポートする動画を全天球動画に変更すれば大丈夫です。

 

今回は初歩的なUE4で動画を再生する方法を紹介しました。

これを使えばゲーム内でTVを作ったりすることが可能だと思いますので、試してみてください。