見出し画像

Quest3開発事始め(MRアプリの作成)

はじめに

Pico4で作成したものをSDKをOculus Integrationに変えてQuest3で動かしたりしていますが、座標以外はだいたいそのままで動きます。

ただ今後のことを考えるとちゃんとした開発手順を身につけるべきと考えました。

今回は正攻法でのQuest3アプリの作成を行います。

開発環境の構築手順

  1. Meta Quest Developer HubをインストールしてQuest3を登録する
    まず、Meta Quest Developer Hub(MQDH)をインストールし、Quest3を登録します。

  2. Quest3を開発者モードにする
    Meta Horizonモバイルアプリを起動し`メニュー → デバイス → Meta Quest3 → ヘッドセットの設定 → 開発者モード → 開発者モードのトグルスイッチ`をONにします。

  3. UnityHub、Unity(2022.3)をインストールする
    まだインストールしていない場合、UnityHubとUnity(2022.3)をインストールします。

  4. 3Dプロジェクトを作成する
    UnityHubから新しい3Dプロジェクトを作成します。

  5. Build Settingsを設定する
    `File → Build Settings`でPlatformを`Android`に変更し、Texture Compressionを`ASTC`に設定した後、`Switch Platform`をクリックします。

  6. Project Settingsを調整する
    `Edit → Project Settings → Player → Other Settings`でColor Spaceを`Linear`に、`Configuration → Scripting Backend`を`IL2CPP`に変更します。

  7. 必要なパッケージをインストールする
    Package Managerから`Meta XR All-in-One SDK`(この機会に非推奨となったOculus Integrationから乗り換えました)と`XR Plugin Management`をインストールします。

  8. Project Setup Toolで設定を修正する
    `Edit → Project Settings→ Meta XR → Project Setup Tool`でOutstanding issuesとRecommend Itemsが出なくなるまでFix All、Apply Alをクリックします。

※1のMeta Quest Developer Hub(MQDH)にQuest3を登録する際に問題が発生しました。登録したはずなのに、MQDHのDevice Managerに`Unauthorized`と表示され、認証されません。
USBケーブルの抜き差しやポートの変更、WiFi接続を試しても解決しません。最終的にはQuest3を再起動すると、起動時にUSBデバッグの有効化を尋ねるダイアログが表示されました。この際「このコンピュータを常に許可」を選択することをお勧めします。その後、順調に進行しました。

Meta Quest Developer HubでUnauthorizedが出たらQuest3を再起動

作成するアプリについて

Quest3を活かしてMRアプリを作成します。Meta XR Core SDKに含まれる`Mixed Reality Sample`を試してみましたが、パススルー画面には何も表示されませんでした。そこで、1からアプリを作成することにしました。


Building Blocksの使用

Meta XR SDKには`Building Blocks`という便利な機能があります。必要な機能をドラッグ&ドロップで追加していく仕組みです。

Building Blocks
  • Camera Rig(カメラ)

  • Passthrough(パススルー)

  • Controller Tracking(コントローラ追跡)

  • Scene Mesh(シーン情報)

  • Throwable Item(投げられるアイテム)

これらを追加しました。パススルーは、コードで組むと手間がかかる記憶がありますが、Building Blocksで簡単に実装できました。

Building Blocksを積んだだけの開発画面

Throwable Itemが表示されない問題

上記のブロックを配置した後に実行しましたが、`Throwable Item`が見えませんでした。原因は配置の位置で、`Y=1`、`Z=0.5`に設定すると表示されました。


実行結果

テーブルの上にキューブ(`Throwable Item`)が乗っています。これは、Quest3が読み取った部屋の情報(シーン情報)に合わせて、`Throwable Item`がテーブルの上に正しく配置された結果です。

一応MR

簡単にMRアプリを作成することができました。ただし、`Throwable Item`が掴めないという問題が残っており、これは今後調査が必要です。


まとめ

Building Blocksで効率的にMRアプリを作成できることが分かりました。

これは色々と捗りそうですね。

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