はじめに
Meta Quest3で、Unityのゲームを実行するための環境設定をしていきます。
かなり手間がかかりますが、頑張りましょう。
目次
・開発者モードへの変更
・Unityのセットアップ
・ビルドしてみる
・OVRCameraRigInteractionのカメラ操作をオフにする
開発者モードへの変更
MetaQuest3を開発者モードにしていきます。
[アプリのインストール]
まずはスマートフォンでMetaアプリ(MetaHorizon)をインストールしましょう。
開発で使うアカウントでログインしてください。
[ペアリング]
MetaQuest3とのペアリングを行います。
すでにペアリング済みの方はOKです。
別のアカウントでペアリングされている場合、開発者モードへ変更するためには既にペアリング済みのアカウントで行う必要があります。開発用のアカウントで最初にペアリングを行うためには工場出荷状態に戻す必要があるので工場出荷状態に戻す方法も記述します。
[工場出荷状態に戻す(FactoryReset)]
1,MetaQuest3の電源をオフ
2,電源ボタンと音量マイナスボタンを同時に長押し
3,Factory resetを音量ボタンで選択し、電源ボタンで決定
4,Yes, erase and factory resetを選択し、決定
以上の流れで工場出荷状態に戻すことができます。
この後は初期セットアップの指示が出ますので、開発用のアカウントでペアリングを行ってください。
[アカウントの認証]
開発者モードへ変更するには組織に参加しておかなければなりません。
組織に参加する方法は既存の組織に参加するか、新規組織の作成を行うかの二つです。
今回は新規組織の作成を行います。
まずはスマートフォンのアプリからデバイスの選択をします。
右上のMetaQuest3のアイコンを選択し、ヘッドセットの設定を開きます。

設定画面で開発者モードを選択すると、認証を受けるための表示が出てきますのでスタートを選択します。


認証にはクレジットカードの登録か、SMSを使用して二段階認証を設定するかを行わなければなりません。今回はSMS認証を行います。指示に従って認証を行ってください。
続いて組織の作成を行います。
先ほどの飛ばされたサイトに戻り、組織の参加・作成の項目から組織の新規作成ページを開きます。

アプリに戻り、開発者モードの画面を見るとトグルスイッチに変わっていますので、スイッチを押して開発者モードをオンにしましょう。

[PCとMetaQuest3を接続]
開発者モードへ変更出来たら早速USBでPCに接続しましょう。その際、USBデバッグを許可しますかという警告を受けるので許可します。(このコンピューターから常に許可を押すと、今後は警告文が出なくなりますが、個人の責任で行ってください)
接続が成功していれば、Quest3というストレージが確認できます。

Unityのセットアップ
次にUnityで簡単な環境を作っていきます。
今回使用するバージョンです。
Unity 6 (6000.0.24f1)
エディターをインストールする際にAndroidSDKなどのコンポーネントなど必要になるものも一緒にインストールしておいてください。(私はチェックを入れられるところはすべて入れました)
Unity 6ではBuilt-inが無くなりURPかHDRPの二択になりました。MetaQuest3はAndroidで動くのでBuidする際はAndroidにプラットフォームを変更しなければなりません。その際、AndroidはHDRPに対応していないとエラーが出るので今回URPのプロジェクトを作っていきます。
やることをまとめていきます。
・Meta XR All-in-One SDKのインポート
・プラットフォームをAndroidへ変更
・XR Plugin Managementのインストールと設定
・Meta XR Project Setup Toolの修正リストの修正
順番にやっていきましょう。
[Meta XR All-in-One SDKのインポート]
AssetStoreで検索をかけるとMetaの開発で使えるツールがたくさん出てきますが、これ一つで結構です。インポートするとエディターの再起動を要求されるので再起動しましょう。

[プラットフォームをAndroidへ変更]
File -> Build Profilesを開いてプラットフォームの変更を行います。
Androidを選択しそのままSwitch Platformを押します。

ここでも再起動を要求されるので再起動します。

[XR Plugin Managementのインストールと設定]
Edit -> Project Settingsを開いてXR Plugin Managementタブを開きます。
Install XR Plugin Managementと表示されているはずですのでクリックしましょう。

インストールが完了するとPlug-in Providersが表示されるのでOculusにチェックを入れます。

チェックを入れるとXR Plugin Managementタブの下にOculusと表示されているので開きます。Target Devicesの欄にQuest 2だけチェックが入っていると思いますので、Quest 3にもチェックを入れます。

[Meta XR Project Setup Toolの修正リストの修正]
同じくProject SettingsからMeta XRタブを開きます。Checklistが表示され、色々な修正項目が表示されます。Outstanding IssuesとRecommended Itemsの右にあるFix AllとApply Allをそれぞれクリックしましょう。
以上でUnityのセットアップも完了です。
ビルドしてみる
やっと触れますね。ヤッター
とりあえずSampleSceneをそのまま使います。

Projectウィンドウの検索欄にOVRCameraRigと入力し、Search範囲をIn AssetsからIn Packagesに変更します。

検索結果にOVRCameraRigInteractionというプレハブがあるので、Hierarchyにドラッグアンドドロップで場に出します。

MainCameraは使わないので削除して、適当にオブジェクトを配置しました。

この状態でさっそくビルドしてみましょう。
Build Profilesを開いてAndroidタブを開きます。Run Deviceという項目があるのでOculus Quest3を選択します。

ここでOculus Quest3が表示されない場合は、右にあるRefreshを押すと表示されるかもしれません。
それでも表示されない場合は、そもそもMeta Quest3が認識されていない可能性があります。Metaアプリから開発者モードをオンオフしたり、USBを差しなおしたりしてもう一度Refreshを押してみてください。(これをしなかったので、一度超遠回りしました。)
Oculus Quest3を選択出来たらBuild And Runをクリックします。デフォルトの入力処理が対応してないので影響出るかもしれないと警告が出ますがいったん無視してYesを押します。

任意の場所に保存場所を設定してビルドを開始しましょう。
ビルドが完了すると、Meta Quest3にUnityのマークがついたアプリが表示されます。選択すると実際に動かせるようになっていると思います。
これで簡単な環境設定は終わりになります。
ここからは自由にカスタマイズしたり、不要な機能をそぎ落としたりして自身のゲームに沿うように調整していきましょう。
OVRCameraRigInteractionのカメラ操作をオフにする
OVRCameraRigInteractionはOVRCameraRigという本当にただカメラで見るだけのプレハブにインタラクション(コントローラーや手など)を取り付けたプレハブです。このプレハブは初期でスティックを操作すると回転させることができます。
使える場合は使ってしまってもいいのですが、コントローラーのDeviceVelocity(フレームあたりどのくらい動いたか)などの値が、元の向き基準なので、回転させた状態だとその分補正をかけないといけなかったりします。
ですのでこの機能をオフにする方法も記述しておきます。
まずはプレハブを解除しておきましょう。
変更を元のプレハブに適用させてしまうと、再度インポートしなおさないといけない場合があるので、今回に限らずアセットのオリジナルなものは複製したりプレハブを解除しましょう。
Hierarchyのプレハブを選択し、右クリックメニューからPrefab -> Unpack Completelyをクリックします。これで子オブジェクトまですべてプレハブを解除できます。

回転を管理するスクリプトは以下のオブジェクトにアタッチされています。
OVRCameraRigInteraction
-OVRCameraRig
--OVRInteractionComprehensive
---Locomotion <<< こいつ
このスクリプトを非アクティブにすると回転が出来なくなります。

まとめ
環境設定はこれを基本に、個別で変えたいところがあれば変えていただく形になると思います。
OVRCameraRigInteractionはカメラの回転以外にもいくつかインタラクションが設定されていますが、スクリプトを見れば大体わかるようになっているので確認してみてください。

