見出し画像

Oculus Quest 2+UnityでVR:Oculus Integrationを導入

 前章でOQ2の姿勢をUnityのカメラに同期させる方法を見て来ました。もちろんそれでも開発は進められるのですが、色々調べてみるとOculusが公式で提供している「Oculus Integration」を導入した方がOQ2の開発が色々便利になるようです。

 そこでこれを導入してみる事にします。

Oculus Integrationの導入

 Oculus IntegrationはOculusの開発に特化したAPIやモデル、各種機能を提供してくれるアセットです。以下のリンク先から導入できます:

サイズがかなり大きいのでUnityにImportする時にかなり時間がかかります。Importが終わるとAssetフォルダ直下に「Oculus」というアセットフォルダが追加されます。別のプロジェクトで流用する時は毎度DLするとシンドイので、このフォルダをコピーしましょう。

なぜOculus Integrationを使うのか?

 UnityはVR用のAPI等を提供してくれているのですが、それだとOculus固有の機能を使う事が出来ません。また、カメラやモーションコントローラの制御などもより扱いやすくしてくれます。要は面倒臭い事は回避したいなぁ~っという事です(^-^;

OVRCameraRigでカメラを置き換え

 Oculus Integrationを導入したので、試しにカメラをセットしてみましょう。前章でUnityのデフォルトカメラにTracked Pose Driverコンポーネントをアタッチしましたが、これを無くしてOculusが提供する「OVRCameraRigプレハブ」に差し替えます。

 OVRCameraRigプレハブはAssets/Oculus/VR/Prefabsフォルダ下にあります。これをヒエラルキにドロップします:

これだけで全章と同様にOQ2の姿勢とカメラが同期します。ご機嫌~(^-^)

 プレハブの構成をさらっと見ていきます。さらっとですが割と大切です。

〇 OVRCameraRig

 カメラのトラッキング情報をまとめているOVRCameraRig、OculusのVR環境を管理するOVRManager、Unity Editor上でカメラの動きをエミュレート出来るOVR Headset Emulatorをコンポーネントに持ちます。OQ2の主要な情報が集約しています:

〇 TrackingSpace

 下にぶら下がっているカメラやモーションコントローラの起点となるトラッキング座標です。コンポーネントは特に付いていません。プレイヤーの位置を変更する時にはこのノードのTransformを操作する事になります。

〇 LeftEyeAnchor、CenterEyeAnchor、RightEyeAnchor

 それぞれにUnityのカメラがアタッチされています。UnityのTrackedPoseDriverと同じように毎フレームOQ2の姿勢がTransformに反映されます。

〇 TrackerAncker

 何もコンポーネントが付いていないノードです。おそらくプレイヤーの位置をベースとする色々な物(アバターモデルとか)をこの下にぶら下げる為に設けられているのかなと思います。

〇 LeftHandAnchor、RightHandAnchor

 左右のモーションコントローラの位置や回転情報が毎フレームこれらにTransformに反映されます。その下にぶら下がっているAnchorの下に手用のモデルを置けば、VRの世界に手が見えるようになります。

 このように、OVRCameraRigをヒエラルキに置けば、OQ2やOculus Touchの姿勢をすぐに活用出来るようになります。同じ事を自前でやると泣きそうになるので大変ありがたいですね。

 次回はOculus Touchの情報を取ってみます。

いいなと思ったら応援しよう!