CGBoxの一部の記事にはアフィリエイト広告が含まれております。
動画の埋め込み方法解説!Unity内で動画を再生してみよう
こんにちは!Unity内で動画を再生できたらいいのに…と思ったことがありませんか?
実はUnityには簡単に動画を埋め込むことができる機能が用意されているんです!
本記事ではUnity内に動画を埋め込んで再生する方法を解説していきます。
Unity内に動画を埋め込んで再生できる?
UnityにはVideo Playerという動画を埋め込んで再生する機能が用意されています。
Video Playerは特に追加のアセットなどをインストールしなくても使うことができます。
Video Playerを使えば下のように動画を簡単に埋め込むことができますよ。
2Dや3Dにも対応している?
Video Playerは2Dのプロジェクト、3Dのプロジェクト両方に対応しています。
本記事では3Dのワールドを例に解説していますが、
2Dのワールドでも同様の設定方法で動画を埋め込むことができます。
VideoPlayerコンポーネントで埋め込む方法
Unityには標準機能で動画を埋め込むことができるVideoPlayerコンポーネントが用意されています。
ここではそのVideoPlayerコンポーネントを使って動画を埋め込む方法を解説します。
埋め込みたい動画は、あらかじめUnity内のAssetフォルダにドラッグ&ドロップでインポートしておきましょう。
VideoPlayerの埋め込み方にはいくつか種類があります。
本記事では以下のような方法別に分けて解説していきます。
- メッシュに動画を埋め込む
- Render Textureに動画を埋め込む
- カメラに対して直接動画を再生する
メッシュに動画を埋め込む
メッシュに動画を埋め込むと、最も簡単に動画を埋め込むことができます。
まずは動画を埋め込むゲームオブジェクトを作成しましょう。
ヒエラルキー内で右クリック→3DObject→Quadを選択します。
Quadのインスペクター内のAddComponentからVideoPlayerを検索して選択しましょう。
次にVideoPlayerコンポーネントの設定をしていきます。
VideoClipにインポートしておいた動画ファイルをドラッグ&ドロップしましょう。
また、RenderModeがMaterialOverrideになっていることも確認しておきましょう。
ここまで設定できたらプログラムを実行してみましょう。
下のように動画を再生することができました。
動画の位置やサイズは、VideoPlayerを埋め込んだQuadのTransformのPositionやScaleから調整することができます。
Render Textureに動画を埋め込む
RenderTextureを使えば、オブジェクトに動画やカメラの映像などを映すことができます。
ここでは、このRenderTextureを使ってUIのRawImageに動画を映して再生する手順を紹介します。
まず、Assets内で右クリック→Create→Render Textureを作成しましょう。
このように新しいRenderTextureが作成されます。
次にヒエラルキー内で右クリック→CreateEmptyで新しいゲームオブジェクトを作成します。
ゲームオブジェクトのインスペクターから、AddComponentをクリックします。
VideoPlayerコンポーネントを検索し選択しましょう。
次にVideoPlayerの設定をしていきます。
VideoClipに動画ファイルを、TargetTextureに先ほど作成したRenderTextureをドラッグ&ドロップします。
RenderModeがRenderTextureになっていることも確認しておきましょう。
次に、ヒエラルキー内で右クリック→UI→Raw Imageを選択します。
下のようにRawImageのUIが作成されます。
最後に、RawImageのインスペクター内のTextureに先ほど作成したRenderTextureをドラッグ&ドロップしましょう。
ここまで設定できたらプログラムを実行してみましょう。
下のように動画を再生することができました。
動画を流すUIの位置や大きさは、RawImageインスペクター内のRectTransformから変更することができます。
カメラに対して直接動画を再生する
カメラに対して動画を直接映すこともできます。
この場合もまずはCreateEmptyからゲームオブジェクトを作成しましょう。
先ほどまでと同様にしてVideoPlayerコンポーネントをAddComponentしましょう。
次にVideoPlayer内の設定をしていきます。
RenderModeをCameraNearPlaneに変更します。
Cameraの項目にはMainCameraオブジェクトをドラッグ&ドロップしましょう。
次にVideoClipに動画ファイルをドラッグ&ドロップします。
ここまで設定できたらプログラムを実行してみましょう。
下のように全画面で動画が再生されます。
VideoPlayer内のAlphaから映像の透明度を変更することもできます。
Alphaを0.5にすると、下のように半透明の動画を再生することができました。
ここではCameraNearPlaneに動画を埋め込みましたが
CameraFarPlaneに設定することで動画を背景のように扱うこともできます。
Youtube動画を埋め込んで再生する方法
Unity内にYoutube動画を埋め込んで再生することもできます。
下のように、VideoPlayer内のSourceからURLを選択してください。
URLの項目に動画のURLを入力することで動画を再生することができます。
ただし直接YoutubeのURLを指定してもUnity内で再生できる形式にはなっていません。
Githubで公開されている以下のツールを利用することで再生できます。
注意点として、こちらのツールはYoutubeライブの再生には対応していません。
設定の具体的な手順は下の記事を参考にしてみてください。
おすすめアセット
Youtube Video Player + Youtube API
こちらのYoutube Video PlayerはYoutubeライブにも対応した、Youtubeの動画を埋め込むことができるアセットです。
有料アセットではありますが設定も簡単であらゆるYoutube動画を再生することができるので
Youtube動画を埋め込む時にはぜひ使いたいアセットです。
Simple Video Player
Simple Video Playerは、Unity標準のVideoPlayerをさらに使いやすく機能を拡張できるアセットです。
画像のように一時停止やスキップ、音量調節や全画面表示など、動画再生時にあると嬉しい機能を追加することができます。
ストレスなく動画を再生するためにぜひ導入したいアセットです。
まとめ
本記事ではUnity内に動画を埋め込んで再生する方法について解説してきました!
動画を埋め込むことができると表現の幅が広がるのでぜひマスターしておきたいですね!