ハンドトラッキング
Hand Tracking Plug-inのセットアップ
- ハンドトラッキングはMixed Reality OpenXR Plug-inを使ってサポートされます。
- プラグインを入手するには、Mixed Reality Feature Toolを使い、Platform Supportから「Mixed Reality OpenXR Plug-in」を選択してください。
- [Get Features]を選択してプロジェクトの更新プロセスを完了し、Unityプロジェクトに戻ります。
Unityの構成
Unityでは、更新を行う設定が2つあります。
MRTKの設定
1つ目に更新するのは、MRTKの設定です。
「MRTK Hands Aggregator Subsystem」と「Subsystem of OpenXR Hands API」のチェックボックスが両方とも有効になっていることを確認してください。
さらに、デフォルトで0.25に設定されている「Pinch Closed Threshold」設定のキャリブレーションを試してみることをおすすめします。この値を0.45
または0.5
に設定することをおすすめします。
OpenXRの設定
2つ目に更新するのは、OpenXRの設定です。
利用可能なハンドトラッキング機能 が2つあることに注意してください。競合を避けるために、「Microsoft Hand Tracking」のチェックボックスだけを有効にして、他のHand Trackingのチェックボックスは無効にしてください。これは隣に「?」マークが付いているもので、設定アイコンをクリックしてAuthorを見ることで、Microsoft版であることを確認できます。
手の可視化の設定
MRTK3の手のプレハブを使用する場合
- ProjectのPackages内の
MRTK Input > Visualizers > RiggedHandVisualizer > openxr_right_hand
を選択します。 RiggedHandMeshVisualizer
コンポーネントのShow Hands On Transparent Displays
にチェックを入れます。
左手も同じように設定します。
Snapdragon Spacesの手のプレハブを使用する場合
MRTKが提供するハンドメッシュに加えて、Snapdragon Spaces SDKは、仮想のハンドオーバーレイを可視化するためのQCHTハンドメッシュも提供します。
実装するには、シーンのHierarchyの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フィールドにドラッグします。
左手も同じように設定します。
ハンドトラッキングのオプション
現時点では、OpenXR Controller Profileとの競合のため、Snapdragon Spacesコントローラーと両手から同時にレイキャストすることはできません。そのため、2つのオプションがあります。
オプション1:左手のトラッキングを無効にする
左手のトラッキングを無効にするには、MRTK XR Rig内のMRTK LeftHand Controllerをオフにし、MRTK RightHand Controllerをオンのままにします。左手をオンのままにしておくと、コライダーとしては動作しますが、レイキャストのインタラクターとしては正しく動作しない可能性があります。このオプションはデバイスポインターを引き続き使用できますが、理想的な制限ではないかもしれません。
オプション2:Snapdragon Spacesコントローラーを無効にする(両手オプション)
Snapdragon Spaces Controllerを無効にするには、Device Pointer Prefabがある場合は、シーンから削除するか無効にしてください。
次に、OpenXRの設定から「Interaction Profiles」を削除します。
Base Runtime機能の横に警告フラグが立ちますが、無視してもかまいません。
これは両手のトラッキングを可能にしますが、"Hand Tracking only "モードであるため、ポインター等のスマートフォンのコントローラー機能は無効になります。
これは、他の "ハンドトラッキングのみ "のプラットフォームからアプリを直接移植する場合に推奨されます。
MRTKの詳細
MRTKの詳細については、MRTK3のドキュメントを参照するか、MRTK3のGitHubリポジトリをチェックしてください。