ハンドトラッキング
Hand Tracking Pluginのセットアップ
- ハンドトラッキングは、2つの異なるパッケージから選択してサポートされています。
-
Unity XR Hands (推奨)
- ハンドジョイントデータにアクセスする必要がある場合に使用します。
- このパッケージをインストールするには、Unityパッケージマネージャーを開いてUnity RegistryからXR Handsパッケージを探してください。
- 使用しているMRTK3のバージョンによっては、依存関係として自動的にインストールされる場合があります。

-
Mixed Reality OpenXR Plugin
- ハンドジョイントデータに加えて、このプラグインが提供する他の機能にアクセスする必要がある場合に使用します。
- このパッケージをインストールするには、Unity Asset Store にアクセスしてアセットに追加してください。
- その後、Unityに戻りパッケージのインポートを完了する セクションの手順に従ってインポートを完了します。

-
Unityの構成
Unityでは、更新を行う設定が2つあります。
MRTKの設定
1つ目に更新するのは、MRTKの設定です。
Edit > Project Settings > MRTKを開き、MRTK Hands Aggregator Subsystemが有効になっていることを確認してください。
Subsystemの表示名は、MRTK Inputパッケージのバージョンによって変更されています。可能性のある両方の名前を以下に記載していますので、ご自身のプロファイルで正しい名前を確認してください。
Unity XR Handsパッケージを使用している場合、Subsystem for Unity XR Hands API (MRTK Input 3.2.2 以前を使用している場合) または Unity XR Hands subsystem (より新しいMRTK Inputパッケージを使用している場合) が有効になっていることを確認してください。
Mixed Reality OpenXR Plugin パッケージを使用している場合、Subsystem for OpenXR Hands API (MRTK Input 3.2.2 以前を使用している場合) または Mixed Reality OpenXR Plugin Hands subsystem (より新しい MRTK Inputパッケージを使用している場合) が有効になっていることを確認してください。
| MRTK Input 3.2.2 以前 | 新しい MRTK Input |
|---|---|
![]() | ![]() |
さらに、デフォルトで0.25に設定されている「Pinch Closed Threshold」設定のキャリブレーションを試してみることをおすすめします。この値を0.45または0.5に設定することをおすすめします。

OpenXRの設定
2つ目に更新するのは、OpenXRの設定です。Edit > Project Settings > XR Plug-in Management > OpenXRを開きます。
どちらのパッケージを選択した場合でも、OpenXR Project SettingsのEnabled Interaction ProfilesにHand Interaction Profileを追加することで、追加のハンドインタラクションを有効にできます。

これによりBase Runtime機能の横に警告が表示されますが、hand input用に設定しているため無視しても問題ありません。
-
Unity XR Hands を使用している場合
- Hand Tracking Subsystemが有効になっていることを確認してください。
- Hand Tracking Subsystemが有効になっていることを確認してください。
-
Mixed Reality OpenXR Plugin を使用している場合
- 2つのハンドトラッキング機能が利用可能であることに注意してください。競合を避けるため、Microsoftのハンドトラッキングチェックボックスのみを有効にし、他のハンドトラッキングチェックボックスはすべて無効にしてください。これは、横にクエスチョンマークが付いているもので、設定アイコンをクリックして作成者を確認することで、Microsoft版であることを検証できます。

- 2つのハンドトラッキング機能が利用可能であることに注意してください。競合を避けるため、Microsoftのハンドトラッキングチェックボックスのみを有効にし、他のハンドトラッキングチェックボックスはすべて無効にしてください。これは、横にクエスチョンマークが付いているもので、設定アイコンをクリックして作成者を確認することで、Microsoft版であることを検証できます。
手の可視化の設定
MRTKが提供するハンドメッシュに加えて、Snapdragon Spaces SDKは、仮想のハンドオーバーレイを可視化するためのQCHTハンドメッシュも提供します。
実装するには、シーンのHierarchyのMRTK XR Rig > Camera Offset > MRTK RightHand ControllerでMRTK RightHand Controllerオブジェクトを選択します。
実装するには、シーン階層の MRTK XR Rig > Camera Offset > MRTK RightHand Controller の下にある MRTK RightHand Controller オブジェクトを選択します。

Package/QCHT Unity Interactions/Prefabs/mrtk3/にあるhand_right_qchtプレハブをMRTK RightHand ControllerのModel Prefabフィールドにドラッグします。

コンパニオンコントローラーの追加設定
-
MRTK XR Rig(トップレベルのゲームオブジェクト)
-
Input Action Managerコンポーネントで、Action Assetsの2つ目の要素にInput Actionsを追加します。
-
Input Actionsは以下の場所にあります。
Assets/Sample/Snapdragon Spaces/[バージョンID]/Core Samples/Shared Assets/Input Actions -
これにより、入力アクションがSnapdragon SpacesのCore Samplesから設定されたものにマップされ、Companion Controllerに適切に接続されます。

-
-
OpenXRのプロジェクト設定
-
Enabled Interaction ProfilesにMicrosoft Mixed Reality Motion Controller Profileを追加します。これは、コンパニオンコントローラーがサポートするインタラクションプロファイルです。

-
-
Device Pointerプレハブの追加
-
Device Pointerは以下の場所にあります。
Sample/Snapdragon Spaces/[バージョンID]/Core Samples/Shared Assets/Prefabs/Interaction/Device Pointer -
XR Interactor Line VisualコンポーネントのLine Widthを0.005に変更します。

-
ハンドトラッキングのオプション
現時点では、OpenXR interaction Profileとの競合のため、Snapdragon Spaces Companion Controllerと両手から同時にレイキャストすることはできません。そのため、2つのオプションがあります。
オプション1:左手のトラッキングを無効にする
左手のトラッキングを無効にするには、MRTK XR Rig内のMRTK LeftHand Controllerをオフにし、MRTK RightHand Controllerをオンのままにします。左手をオンのままにしておくと、コライダーとしては動作しますが、レイキャストのインタラクターとしては正しく動作しない可能性があります。このオプションはデバイスポインターを引き続き使用できますが、理想的な制限ではないかもしれません。

オプション2:Snapdragon Spacesコンパニオンコントローラーを無効にする(両手オプション)
Snapdragon Spaces Companion Controllerを無効にするには、Device Pointer Prefabがある場合は、シーンから削除するか無効にしてください。
次に、OpenXR プロジェクト設定のEnabled Interaction ProfilesからMicrosoft Mixed Reality Motion Controller Profileを削除し、代わりにHand Interaction Profileを追加します。

Base Runtime機能の横に警告フラグが立ちますが、無視してもかまいません。
これは両手のトラッキングを可能にしますが、"Hand Tracking only"モードであるため、ポインター等のスマートフォンのコントローラー機能は無効になります。
これは、他の "ハンドトラッキングのみ"のプラットフォームからアプリを直接移植する場合に推奨されます。
MRTKの詳細
MRTKの詳細については、MRTK3のドキュメントを参照するか、MRTK3のGitHubリポジトリをチェックしてください。

