【VR開発日記#6】XR Interaction Toolkitで本格VR化

前回まではMeta Horizonの開発者登録からAndroidビルド環境の構築、そしてQuest 2実機への初転送までを進めました。しかし、アプリを起動して目の前に現れたのは、暗闇の中にポツンと浮かぶ「巨大な2D平面スクリーン」でした。

今回は、この2D化トラブルの解消から、VR開発あるあるの「首の動きに画面が追従してしまう罠」の突破、そして360度見渡せる本格的なVR空間として部屋へ降り立つまでの手順をまとめます!

Step 1:OpenXR とコントローラープロファイルの設定

平面スクリーンを脱出し、アプリを3DのVR空間としてレンダリングするには、Unity側で「OpenXR」のプラグイン設定を完了させる必要があります。

Project Settings > XR Plug-in Management のAndroidタブで OpenXR にチェックを入れた後、詳細設定を開きます。

画像
OpenXR Settings / Interaction Profiles未設定

設定画面を開くと、Interaction Profiles(操作プロファイル)のリストが空になっており、画面上に警告メッセージが出現します。

Interaction Profiles の「+」ボタンをクリックし、Oculus Touch Controller Profile を追加します。さらに下部の OpenXR Feature Groups 内にある Meta Quest Support にチェックを入れます。

画像
Oculus Touch Controller Profile の追加

Step 2:画面が頭にくっついてくる!「トラッキング未適用」の恐怖

OpenXRの設定を終え、期待を胸に「ビルドして実行」を試したものの、ここで第二のトラブルが発生します。

「部屋の中に入れた……けど、首を振ると部屋全体が一緒についてくる!?」

3D空間にはなったものの、頭を上下左右に動かしたり後ろを振り返ったりしても、目の前の景色が画面に張り付いたまま移動してしまいます。

原因は、シーン内に配置されているカメラが普通の Main Camera のままだったことです。通常のカメラでは、Meta Quest 2の頭部位置・回転トラッキング情報(6DoF)がカメラのトランスフォームに反映されません。

Step 3:XR Interaction Toolkit の導入と XR Origin の配置

頭の動きに合わせて自由に見回せるようにするため、Unity標準のVRカメラリグシステムを導入します。

  1. 上部メニューの Window > Package Manager を開きます。
  2. 表示を Unity Registry に切り替え、XR Interaction Toolkit を検索してインポートします。
画像
Package Manager / XR Interaction Toolkit インストール

インポート完了後、ヒエラルキーにあった既存の Main Camera を削除し、右クリックメニューから XR > XR Origin (VR) をシーンに追加します。

画像
シーン上の XR Origin 配置完了画面

XR Origin の Transform 位置(Position)を部屋の中央(X:0, Y:0, Z:0)に合わせれば、VR視点の設定は完了です!

ついに悲願のVR体験成功!と今後の課題

すべての設定を終え、再度「ビルドして実行」を行います。

Quest 2を装着すると、ついに「自分が作った8畳の部屋の中に立っている」感覚を味わうことができました!

Blenderで作り込んだ空間が、現実のスケール感で目の前に広がる感動は一塩です。

今回達成できたことと次の課題

  • できたこと: 実機でのVR表示、頭部トラッキングによる360度視点移動
  • 残された課題: 首を振ることはできるが、「部屋の中の移動」がまだできない

空間内に立つことはできたので、次は部屋の中を自由に歩き回れるようにしたいところです。

次回は、コントローラーでの移動機能(Locomotion)の実装に挑戦します!

コメント

タイトルとURLをコピーしました