こんにちは、今日はUnityで動画を再生する方法についてまとめていきます。
Table of Contents
確認環境
Unity 2018.4.15f1
この記事で使用している動画ファイル
A Road That Leads to the Beach – Free Stock Video Footage | Coverr
https://coverr.co/videos/a-road-that-leads-to-the-beach-sKTibU8Rwh
動画を再生する方法
再生する動画ファイルのインポート
UnityエディタのProjectウィンドウに再生したい動画ファイルをドラッグ&ドロップするとビデオクリップとしてインポートされます。
ビデオクリップ – Unity マニュアル
https://docs.unity3d.com/ja/2018.4/Manual/class-VideoClip.html
描画するテクスチャの生成
Assets > Create > Render Texture からRender Textureを生成します。
Sizeプロパティは動画のサイズに合わせます。
再生するオブジェクトの生成
GameObject > UI > Raw Image からRaw Imageを生成します。
InspectorからRaw Image (Script)のTextureプロパティに先ほど生成したRender Textureを指定します。
Raw Imageのサイズも動画サイズや表示したいサイズに合わせて変更、親のCanvasについても必要に応じてサイズ等を変更します。
Video Playerコンポーネントの追加
生成したRaw ImageにVideo Playerコンポーネントを追加します。
SourceプロパティはVideo Clipに設定します。
このプロパティをURLにすることでURL指定での動画再生も行えます。
Video Clipプロパティにはインポートしたビデオクリップを指定します。
Render ModeはRender Textureに、
Target Textureには生成したRender Textureを指定します。
Play On Awakeにチェックを入れるとゲームの再生時にすぐ動画が再生されます。
再生して確認する
ここまでの設定が完了したらゲームを再生して、動画が再生されるか確認します。
動画が再生されない場合
Raw ImageがCanvasの子になっているか
Rawa ImageはCanvasオブジェクトの子要素になっていないと画面に表示されません。
オブジェクトがカメラの範囲内にあるか
ターゲットプラットフォームでサポートされている形式か
Unityが対応しているファイル形式は以下で確認できますが、ビルドした際にターゲットのプラットフォームで対応されている形式かどうか確認します。
ビデオファイルの互換性 – Unity マニュアル
https://docs.unity3d.com/ja/2018.4/Manual/VideoSources-FileCompatibility.html
Supported Media Formats in Media Foundation – Win32 apps | Microsoft Docs
https://docs.microsoft.com/ja-jp/windows/win32/medfound/supported-media-formats-in-media-foundation?redirectedfrom=MSDN
ターゲットプラットフォームで対応していない場合、Unityのビデオクリップのインポート設定でTranscodeのチェックを入れることにより、Unity側でエンコードすることで再生できる場合があります。