[Unity]Unity→Meta Questでアプリを作る2024　XR all-in-oneを試してみる

# はじめに
2014年ごろからOculusSDK、GoogleCardBordSDK、OVRSDKと開発ツールがどんどん進化していますが、改めて現在のXRアプリを作る方法を確認してみました。

Unityのダウンロードに関しては割愛しますが、事前準備の項で紹介があります。。

# 1. 環境
+ Windows11　23H2
+ NVIDIA　GeForce RTX3080
+ Unity 2021.3.35
+ Unity Hub3.8

# 2. 事前準備
## 2.0 準備のまえに確認
　自分の環境が開発に適しているか、Metaの[はじめに](URL "https://developers.meta.com/horizon/documentation/unity/unity-before-you-begin")を必ず確認しましょう。
+ TypeCケーブルはあるか、通信用か、5GB以上のスループットが推奨されているようです。
+ OSは十分なバージョンか
    + Windows 10以上(64ビットバージョンのみ)
    + macOS Sierra 10.10以上(x86のみ)(機能が限定された形でサポートされます)
    ※上記”はじめに”より引用 \
+ Unityは2021以上か、Android Build Supportは入っているか
    ※ここでUnityのダウンロード方法も紹介されています。

## 2.1 Meta XR SDKのダウンロード
　公式ページの[Meta XRパッケージをインポートする](URL "https://developers.meta.com/horizon/documentation/unity/unity-package-manager")を参考にしています。

　[Asset Store](URL "https://assetstore.unity.com/packages/tools/integration/meta-xr-all-in-one-sdk-269657?locale=ja-JP&srsltid=AfmBOorF24QeJw8BDypHguLDQWJTKcKTRdsdgBiQshoyBM3Dean8t72X")から開発に必要なSDKを無料で購入します。

![スクリーンショット 2024-10-24 161310.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3884006/796cb6dc-7d9d-13f3-140a-893a3e8c0802.png)


　Asset StoreでMetaと検索するとたくさん出てきますが、すべて含まれているパッケージのようなので、ここから始めていきます。

## 2.2 Meta XR SDKのインポート
　Unity Hubから「New Project」→「3D(Built in RenderPipeline)」を選んでプロジェクトを作ります。

 ![スクリーンショット 2024-10-24 161537.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3884006/b01b45bd-eef5-c79e-f06c-47b78bfd23b1.png)

プロジェクトができたら、画面上部のタブから
「Window」→「Package Manager」→「My Assets(Window左上のタブから)」
→先ほど購入した「Meta XR All-in-One SDK」を選択して「import」します。

:::note info
　この記事を書いているときにパッケージの更新が入り、
 v69が配信されていました。MetaQuest3Sへの対応とOpenVRとの互換性の改良のようです。
:::

## 2.3 （任意）Meta Quest Developer Hub(MQDH）のダウンロード
　Unityで作ったVRアプリを確認するさいに、このアプリを入れておけばアプリのデプロイ、端末のコントロール（再起動、画面確認など）が簡単になるので、入れておくと便利です

Meta公式の[Meta Quest開発者ハブの利用を始める](URL "https://developers.meta.com/horizon/documentation/unity/ts-odh-getting-started")を参考に入れてみましょう。

[windows](URL "https://developers.meta.com/horizon/downloads/package/oculus-developer-hub-win"),[mac](URL "https://developers.meta.com/horizon/downloads/package/oculus-developer-hub-mac")からソフトを選んでダウンロードします。

下記はページから接続法の引用です。

:::note info
MQDHの機能を使うには、まず自分のMeta Questヘッドセットを開発マシンに接続する必要があります。
1. Meta Horizonモバイルアプリを開き、[Menu (メニュー)] > [Devices (デバイス)]に移動します。
2. 自分が使っているデバイスを選択します。次に、[Headset Settings (ヘッドセットの設定)] > [Developer Mode (開発者モード)]を選択してから、[Developer Mode (開発者モード)]をオンにします。
3. USB-Cケーブルを使用してヘッドセットをコンピューターに接続し、ヘッドセットを装着します。[Settings (設定)] > [System (システム)] > [Developer (開発者)]に移動し、[Enable custom settings (カスタム設定を有効にする)]と[MTP Notification (MTP通知)]をオンにします。
4. USBデバッグの許可を求められたら、[Always allow from this computer (このコンピューターからは常に許可する)]を選択してください。
5. USB-Cケーブルを使ってヘッドセットをコンピューターに接続し、ヘッドセットを装着します。
6. ヘッドセット上で表示されるプロンプトで、[Allow USB Debugging (USBデバッグを有効にする)]と[Always allow from this computer (このコンピューターからは常に許可する)]を選択してください。
:::

# 3. サンプルのダウンロード
　サンプルがパッケージの中に入っていないので、まずはダウンロードが必要です。Unityから下記の順で選んでいきます。
「Window」→「Package Manager」→「Packages：　（画面左上）」→「in Project」
→「Meta XR Core SDK」

スクロールして下のほうに、「Samples」があります。そこから「Sample Scenes」の「import」を押してインポートします。

 ![スクリーンショット 2024-10-24 164505.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3884006/63cfb514-921d-0add-b6ec-cac4134dab19.png)

　インポートが終わったら、UnityのProjectWindowからサンプルシーンを選びます。
今回は「HandTest」を試してみます。

![スクリーンショット 2024-10-24 165336.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3884006/9e710d17-b4a8-4468-2842-7c4fcad8ff23.png)

# 4. ビルド
 今回はサンプルをそのままビルドしてみます。作法がいくつかあるので確認していきます。

## 4.1 XR plugin のインストール
　まずはXR pluginのインストールを進めます。
 「File」→「Project Settings」→「XR Plug-in Management」
 →「～install」

![スクリーンショット 2024-10-25 165840.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3884006/8003308a-c4c1-39b7-479a-2e3154eeb222.png)

 ※すみませんがインストールした後の画面です

 そのあとに「Oculus」にチェックを入れます。
 ※OpenXRでもビルドできますが、Oculusパッケージと同居は推奨されていないようなので、SetUpToolsではじかれました。
 様々なロード、確認、再起動が出てきますが、許可をしていけばOKです。

## 4.2 プロジェクトのセットアップ
　同じく「Project Settings」から「Meta XR」を選択します。
 描画設定やら現在のエラーなどが表示されますが、「Fixed all」「Apply All」で設定を適用していきます。

 いままである程度覚えて設定しないといけなかった部分がかなり楽になりますね。

## 4.3 プラットフォームの変更
　「File」→「Build Settings」を開きます。
 初期だとPlatformが「Windows,Mac,Linux」になっているので、「Android」にしたうえで下部の「Switch Platform」をクリックします。

 ![スクリーンショット 2024-10-25 171659.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3884006/d9aa23ce-0713-9a77-c6cf-e322c571f3ea.png)

## 4.4 シーンの追加
　最後にビルド対象のシーンを追加します。 「Add Opne Scenes」で現在のシーンを追加します。

 　その後、「Build And Run」でアプリの保存先をえらんでビルドします。

  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3884006/f7a3a69e-97c2-ac66-cdab-4633a33e0bf6.png)

# 5. アプリのデプロイ
　MQDHをつかって端末にアプリを入れます。
Meta Questは電源をつけて、TypeCケーブルでPCと接続します。
接続後、QuestにUSBでの接続許可を求められるので許可します。

　PC側ではMQHDを起動します。
 「Device Manager」から「Apps」の欄に向かって、先ほどビルドしたアプリをDrag＆Dropしてアプリをデプロイします。

 Questの端末、もしくは先ほどのMQHDのアプリから起動して確認します。ハンドトラッキングしているところが確認できました。

 ![スクリーンショット 2024-10-25 174336.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3884006/6be959ee-8d6b-c04d-4c46-35a58dffc000.png)


 
 # 最後に
 　設定回りが自動化されているのがとても楽になったなあというところです。また時間があれば、ここで何をしているのかも見てみたいと思います。