ジェスチャ — MRTK2
ジェスチャは、人間の手に基づく入力イベントです。 MRTK でジェスチャ入力イベントを発生させるデバイスには、次の 2 種類があります。
HoloLens などのWindows Mixed Realityデバイス。 ここでは、ピンチ モーション ("Air Tap") とタップ アンド ホールド ジェスチャについて説明します。
HoloLens ジェスチャの詳細については、Windows Mixed Reality ジェスチャに関するドキュメントを参照してください。
WindowsMixedRealityDeviceManager
は、Unity XR をラップします。WSA。HoloLens デバイスからUnityのジェスチャ イベントを使用する Input.GestureRecognizer。タッチ スクリーン デバイス。
UnityTouchController
は、物理的なタッチ スクリーンをサポートする Unity Touch クラスをラップします。
どちらの入力ソースも、ジェスチャ設定プロファイルを使用して、Unityの Touch イベントと Gesture イベントをそれぞれ MRTK の入力アクションに変換します。 このプロファイルは、 入力システム設定 プロファイルにあります。

ジェスチャ イベント
ジェスチャ イベントは、 IMixedRealityGestureHandler
または IMixedRealityGestureHandler<TYPE>
のいずれかのジェスチャ ハンドラー インターフェイスを実装することによって受信されます ( イベント ハンドラーの表を参照)。
ジェスチャ イベント ハンドラーの実装例については、「 シーン の例」を参照してください。
ジェネリック バージョンを実装する場合、 OnGestureCompleted イベントと OnGestureUpdated イベントは、次の種類の型指定されたデータを受信できます。
-
Vector2
- 2D 位置ジェスチャ。deltaPosition
を通知するタッチ スクリーンによって生成されます。 -
Vector3
- 3D 位置ジェスチャ。 HoloLens によって生成され、以下が通知されます。-
cumulativeDelta
操作イベントの -
normalizedOffset
ナビゲーション イベントの
-
-
Quaternion
- 3D 回転ジェスチャ。 カスタム入力ソースで使用できますが、現在は既存の入力ソースによって生成されていません。 -
MixedRealityPose
- 組み合わされた 3D 位置/回転ジェスチャ。 カスタム入力ソースで使用できますが、現在は既存の入力ソースによって生成されていません。
イベントの順序
ユーザー入力に応じて、2 つの主要なイベント チェーンがあります。
"Hold":
- 長押しタップ:
- 操作を開始する
-
HoldStartDuration を超える長押しタップ:
- ホールドを開始する
- リリース タップ:
- ホールドを完了する
- 完全な 操作
- 長押しタップ:
"Move":
- 長押しタップ:
- 操作を開始する
-
HoldStartDuration を超える長押しタップ:
- ホールドを開始する
-
NavigationStartThreshold を超えて手を移動する:
- キャンセル保留
- ナビゲーションの開始
- リリース タップ:
- 完全な 操作
- ナビゲーションの完了
- 長押しタップ:
シーンの例
HandInteractionGestureEventsExample (Assets/MRTK/Examples/Demos/HandTracking/Scenes) シーンは、ポインター Result を使用してヒット位置でオブジェクトを生成する方法を示しています。
GestureTester
(Assets/MRTK/Examples/Demos/HandTracking/Script) スクリプトは、GameObjects を介してジェスチャ イベントを視覚化するための実装例です。 ハンドラー関数は、インジケーター オブジェクトの色を変更し、シーン内のテキスト オブジェクトに最後に記録されたイベントを表示します。