Meta QuestデバイスはPCのGPUを必要とせずに使用できるため、アプリ開発についてもMacやGPU非搭載のWindows PCで行うことができます。
ただ、GPU搭載WindowsPCであれば、Unityで開発するときUnity Editor上でQuestデバイスの実機の挙動を確認できます。
最近のUnityの傾向なのか、スクリプトの軽微な変更やシーン保存、apkビルドでとにかく待たされるため、とても有効だと思います。
しかし、調べた限り、M1 Macではこの機能を使用できません。
・eGPUはIntel Macのみ
・Parallel DesktopのWindows11でMeta Quest Linkアプリのインストールが失敗した
そこで、Metaから提供されているMeta XR Simulatorを使って、Unity Editorでシミュレートしながら開発する方法を調べました。
既出の内容が多いですが、Unityのバージョン変更によって名称やHirarchy View上の階層構造などが変わるため、備忘録としてまとめておきます。
使用した環境
・M1 Mac (OSX 14.5)
・Windows11 on Parallel Desktop
・Unity 2022.3.31f1
・Meta XR Core SDK 63.0.0
・Meta XR Simulator 62.00
2024/7/16追記
UnityのLibraryフォルダのキャッシュ問題などにより (Meta社情報)、7/16時点ではMeta XR Simulator v66.01をインポートしても使用できませんでした。
7/16時点では、Meta XR Core SDK 66.00、Meta XR Simulator 62.00の組み合わせであれば使用できました。
- 1. XR Device SimulatorとMeta XR Simulatorは異なる仕組み
- 2. パッケージインポートなどの準備
- 3. テレポートとボタン入力ができるアプリを作って動作確認
- 4. その他:Meta Quest Developer Hubでアプリインストールが終わらない
- 5. おわりに
1. XR Device SimulatorとMeta XR Simulatorは異なる仕組み
途中まで誤解していたのですが、似たような仕組みが2つあります。
XR Device Simulator : Unity Technologiesが提供。XR Interaction Toolkitのパッケージに入っている。Editor実行時にGame Windowの左下部分にコントローラの画像を含む操作パネルが表示される
Meta XR Simulator:Metaが提供。Meta XR SimulatorをAsset Storeからインポートして使用する。Editor実行時に、専用のWindowが表示される。
私の環境では、なぜかXR Device Simulatorではうまく操作ができませんでした。そこで、以後はMeta XR Simulatorについて説明します。
2. パッケージインポートなどの準備
Unity で新規プロジェクトを作成し、Package ManagerでMeta XR Core SDK、Meta XR Simulatorをインポートしておきます。
Oculus > Meta XR Simulator > Activate を選択しておくと、Editor実行した時にMeta XR Simulatorが立ち上がります。
3. テレポートとボタン入力ができるアプリを作って動作確認
floorを作ってテレポートができる、VRコントローラのボタンを押したら弾が発射される、というシンプルなアプリを作ってEditor実行できるか試しました。
テレポートについてはこちらの記事の通りに進めました。かなり設定が複雑ですが、空っぽのシーンから開始してこの通りに進めることで、テレポート移動ができるようになりました。
コントローラの入力については、こちらの記事の通りに進めました。
if(OVRInput.GetDown(OVRInput.Button.SecondaryIndexTrigger))
このようにすることで入力を取ることができます。他のボタン入力をとるための変数も記事の中に書かれています。
OVRInputについては、とくにスクリプトの中で宣言せずともそのまま使えました。(久しぶりに使うので忘れてました)
Meta XR Simulatorでの動作確認について、ボタン入力はすぐに反応しました。一方、テレポートはキー操作が難しかったのか、処理が重いのか、テレポート先を選択してから移動するまで時間がかかることがありました。
しかし、このアプリをMeta Quest3で試したときは、瞬時にテレポートできたので、Simulatorの操作の問題と思われます。
gifにしているのでわかりづらいですが、Meta Quest3の画面です。瞬時に移動していることが確認できます。
4. その他:Meta Quest Developer Hubでアプリインストールが終わらない
上記のテレポート機能を確認するため、Meta Quest3の実機にアプリ転送しました。
Questデバイスでは、Meta Quest Developer Hub (MQDH) というアプリを使ってインストールすると簡単です。
MQDHの機能の1つである、「Device Manager」上でapkをドラッグすると実機にインストールできます。しかし、ドラッグしたあとでQuestデバイスがスタンバイに入ると、インストールが終わらない可能性があります。
たまたまドラッグ直後にFailedという文字が出てInstallingが表示されたのですが、5分近く経過してもインストールが完了しませんでした。
この場合、MQDHを閉じてQuestデバイスをPCから取り外し、再度MQDH起動、Questデバイス接続、apkドラッグの後でスタンバイにならないようにすることで解決できました。
5. おわりに
最近UnityでQuestアプリ開発を調べていますが、同じ機能が複数あったり、ブログに書かれている当時と名称や構成が変わっていることが多い、公式マニュアルの情報が最新とも限らないため、正しい情報の選択に時間がかかる印象です。
ひとまずビルドから動作確認、基本的な制御方法まではわかってきたので、もう少し勉強を続けてみます。