今回はVR上での動画再生についてです。

プロジェクトを作成

Google VRが動作するように基本的なプロジェクトを作成します。
作成方法はここを参考にしてみてください。

VideoPlayer用のSDKを組み込む

動画再生は"Google VR for Unity" SDKを組み込んだだけでは、再生できない状態になっています。
追加でVideoPlayer用のSDKを組み込む必要があります。

VideoPlayer用のSDKは、先の"Google VR for Unity" SDKを組み込むことで、以下の場所にパッケージが置かれています。
"Assets" - "GoogleVR"配下の"GVRVideoPlayer.unitypackage"

これを"Google VR for Unity" SDKと同じようにインポートします。



GvrVideoPlayerTextureをアタッチ

動画を表示するためのGvrVideoPlayerTextureをGameObjectにアタッチします。ただし、これをアタッチするGameObjectはMesh Rendererをアタッチしている必要があるので、"Quad"などのプリミティブな"3D Object"に設定します(※)。
※ こちらでは"Quad"と"Sphere"で試してみました。
またGvrVideoPlayerTextureのプロパティの"Video Type"と"Video URL"に再生したい動画のURLの種別を設定します。
Video Type Video URLに設定できる値
Dash Dash形式のストリーミングコンテンツのURL
例: https://storage.googleapis.com/wvmedia/clear/h264/tears/tears_hd.mpd
HLS HLS形式のストリーミングコンテンツのURL
Other ローカルフォルダに格納されているコンテンツのパス
例: file:///storage/emulated/0/Movies/example.mp4

[2018.02.01追記(START)]
詳細なバージョンまで特定できていませんが、GVR SDK for Unity v1.120.0(※)では、もうひと手間必要になりました。
※ もっと古いバージョンでもひと手間必要な可能性があります。
GvrVideoPlayerTextureをアタッチしたGameObjectにshader「GoogleVR/Video Unlit Shader」を含むmaterialを設定する必要があるようです。
materialを追加するのが面倒な場合は、GoogleVR SDKに含まれている以下のmaterialを使用することでも対応可能です。
名称概要表示イメージ
GoogleVR/Materials/Video/VideoMono両目同じ映像が流れる
GoogleVR/Materials/Video/VideoStereo1つの映像を上下半分にして、別々に流れる
[2018.02.01追記(END)]

あとはGvrVideoPlayerTexture.Playを実行すると再生されますが、コールするタイミングが早すぎると失敗し且つGvrVideoPlayerTexture.IsPausedもfalseが返却される状態になってしまいます。
この場合、GvrVideoPlayerTexture.Playはfalseを返却してくれるので、戻り値を見て対応した方がよいです。

VideoControls

先のGvrVideoPlayerTextureをアタッチするところまでで、再生/停止自体は可能ですが、Player用のUIが欲しい場合は、デフォルトUIとして、VideoControlsプレハブが提供されているので、これを追加すると良いです。
VideoControls.PlayerプロパティにGvrVideoPlayerTextureをアタッチしているGameObjectを設定することで、VideoControlsプレハブから動画の再生・停止などを実行することができます。

サンプルアプリ

ここにサンプルアプリを置きました。 試してみる場合は、以下の手順で確認してみてください。
  1. ここから環境をクローン
  2. サブモジュールが2つ組み込まれているので、それぞれを取り込む
  3. ブランチをタグ"v0.0.4"に切り替える
  4. 「Google VR for Unity」(v1.7.00)のパッケージをここから取得し、先の環境にインポート
  5. インポートすると、Assets/GoogleVR配下に"GVRVideoPlayer.unitypackage"ができているので、こちらもインポート
  6. 環境をビルドし、アプリをインストール
  7. 起動するとメニューが表示されるので「Video Player」を選択
  8. 画面中央の灰色の長方形か画面下部の再生(▶)ボタンをクリックすると動画の再生が始まります

参考サイト

Streaming Video Support

コメントの投稿