【Unity】【OculusQuest】立ってプレイするゲームを作る

OculusQuestはスタンドアロンVR機です。
せっかくなんですから、立ってプレイしたいですよね!?
そんなあなたの希望を叶える方法をご紹介します。

開発環境

OVRPlayerControllerを使う

atelier-hinata.hatenablog.com

↑の記事でご紹介しましたが、OVRPlayerControllerを使うとVR空間内を自由に移動することができます。
このコンポーネントUse Profile Dataというパラメータがありまして、プレイヤーの物理的な身長データを使用するかどうかを選択できます。
まずはこいつをONにしましょう。

f:id:s44511173:20191007145127p:plain

TrackingOriginをFloor Levelにする

次に、OVRCameraRigにアタッチされているOVRManagerのTracking Origin Typeを変更しましょう。

f:id:s44511173:20191007144854p:plain


これでオッケーです!
あとはプレイ前のガーディアン設定で、床の調整をしっかりとやっておきましょう。
コントローラを床にタッチさせることで、正確に検知することができます。

比較してみる

f:id:s44511173:20191007150921g:plain

f:id:s44511173:20191007150941g:plain

あああ、めっちゃ分かりづらい(汗

1個目の動画がUseProfileData=あり、TrackingOriginType=FloorLevel
2個目の動画がUseProfileData=なし、TrackingOriginType=EyeLevel

1mのキューブを床に配置しています。
なんとなく違いがお分かりいただけたでしょうか・・・。

結論

  1. 立ってプレイするアプリを作るには、OVRPlayerControllerのUseProfileData=あり、OVRCameraRigのTrackingOriginType=FloorLevelに設定する。
  2. OculusQuestに床位置をきちんと認識させるには、ガーディアン設定時にコントローラで床をタッチすると良い。
  3. ぶっちゃけ、設定はそのままでカメラの位置だけ上の方に設定するのでも良かったりするのかも・・・?(未検証)

 

 

↑↑↑ ぜひ遊んでみてください!↑↑↑