ジェスチャ - MRTK2

ジェスチャは、人の手の動きに基づく入力イベントです。 MRTK でジェスチャ入力イベントを発生させるデバイスとしては、次の 2 種類があります。

これら両方の入力ソースでは、ジェスチャ設定プロファイルを使用して、Unity のタッチ イベントとジェスチャ イベントが、それぞれ MRTK の入力アクションに変換します。 このプロファイルは、入力システム設定プロファイルの下にあります。

Gesture Profile

ジェスチャ イベント

ジェスチャ イベントは、ジェスチャ ハンドラ インターフェイスの 1 つであるIMixedRealityGestureHandlerまたはIMixedRealityGestureHandler<TYPE>を実装することによって受信されます (イベントハンドラの表を参照)。

ジェスチャ イベント ハンドラーの実装例については、「サンプル シーン」を参照してください。

汎用バージョンを実装する場合は、OnGestureCompleted イベントと OnGestureUpdated イベントで、次の型の型指定データを受け取ることができます。

  • Vector2 - 2D の位置ジェスチャ。 deltaPositionを通知するためにタッチスクリーンによって生成されます。
  • Vector3 - 3D の位置ジェスチャ。 次の情報を知らせるために、HoloLens によってされました。
  • Quaternion - 3D の回転ジェスチャ。 カスタム入力ソースで使用できますが、現在のところ、既存の入力ソースでは生成されていません。
  • MixedRealityPose - 3D の位置/回転ジェスチャを組み合わせ。 カスタム入力ソースで使用できますが、現在のところ、既存の入力ソースでは生成されていません。

イベントの順序

ユーザー入力に応じて、イベントの 2 つの主要なチェーンがあります。

  • 「Hold」 :

    1. HOLD をタップする:
      • 操作を開始
    2. タップをHoldStartDurationを押したままにする:
      • HOLDを開始
    3. タップを解放する:
      • ホールドを完了
      • 操作を完了
  • 「Move」:

    1. HOLD をタップする:
      • 操作を開始
    2. タップをHoldStartDurationを押したままにする:
      • HOLDを開始
    3. NavigationStartThreshold を手を動したままにする:
      • HOLDをキャンセル
      • ナビゲーションを開始
    4. タップを解放する:
      • 操作を完了
      • ナビゲーションを完了

シーンの例

HandInteractionGestureEventsExample (Assets/MRTK/Examples/Demos/HandTracking/Scenes) シーンでは、ポインターの結果を使用して、ヒット位置にオブジェクトを生成する方法を示しています。

GestureTester(Assets/MRTK/Examples/Demos/HandTracking/Script) スクリプトは、GameObjects を通じてジェスチャ イベントを視覚化するための実装例です。 ハンドラー関数は、インジケータオブジェクトの色を変更し、シーン内のテキストオブジェクトに最後に記録されたイベントを表示します。