MRTK とは
Microsoft 主導のプロジェクトで、Unity でクロスプラットフォームの MR アプリの開発時間を短縮するために、空間操作および UI 用のクロスプラットフォーム入力システムと構成を簡単に実装出来ます。
幅広い範囲のプラットフォームがサポートされていますが、今回は Oculus Quest2 で動作するように実装したので、備忘録としてまとめました。
必要なもの
-
Oculus Quest 2
- デバイスで 開発者モード が有効になっている必要があります。
- Unity
- (バージョンは 2020.3.21f1 LTS を使用しました。)
- Unity XR SDK パイプライン
- Oculus Integration
-
MRTK
- Microsoft.MixedReality.Toolkit.Unity.Foundation.unitypackage
※ MRTK のパッケージを Windows PC で用意する場合は Mixed Reality Feature Tool を使用してダウンロード出来ます。( 詳細はこちら )
実装手順
- プロジェクトの準備
- XR Plugin Frameworkのインポート
- Oculus Integrationのインポート
- MRTKのインポート
- MRTK用のコンポーネントとプロファイルを追加
- ハンドトラッキングの有効化
- URP で MRTK を使用する場合
- ボタン / ハンドメニューの追加
- Oculus Questでの実行
1. プロジェクトの準備
Oculus Quest2 のプロジェクトの設定をします。
詳細は 開発環境を設定 にまとめられています。
■ Unityの準備
1. Unity HubでUnityをインストールします。モジュールの追加で「Android Build Support」をチェックします。
2. Unityのプロジェクトを作成します。
3. メニュー「File → Build Settings」で、「Android」を選択して「Switch Platform」ボタンを押します。
2. XR Plugin Frameworkのインポート
- メニュー「Edit → Project Settings → XR Plugin Management」で「Install XR Plugin Management」ボタンを押します。「XR Plugin Management」がインポートされます。
- Androidタブの「Oculus」にチェックを入れます。
3. Oculus Integrationのインポート
Unity アセット ストア から Oculus Integration をダウンロードしてインポートします。
※ 全てのファイルをインポートします。インポートには時間がかかります。
インポートが完了したら、メニュー「Edit → Project Settings → Audio」の「Spatializer Plugin」に「OculusSpatializer」を指定します。
4. MRTKのインポート
- MRTK のリポジトリからパッケージをダウンロードします。
Microsoft.MixedReality.Toolkit.Unity.Foundation.unitypackage
Microsoft.MixedReality.Toolkit.Unity.Tools.unitypackage
メニュー「Assets → Import Package → Custom Package」で、パッケージをインポートします。
以下のダイアログを入力していきます。
「Next」を選択。
「Apply」を選択。
「Next」を選択。
「Import TMP Essentials」を選択。
「Done」を選択。
※ MRTK のパッケージを Windows PC で用意する場合は Mixed Reality Feature Tool を使用してダウンロード出来ます。( 詳細はこちら )
5. MRTK用のコンポーネントとプロファイルを追加
メニュー「Mixed Reality Toolkit → Add to Scene and Configure...」を選択します。
以下が Hierarchy に追加されます。
MixedRealityToolkit
MixedRealityPlayspace
MixedRealitySceneContent
6. ハンドトラッキングの有効化
メニュー「Mixed Reality Toolkit → Utilities → Oculus → Integrate Oculus Integration Unity Module」を選択します。
インポートされた Oculus フォルダーの、OculusProjectConfig で、HandTrackingSupport を 「Controllers and Hands」か「Hands Only」に設定します。
参考 : Oculus Integration Unity パッケージを設定してハンドトラッキングを有効にする
Oculus コントローラー
Oculus コントローラーモデルを視覚化するには、Oculus クエストデプロイの手順に従います。 コントローラーを使用しているときに仮想ハンズオンを表示する場合は、XR SDK Oculus Device Manager の下で、[コントローラーでは なくアバター を表示する] がオンになっていることを確認します。それ以外の場合は、このオプションをオフにします。
コントローラーと手のモデルは以下の設定にすると表示されます。
7. URP で MRTK を使用する場合
メニュー「Mixed Reality Toolkit → Utilities → Upgrade MRTK Standard Shader for Lightweight Render Pipeline」を実行します。
8. ボタン / ハンドメニューの追加
試しにハンドメニューの実装をしました。
下記の記事を参考にUIなどを作成し動作確認をしました。
9. Oculus Questでの実行
ビルドエラー
最初に「Build And Run」を選択すると、ビルドエラー が発生する可能性があります。「Build And Run」を再度選択すると、正常にビルドが完了します。
参考 : プロジェクトをビルドして Oculus Quest にデプロイする
診断システムの表示/非表示
「Diagnostics」を選択し、「Enable Diagnostics System」のチェックボックスをOFFにします。
参考 : 診断システムの構成