RICHO THETA で撮影した 360 度動画を Oculus Quest 1 で表示するメモです。
こんな風に動きます
よし!Oculus Quest 1 で自分で撮影した THETA の 360 度ビュー画像をカメラに貼り付けて呼び出せた!絵的に自分が背後に居て自分と目が合うのが不思議な感じ。#OculusQuest1 #Oculus #THETA #Unity pic.twitter.com/VD4lJXzE38
— Tanaka Seigo (@1ft_seabass) January 4, 2021
開発環境
- Windows 10
- Oculus Quest 1
- Unity 2020.1.17f
これで進めています。また、今回の記事で説明するナレッジには直接関係ないですが、最近のセットアップでハマり通したメモも残しておきます。
あくまで、このアプリを書き出す前の準備なので、開発環境がちゃんとセットアップされている方は大丈夫です!
基本的なナレッジはこれ
Unityで360度動画を見る方法(Unity2018.1.0) を参考にすすめれば、まず Unity Editor 上で動くようになってテンションが上がります。
- Video Player を Empty オブジェクトを作成して関連付け
- Video Player コンポーネント でビデオデータをテクスチャ 上で再生できる。
- Render Texture と Material を準備
- Video Player 描画先である Render Texture を Material として用意して Skybox で使えるようにする
- Render Texture は、リアルタイムに更新される特殊な テクスチャ
- Main Camera に Skybox で、さきほどの Material を適用
- Skybox は広大に広がる世界に見せるため、画面全体を覆うラッパー
といったことを行ってます。
しいていえば、全部「Movie360」で管理すると、良く分からなくなるので、命名規則を以下の通り調整しました。
- Video Playerの名前
- Movie360
- Render Textureの名前
- Movie360RenderTexture
- Materialの名前
- Movie360Material
として、混乱を少なくしました。Video Playerは、Movie360VideoPlayer でもよかったかもしれない。
Oculus Quest 1 で動かす
先ほどの記事は、Oculus Goでは動いていたようですが、Oculus統合パッケージのインポート をして OVRCameraRig のプレハブをドラッグアンドドロップすると、このように、地平線が出てしまってうまく適用されません。
これは、Main Camera が OVRCameraRig と共存してしまうとダメなやつと思い出しました。
ということで、Main Camera 削除して Oculus のカメラで使われている CenterEyeAnchor のカメラの設定をします。
Skybox を適用しなおします。
こんな感じ。
こうすると、Unity Editor で動作が再度確認することができ、 Build And Run して Oculus Quest 実機で見てみると冒頭にあるような 360 度動画が確認できます!