今回はTimeline上でビデオクリップ(mp4やwebmといったフォーマット)を再生してみます。
Unityでビデオを再生
UnityはUnity 5.6辺りでVideo Playerという機能が新しく追加されました。今回はそのVideo PlayerをTimeline上から制御するアプローチになります。
Timelineでビデオを再生
Timelineでビデオを再生するトラックは初期機能には含まれていないので、Default Playableから入手します。
利用するのはVideo Script Playable Trackです。
手順
まずVideo Playerを用意します。
- メニュー>Create >Video > Video Player
これでVideoPlayerが作成されます。
基本的にTimeline側では再生するアニメーションクリップやアルファ等は指定出来ますが、それ以外の項目…例えば”どういった方法で再生するのか”といった再生の根底にある項目はVideo Player側で制御します。
Video Player側の設定ではレンダリングの方法を指定します。
- Render ModeはCamera Near Plane
- CameraにMainCamera
ソースやビデオクリップの指定はココではしません。
Timeline側の設定です。
まずはVideo Script PlayableTrackを作成します。
- Assets > Create > Timeline
作成したTimelineアセットをシーンへドラッグ&ドロップ - Window > Sequencing > TimelineでTimelineウィンドウを開く
1で作成したGameObject(PlayableDirector入)を選択 - Add > Video Script Playable Track
- クリップリストを右クリックし、Add From Video Player
- 作成したクリップを選択し、Video Clipに再生したいビデオクリップを登録
これでTimelineを再生させると動画が再生されるようになります。
うまく再生されない場合はPreviewボタンを一旦OFFにして再度ONにすると再生されるようになることがあります。
各項目の説明はこんな感じです
- Video Player : 再生に使用するビデオプレイヤー
1クリップにつき1ビデオプレイヤーが必要 - Video Clip : 再生するビデオクリップ。URLは指定できない
- Mute : ミュートするかどうか
- Loop : ループするかどうか
- Preload Time : 事前にある程度、動画のバッファを読み込んでおく時間です
- Clip In Time : 開始時間を少しずらす設定みたいです。但しループ時は0秒からスタートです
なお、ビデオプレイヤーは基本的に使い回し出来ません。同じトラックに複数のクリップを置けるので、ビデオプレイヤーを複数のクリップで使いまわしたくなりますが、どうもそれは出来ないみたいです。
ビデオのフェード
表現の仕方にも依るのですが、ビデオを即座に出したり消したりするのではなく、フェードしながら出したり複数のカメラをフェードしながら切り替えるといった事をしたくなる事があるかもしれません。例えば演出とかで。
そのやり方を見ていきます。
まず大前提として、ビデオプレイヤーのRender ModeがCamera Near PlaneもしくはCamera Far Planeである必要があります。動画で半透明を使うために必要な措置です。
まずビデオのフェードを見ていきます。
これはEase In DurationやEase out Durationの設定と一致します。この時間の分だけ、アニメーションクリップがフェードしながら入ります。
なお半分以上の時間を指定することは出来ません。
- フェードイン・フェードアウトの時間だけEase In DurationやEase out Durationを設定する。
ビデオのブレンドも似たような設定です。ただし、1クリップ1ビデオプレイヤーの原則に従い複数のVideo Playerを用意する必要があります。
クリップ毎にVideo Playerを設定すれば、あとはアニメーションでやっているようにクリップ同士をブレンドします。これでアニメーションがブレンドされます。
問題
- Timelineで指定したVideo Clipが登録しっぱなしになります
- スクラブで動かす時、「進む(右にヘッドを動かす)」は兎も角「戻る(左にヘッドを動かす)」はマトモに動きません。その場合は一度クリップ外にヘッドを動かさないと動かいかもしれません。
そういった意味では、動画も含めて動きを調整したい場合はゲームを再生しながらの方が良いかもしれません。 - 音はゲームを再生しながらでないと出ない印象です