本日はMetaQuestの学習枠です。
MetaHorizonの開発ドキュメントを読みながら実際に開発を行ってみました。
MetaHorizonの開発ドキュメント
MetaHorizonの開発ドキュメントを実際に手を動かしながら実行時のキャプチャをしていきます。
developers.meta.com
本記事は以下の「インタラクションSDKの概要」の記事を試します。
developers.meta.com
Meta XR Interaction SDKをインストールする
Meta XR Interaction SDKをダウンロードおよびインポートする手順は以下のとおりです。
Unityアセットストアにアクセスして自身のUnityアカウントでサインインします。
assetstore.unity.com

Meta XR Interaction SDKページに移動します。
[Add to My Assets]を選択して、Unityアカウントのアセットにパッケージを追加します。
assetstore.unity.com

[Open in Unity (Unityで開く)]を選択してUnityエディターでPackage Managerウィンドウを開きます。

Meta XR Interaction SDKを選択して[Install (インストール)]を実行するとインストールが開始されます。

OpenXRプロバイダープラグインをインストールする
Meta XR SDKs v74以降を使うUnity 6以降上で構築されたプロジェクトにはUnity OpenXRプラグインをインストールしてください。
OpenXRプロバイダープラグインをインストールするには以下の手順に従います。
Unityエディター(2022.3.15f1以降、Unity 6以上推奨)でプロジェクトを開きます。
メニューから、[Edit -> Project Settings (プロジェクト設定)]を選択して、Project Settingsウィンドウを表示します。

[Project Settings (プロジェクト設定)]ウィンドウで、[XR Plug-in Management (XRプラグイン管理)]を選択します。
XRプラグイン管理がインストールされていない場合は、[Install XR Plugin Management (XRプラグイン管理をインストール)]を選択します。

[Windows, Mac, Linux settings (Windows、Mac、Linuxの設定)]タブで、[OpenXR]を選択します。

[Android settings (Android設定)]タブで、[OpenXR]を選択します。

次にメニューから[Window -> Package Manager]に移動して、Package Managerウィンドウを表示します。

ウィンドウの左上にある[Packages - Unity (パッケージ - Unity)]ドロップダウンを展開します。
左側のメニューのパッケージ一覧で選択したUnity OpenXRプラグインの横にチェックマークがあることを確認します。

パッケージをインストールするとそのパッケージのフォルダーが[Project]ウィンドウの[Packages]の下に表示されます。

サンプルはどちらのInteraction SDKパッケージでも入手可能です。
Meta Interaction SDK OVRサンプルの場合は[Package Manager]でMeta XR Interaction SDKパッケージを選択してウィンドウの右側にある[Samples]タブを選択します。

サンプルシーンをプロジェクトにインポートするには3つの[Import]ボタンをクリックします。

Unityプロジェクト設定ツールを実行する
Unityプロジェクト設定ツールはテクスチャーやグラフィックの設定などMeta Quest UnityアプリのAndroidプロジェクト設定を最適化します。
このツールではMeta Quest XRアプリ作成のための必須設定が適用されます。それには最低APIバージョンの設定、ARM64の使用が含まれます。
メニューから[Meta -> Tools -> Project Setup Tool]の順に移動してプロジェクト設定ツールを開きます。

Androidプラットフォームで未解決の問題すべてを解決するには[Fix All (すべて修正)]を選択します。

Androidプラットフォームの推奨設定をすべて適用するには[Apply All (すべて適用)]を選択します。

リグを追加する
Interaction SDKではリグは仮想環境を確認して、グラブ、テレポート、ポークなどのアクションを開始できるようにするGameObjectの定義済みコレクションです。
このリグはOVRInteractionComprehensiveというプレハブに含まれており、動作するカメラリグを必要とします。
またシーンにハンド、コントローラー駆動の手、およびコントローラーのサポートを追加します。
SDKは独自のカメラリグを使うため、Unityシーンで[Hierarchy]からデフォルトの[Main Camera]と[Global Volume]を削除します。

[Hierarchy]を右クリックして[Interaction SDK -> Add OVR Interaction Rig]を選択します。

またはシーンにOVRCameraRigが存在する場合はウィザードで自動的に検出されて表示されます。
カメラリグが存在しない場合は[Fix]をクリックすると、ウィザードによってカメラリグが作成されます。

[Craete]を実行してOVRInteractionComprehensiveを追加します。

これでリグの追加は完了です。

[Hierarchy]で追加したOVRCameraRigを選択します。
[Inspector]タブで[OVR Manager -> Quest Features]に移動します。

[General]タブの[Hand Tracking Support]のリストから、必要に応じて[Controllers and Hands (コントローラーと手)]、[Hands Only (手のみ)]、または[Controllers only (コントローラーのみ)]を選択します。

このままだとシーンを開始したとき、プレイヤーが落下してしまうので[3D Object -> Plane]で床オブジェクトを追加します。

これでシーンの準備ができました。

プロジェクトをテストする
[File -> Build Settings]を選択して[Add Open Scenes]ボタンをクリックし、シーンを起動する準備をします。

[Build And Run (ビルドして実行)]を実行するか、Linkが接続されている場合は[Play (プレイ)]をクリックして動作を確認します。
