Video


動画を再生する
宴3.0.6以上。Unity5.6.0以上が必須です。
古いバージョン(Unity2018.2より前)だと音が再生されません。
WebGLでは再生できません。
常に手前に表示する場合は、BGMコマンドや、BgOff、CharacterOffなどのコマンドと組み合わせて使ってください。

サンプル

リファレンス

Command 説明 Arg1 Arg2 Arg3 Arg4 Arg5 Arg6
Video 動画を再生する 動画ファイル名
DLする場合は拡張子も
動画を表示するカメラ名(UICameraなど) ループのTRUE/FALSE
空欄の場合FALSE
クリックによるムービースキップが可能かのTRUE/FALSE。
空欄の場合TRUE

動画ファイルの置き方

Resouces/プロジェクト名/Videoフォルダ以下に置いてください。
(Videoフォルダがない場合は作成してください)

また、Unityの透過付きの動画については、出力フォーマットに制限があります。詳しくはこちらなどが参考になるかと。

ビデオオブジェクトとの違い

ビデオオブジェクト機能を使えば、同じようにUnity5.6以降のVideoPlayerでの動画表示が可能です。
ビデオオブジェクトは他のオブジェクトと一緒に表示できる反面、メモリ負荷が高いです。
単純な全画面ムービーの場合は、こちらのVideoコマンドを使いましょう。

UnityのVideoPlayerに関しての諸注意

Unity5.6.0からUnityにVideoPlayerという新しい形式の動画機能が追加されました。
Unityの旧来の動画機能(MovieTexure)はモバイルではフルスクリーンムービーしか使えなかったり、ダウンロードに対応していないなど色々と問題が多かったため、それに代わるものとして新しく開発されたものです。
これに合わせて、宴も3.0.6から新しくVideoコマンドを作ってこの形式での動画機能を使えるようにしました。
ただし、宴ではなくUnity側のほうが色々と不安定なうえに情報がまとまっていないため、特定の環境や条件で動かなくなる可能性があります。
詳しくは以下にまとめました(新しく問題が発生した場合はなるべく追記していきます)
今のところは実験段階のつもりで使っていただければと思います。

音声の再生

音声の再生はUnity2018.2、宴3.4.7以上が必須になります。
それ以前のバージョンのUnityでは、VideoClip自体が音のインポートに対応していません。
それ以前のバージョンでは、BGMコマンドなどと併用して下さい。

WebGLは非対応

UnityのWebGLでは通常の動画再生をサポートしていないようなので、WebGLでの動画再生はできません。

UnityのドキュメントにはWebGLでのVideo再生についての記述がなく、サポートフォーラムなどで非対応と言われているだけなので、確かなことが分かりません。
https://forum.unity.com/threads/unity-5-6-0b4-issues-with-video-player-in-webgl.452092/

VideoClipを使わずに、別途用意した動画ファイルのURLを直接指定すれば再生可能という情報もあるのですが、
https://forum.unity.com/threads/getting-webgl-to-play-videos.575947/
再生する環境(ブラウザやOS)やセキュリティの設定、ファイルフォーマットの互換性などで再生できなくなるという情報もあり、どうすればいいのかはっきりしません。
https://forum.unity.com/threads/unity-video-player-not-working-in-chrome-webgl.629926/

Unity公式のドキュメントに正しいやり方の記述がないため、宴では非対応させていただきます。
Unity公式の記述でWebGLでも安定して再生可能だというやり方やを知っている人がいましたら、Q&Aなどにご連絡いただければと思います。

Unityの不具合について

Video機能は非常にUnity側のバグが多く、とても不安定です。(2019年現在)
情報共有のため宴側で把握した情報を追記していきますが、基本的には宴で対応できることではないので、不具合についてや仕様の確認などはUnity公式に問い合わせてください。

Unity2019.1~Unity2019.2.5では非対応

Unity2019.1のバグ(限られた条件でしかVideo再生できない)のため、バグが修正されるまではVideoの描画がされません。音声のみ再生されます。
この問題は、Unity2019.2.6以降で解決したようです。

Androidでは圧縮したAssetBundleの場合VideoClipを再生できない

これは当初不具合かと思われていたのですが、最近のUnityのスクリプトリファレンスに追記されていますので、どうもUnityの仕様のようです。
https://docs.unity3d.com/ScriptReference/Video.VideoPlayer.html
宴では、この問題の応急処置として、VideoのみResourcesからロードする仕組みを用意しました。
Utage\Scripts\ADV\Extra\AdvVideoLoadPathChanger.csを使うことで、ビデオファイルのロードパスなどを強制的に変更する処理を追加します。
以下のように、FileMangerにCustomLoadManagerとAdvVideoLoadPathChangerをAddComponentして
AdvVideoLoadPathChangerのRootPathに、ビデオをロードするResouces以下からの相対ディレクトリを設定してください。

AndroidではAdressableAssetSystemを使うとVideoClipを再生できない

これも、上記の「Androidでは圧縮したAssetBundleの場合VideoClipを再生できない」という仕様が原因のようです。
そのため、バグ報告へのUnity公式の対応としては「仕様」となっていて「動かないのが現在の仕様」という状況のようです。(対策はこれから考えるらしいです)
https://forum.unity.com/threads/how-to-play-video-from-adressable-assetbundle-on-android.685261/
https://issuetracker.unity3d.com/issues/android-loading-videos-from-assetbundles-fails-unless-its-uncompressed-and-loaded-from-file
https://forum.unity.com/threads/addressable-videos-not-working-on-android.588832/
宴で対応するには、UtageForAddressableCustomFileManager.csをさらに書き換えて、AndroidでVideoの場合のみ、Resourcesからロードする形にする必要があります。
もしこの対応が必要があればQ&Aにご連絡ください。
ただ、Unity側で対応する予定ではあるようなので、それを待ったほうが良いかもしれません。