メインコンテンツまでスキップ
バージョン: 1.0.3

ハンドトラッキング

Hand Tracking Pluginのセットアップ

  • ハンドトラッキングは、2つの異なるパッケージから選択してサポートされています。
    • Unity XR Hands (推奨)

      • ハンドジョイントデータにアクセスする必要がある場合に使用します。
      • このパッケージをインストールするには、Unityパッケージマネージャーを開いてUnity RegistryからXR Handsパッケージを探してください。
      • 使用しているMRTK3のバージョンによっては、依存関係として自動的にインストールされる場合があります。

      Unity XR Hands package

    • Mixed Reality OpenXR Plugin

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

      alt text

Unityの構成

Unityでは、更新を行う設定が2つあります。

MRTKの設定

1つ目に更新するのは、MRTKの設定です。
Edit > Project Settings > MRTKを開き、MRTK Hands Aggregator Subsystemが有効になっていることを確認してください。

NOTE

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
MRTK Input 3.2.2 or earlierNewer MRTK Input

さらに、デフォルトで0.25に設定されている「Pinch Closed Threshold」設定のキャリブレーションを試してみることをおすすめします。この値を0.45または0.5に設定することをおすすめします。

MRTK Hands Aggregator settings

OpenXRの設定

2つ目に更新するのは、OpenXRの設定です。Edit > Project Settings > XR Plug-in Management > OpenXRを開きます。

どちらのパッケージを選択した場合でも、OpenXR Project SettingsのEnabled Interaction ProfilesHand Interaction Profileを追加することで、追加のハンドインタラクションを有効にできます。

Unity OpenXR settings

これによりBase Runtime機能の横に警告が表示されますが、hand input用に設定しているため無視しても問題ありません。

  • Unity XR Hands を使用している場合

    • Hand Tracking Subsystemが有効になっていることを確認してください。 Hand tracking subsystem
  • Mixed Reality OpenXR Plugin を使用している場合

    • 2つのハンドトラッキング機能が利用可能であることに注意してください。競合を避けるため、Microsoftのハンドトラッキングチェックボックスのみを有効にし、他のハンドトラッキングチェックボックスはすべて無効にしてください。これは、横にクエスチョンマークが付いているもので、設定アイコンをクリックして作成者を確認することで、Microsoft版であることを検証できます。 OpenXR Settings with Two Hand Trackings

手の可視化の設定

MRTKが提供するハンドメッシュに加えて、Snapdragon Spaces SDKは、仮想のハンドオーバーレイを可視化するためのQCHTハンドメッシュも提供します。

実装するには、シーンのHierarchyのMRTK XR Rig > Camera Offset > MRTK RightHand ControllerMRTK RightHand Controllerオブジェクトを選択します。

実装するには、シーン階層の MRTK XR Rig > Camera Offset > MRTK RightHand Controller の下にある MRTK RightHand Controller オブジェクトを選択します。 alt text

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

コンパニオンコントローラーの追加設定

  1. 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に適切に接続されます。

      MRTK Input Actions

  2. OpenXRのプロジェクト設定

    • Enabled Interaction ProfilesMicrosoft Mixed Reality Motion Controller Profileを追加します。これは、コンパニオンコントローラーがサポートするインタラクションプロファイルです。

      OpenXR Project Settings

  3. Device Pointerプレハブの追加

    • Device Pointerは以下の場所にあります。
      Sample/Snapdragon Spaces/[バージョンID]/Core Samples/Shared Assets/Prefabs/Interaction/Device Pointer

    • XR Interactor Line VisualコンポーネントのLine Width0.005に変更します。

      MRTK Hierarchy

ハンドトラッキングのオプション

NOTE

現時点では、OpenXR interaction Profileとの競合のため、Snapdragon Spaces Companion Controllerと両手から同時にレイキャストすることはできません。そのため、2つのオプションがあります。

オプション1:左手のトラッキングを無効にする

左手のトラッキングを無効にするには、MRTK XR Rig内のMRTK LeftHand Controllerをオフにし、MRTK RightHand Controllerをオンのままにします。左手をオンのままにしておくと、コライダーとしては動作しますが、レイキャストのインタラクターとしては正しく動作しない可能性があります。このオプションはデバイスポインターを引き続き使用できますが、理想的な制限ではないかもしれません。
alt text

オプション2:Snapdragon Spacesコンパニオンコントローラーを無効にする(両手オプション)

Snapdragon Spaces Companion Controllerを無効にするには、Device Pointer Prefabがある場合は、シーンから削除するか無効にしてください。

次に、OpenXR プロジェクト設定のEnabled Interaction ProfilesからMicrosoft Mixed Reality Motion Controller Profileを削除し、代わりにHand Interaction Profileを追加します。

Unity OpenXR settings

TIP

Base Runtime機能の横に警告フラグが立ちますが、無視してもかまいません。
これは両手のトラッキングを可能にしますが、"Hand Tracking only"モードであるため、ポインター等のスマートフォンのコントローラー機能は無効になります。

これは、他の "ハンドトラッキングのみ"のプラットフォームからアプリを直接移植する場合に推奨されます。

MRTKの詳細

MRTKの詳細については、MRTK3のドキュメントを参照するか、MRTK3のGitHubリポジトリをチェックしてください。