ジェスチャGestures

ハンドジェスチャを使用すると、ユーザーは mixed reality でアクションを実行できます。Hand gestures allow users to take action in mixed reality. 相互作用は、ターゲットとジェスチャまたは音声に対して、対象となっている要素に対して機能するように構築されています。Interaction is built on gaze to target and gesture or voice to act upon whatever element has been targeted. ハンドジェスチャはスペース内の正確な場所を提供しませんが、HoloLens に配置してコンテンツとすぐに対話することで、ユーザーは他のアクセサリを使用しなくても作業できるようになります。Hand gestures do not provide a precise location in space, but the simplicity of putting on a HoloLens and immediately interacting with content allows users to get to work without any other accessories.


デバイスのサポートDevice support

機能Feature HoloLens (第 1 世代)HoloLens (1st gen) HoloLens 2HoloLens 2 イマーシブ ヘッドセットImmersive headsets
ジェスチャGestures ✔️✔️ ✔️✔️
手によるハンドArticulated hands ✔️✔️

注意

HoloLens 2 に固有のその他のガイダンスは近日対応予定です。More guidance specific to HoloLens 2 coming soon.

宝石とコミットGaze-and-commit

アクションを実行するために、ハンドジェスチャはターゲットメカニズムとしてヘッド宝石を使用します。To take actions, hand gestures use head gaze as the targeting mechanism. 宝石エアタップのジェスチャを組み合わせると、宝石とコミットの相互作用が生じます。The combination of Gaze and the Air tap gesture results in a gaze-and-commit interaction. 宝石とコミットの代替手段として、ポイントアンドコミットがあります。これは、モーションコントローラーによって実現されます。An alternative to gaze-and-commit is point-and-commit, enabled by motion controllers. Hololens で動作するアプリは、運動コントローラーをサポートしていないため、宝石とコミットのみをサポートする必要があります。Apps that run on HoloLens only need to support gaze-and-commit since HoloLens does not support motion controllers. HoloLens およびイマーシブヘッドセットの両方で実行されるアプリは、ユーザーが使用する入力デバイスを選択できるように、宝石とポイント駆動の両方の対話をサポートする必要があります。Apps that run on both HoloLens and immersive headsets should support both gaze-driven and pointing-driven interactions, to give users choice in what input device they use.

HoloLens の2つの主要なジェスチャThe two core gestures of HoloLens

HoloLens は、現在、エアタップブルームという2つの主要なコンポーネントジェスチャを認識しています。HoloLens currently recognizes two core component gestures - Air tap and Bloom. これらの2つの主要な相互作用は、開発者がアクセスできる最も低いレベルの空間入力データです。These two core interactions are the lowest level of spatial input data that a developer can access. さまざまなユーザーアクションの基礎を形成します。They form the foundation for a variety of possible user actions.

エアタップAir tap

エアタップは、マウスクリックや選択と同様に、手の形をしたタップジェスチャです。Air tap is a tapping gesture with the hand held upright, similar to a mouse click or select. この機能は、UI 要素を見つめでターゲットにした後、UI 要素で "クリック" に相当するものに対してほとんどの HoloLens エクスペリエンスで使用されます。This is used in most HoloLens experiences for the equivalent of a "click" on a UI element after targeting it with Gaze. これは、一度学習してすべてのアプリに適用する汎用的なアクションです。It is a universal action that you learn once and then apply across all your apps. Select を実行する別の方法として、 HoloLens Clickerの単一のボタンを押すか、音声コマンド "select" を読み上げます。Other ways to perform select are by pressing the single button on a HoloLens Clicker or by speaking the voice command "Select".

HoloLens でのハンドジェスチャの準備完了状態Ready state for hand gestures on HoloLens
HoloLens での無線タップの準備完了状態。Ready state for Air tap on HoloLens.

エアタップは、独立したジェスチャです。Air tap is a discrete gesture. 選択された項目が完了しているか、そうでないか、操作であるか、またはエクスペリエンス内で実行されていません。A selection is either completed or it is not, an action is or is not taken within an experience. 特定の目的では推奨されませんが、メインコンポーネントの組み合わせから別のジェスチャを作成する (たとえば、シングルタップとは異なることを意味するダブルタップジェスチャなど) ことができます。It is possible, though not recommended without some specific purpose, to create other discrete gestures from combinations of the main components (e.g. a double-tap gesture to mean something different than a single-tap).

準備完了の位置に指を置き、タップまたはクリックによるモーションFinger in the ready position and then a tap or click motion
エアタップを実行する方法:インデックスの指を準備完了の位置に上げ、指を押してタップまたは選択してから、リリースにバックアップします。How to perform an Air tap: Raise your index finger to the ready position, press your finger down to tap or select and then back up to release.

ブルームBloom

ブルームは "ホーム" ジェスチャであり、そのように予約されています。Bloom is the "home" gesture and is reserved for that alone. これは、[スタート] メニューに戻るために使用される特殊なシステムアクションです。It is a special system action that is used to go back to the Start Menu. これは、キーボード上で Windows キーを押すか、Xbox コントローラーの Xbox ボタンを押すことと同じです。It is equivalent to pressing the Windows key on a keyboard or the Xbox button on an Xbox controller. ユーザーはいずれかを使用できます。The user can use either hand.

HoloLens のブルームジェスチャ

HoloLens でブルームジェスチャを実行するには、手のひらを押しながら、すぐに使えるようにします。To do the bloom gesture on HoloLens, hold out your hand, palm up, with your fingertips together. その後、手を開けます。Then open your hand. "Cortana, 帰宅してください" と言うと、いつでも最初に戻ることができます。Note, you can also always return to Start by saying "Hey Cortana, Go Home". アプリは、システムによって処理されるため、特にホームアクションに対応することはできません。Apps cannot react specifically to a home action, as these are handled by the system.

ブルームジェスチャBloom gesture
HoloLens でブルームジェスチャを実行する方法。How to perform the bloom gesture on HoloLens.

複合ジェスチャComposite gestures

アプリは個々のタップ以上のものを認識できます。Apps can recognize more than just individual taps. タップを組み合わせることで、手の動きでホールドしたりリリースしたりして、複雑な複合ジェスチャを実行できます。By combining tap, hold and release with the movement of the hand, more complex composite gestures can be performed. これらの複合または高レベルのジェスチャは、開発者がアクセスできる (エアタップとブルームからの) 低レベルの空間入力データを利用します。These composite or high-level gestures build on the low-level spatial input data (from Air tap and Bloom) that developers have access to.

複合ジェスチャComposite gesture 適用する方法How to apply
エアタップAir tapエアタップ ジェスチャ (および以下のその他のジェスチャ) は、特定のタップのみに反応します。The Air tap gesture (as well as the other gestures below) reacts only to a specific tap. アプリは、[メニュー] や [握る] などの他のタップを検出するために、上記の 2 つの重要な要素であるジェスチャのセクションで説明されている低レベルの操作を直接使用する必要があります。To detect other taps, such as Menu or Grasp, your app must directly use the lower-level interactions described in two key component gestures section above.
タップ アンド ホールドTap and hold

ホールドは、単にエアタップの下向きの指の位置を保持することです。Hold is simply maintaining the downward finger position of the air tap. エアタップとホールディングを組み合わせることにより、オブジェクトをアクティブ化"したり、"マウス"で選択したりするのでは"なく、arm の動きと組み合わせて、さまざまな複雑なクリックアンドドラッグ操作を行うことができます。コンテキストメニューを表示するなどの二次的な相互作用。The combination of air tap and hold allows for a variety of more complex "click and drag" interactions when combined with arm movement such as picking up an object instead of activating it or "mousedown" secondary interactions such as showing a context menu.

ただし、このジェスチャの設計時には注意が必要です。これは、ユーザーはジェスチャを長く続けると途中で手の姿勢を緩める傾向があるためです。Caution should be used when designing for this gesture however, as users can be prone to relaxing their hand postures during the course of any extended gesture.

操作Manipulation

操作ジェスチャを使用すると、ホログラムが1:1 をユーザー'の手の動きに反応させる場合に、ホログラムの移動、サイズ変更、または回転を行うことができます。Manipulation gestures can be used to move, resize or rotate a hologram when you want the hologram to react 1:1 to the user's hand movements. このような 1 対 1 の動きの 1 つの用途は、ユーザーが世界中で絵を描いたりペイントしたりできるようにすることです。One use for such 1:1 movements is to let the user draw or paint in the world.

操作のジェスチャの最初のターゲット設定は、視線入力またはポインティングによって行う必要があります。The initial targeting for a manipulation gesture should be done by gaze or pointing. タップ アンド ホールドを始めると、オブジェクトのすべての操作が手の動きによって処理され、ユーザーは、操作している間は自由に見回すことができます。Once the tap and hold starts, any manipulation of the object is then handled by hand movements, freeing the user to look around while they manipulate.

ナビゲーションNavigation

ナビゲーションのジェスチャは仮想ジョイスティックのように動作し、リング メニューなどの UI ウィジェット内で移動するために使用できます。Navigation gestures operate like a virtual joystick, and can be used to navigate UI widgets, such as radial menus. タップ アンド ホールドでジェスチャを始めてから、最初に押したところを中心に、正規化された 3D 立方体の中で手を動かします。You tap and hold to start the gesture and then move your hand within a normalized 3D cube, centered around the initial press. 開始点 0 で、-1 から 1 までの値から X、Y、または Z 軸に沿って手を動かすことができます。You can move your hand along the X, Y or Z axis from a value of -1 to 1, with 0 being the starting point.

ナビゲーションを使用すると、マウスの中央ボタンをクリックしてからマウスを上下に移動して 2 次元の UI をスクロールするのと同様に、速度ベースの連続したスクロールやズームのジェスチャを作成できます。Navigation can be used to build velocity-based continuous scrolling or zooming gestures, similar to scrolling a 2D UI by clicking the middle mouse button and then moving the mouse up and down.

レールを使用したナビゲーションは、ある軸で一定のしきい値に達するまで、その軸での移動を認識する機能を指します。Navigation with rails refers to the ability of recognizing movements in certain axis until certain threshold is reached on that axis. これは、開発者がアプリケーション内で複数の軸での移動を有効にしている場合にのみ役立ちます。たとえば、アプリケーションが X、Y 軸を横切るナビゲーションのジェスチャを認識するように構成されていて、同時に X 軸がレールを使用して指定されている場合です。This is only useful, when movement in more than one axis is enabled in an application by the developer, e.g. if an application is configured to recognize navigation gestures across X, Y axis but also specified X axis with rails. この場合、システムは、手の動きが Y 軸上でも発生する合は、それが X 軸上の想像上のレール (ガイド) 内にとどまっている限り、X 軸を横切る手の動きを認識します。In this case system will recognize hand movements across X axis as long as they remain within an imaginary rails (guide) on X axis, if hand movement also occurs Y axis.

2D のアプリ内では、ユーザーは、アプリ内でスクロール、ズーム、またはドラッグするために、垂直方向のナビゲーション ジェスチャを使用できます。Within 2D apps, users can use vertical navigation gestures to scroll, zoom, or drag inside the app. これは、同じ種類のタッチ ジェスチャをシミュレートするために、アプリに仮想の指でのタッチを挿入します。This injects virtual finger touches to the app to simulate touch gestures of the same type. ユーザーは、ボタンを選択するか' <、[スクロール/ドラッグ/ズーム> ] ツール'をクリックすることで、アプリの上部にあるバーのツールを切り替えることによって、どのアクションを実行するかを選択できます。Users can select which of these actions take place by toggling between the tools on the bar above the app, either by selecting the button or saying '<Scroll/Drag/Zoom> Tool'.

ジェスチャ認識エンジンGesture recognizers

ジェスチャ認識を使用する利点の 1 つは、現在のターゲットであるホログラムが受け入れることができるジェスチャだけのためにジェスチャ認識エンジンを構成できることです。One benefit of using gesture recognition is that you can configure a gesture recognizer just for the gestures the currently targeted hologram can accept. プラットフォームでは、これらのサポートされている特定のジェスチャを区別するために必要な曖昧性の解消のみを行います。The platform will do only the disambiguation necessary to distinguish those particular supported gestures. このように、エアタップのみをサポートするホログラムは、押してから放すまでの任意の長さの時間を受け入れることができ、タップとホールドの両方をサポートするホログラムは、ホールド時間のしきい値の後にタップをホールドに昇格します。That way, a hologram that just supports air tap can accept any length of time between press and release, while a hologram that supports both tap and hold can promote the tap to a hold after the hold time threshold.

手の認識Hand recognition

HoloLens は、デバイスで確認できる片手または両手の位置を追跡することで、手のジェスチャを認識します。HoloLens recognizes hand gestures by tracking the position of either or both hands that are visible to the device. HoloLens は、準備完了状態(インデックスが上に指されている針の背面)、または押された状態 (インデックスの指を押したままの状態) のいずれかであることを認識します。HoloLens sees hands when they are in either the ready state (back of the hand facing you with index finger up) or the pressed state (back of the hand facing you with the index finger down). その他の手のポーズの場合、HoloLens はそれらを無視します。When hands are in other poses, the HoloLens will ignore them.

HoloLens が検出するそれぞれの手について、その位置 (向きはなし) と押された状態にアクセスすることができます。For each hand that HoloLens detects, you can access its position (without orientation) and its pressed state. 手がジェスチャ フレームの端に近づくと、方向ベクトルも表示されます。これをユーザーに示すことで、ユーザーは、どのように手を動かせば、HoloLens が認識できる位置に戻せるかを知ることができます。As the hand nears the edge of the gesture frame, you're also provided with a direction vector, which you can show to the user so they know how to move their hand to get it back where HoloLens can see it.

ジェスチャ フレームGesture frame

HoloLens のジェスチャでは、手は、ジェスチャを検知するカメラが適切に認識できる範囲 (非常に大まかに言うと、鼻から腰までの肩と肩の間) 内の、"ジェスチャ フレーム" 内にある必要があります。For gestures on HoloLens, the hand must be within a “gesture frame”, in a range that the gesture-sensing cameras can see appropriately (very roughly from nose to waist, and between the shoulders). ユーザーは、アクションの成功と自分自身の快適さの両方のために、この認識領域についてトレーニングを受ける必要があります (多くのユーザーは、最初は、ジェスチャ フレームは HoloLens を通した視野内にあり、操作するためには不快なほど腕を上げなければならないと思い込んでいます。Users need to be trained on this area of recognition both for success of action and for their own comfort (many users will initially assume that the gesture frame must be within their view through HoloLens, and hold their arms up uncomfortably in order to interact). HoloLens クリッカーを使用するときは、手がジェスチャ フレーム内にある必要はありません。When using the HoloLens Clicker, your hands do not need to be within the gesture frame.

特に連続したジェスチャの場合は、ユーザーがジェスチャの途中で (たとえば、ホログラフィック オブジェクトの移動中に) ジェスチャ フレームの外側で手を動かし、意図した結果を見失う危険性があります。In the case of continuous gestures in particular, there is some risk of users moving their hands outside of the gesture frame while in mid-gesture (while moving some holographic object, for example), and losing their intended outcome.

考慮すべきことが 3 つあります。There are three things that you should consider:

  • ジェスチャ フレームのエクスペリエンスとおおよその境界に関するユーザーへの指導 (これは HoloLens のセットアップ中に指導されます)。User education on the gesture frame's existence and approximate boundaries (this is taught during HoloLens setup).
  • ジェスチャが、ジェスチャが失われると望ましくない結果が生じる可能性がある程度まで、アプリケーション内のジェスチャ フレームの境界に近づいている、または境界を越えているときの、ユーザーへの通知。Notifying users when their gestures are nearing/breaking the gesture frame boundaries within an application, to the degree that a lost gesture will lead to undesired outcomes. 調査により、そのような通知システムの重要な特質が示されています。また、HoloLens シェルで、この種類の通知の良い例が提供されています (視覚的、中央のカーソル上、境界の交差が発生している方向を示す)。Research has shown the key qualities of such a notification system, and the HoloLens shell provides a good example of this type of notification (visual, on the central cursor, indicating the direction in which boundary crossing is taking place).
  • ジェスチャ フレームの境界を越えることによる影響は、最小限に抑える必要があります。Consequences of breaking the gesture frame boundaries should be minimized. 通常、これは、ジェスチャの結果が境界で停止していても、逆転はしていないことを意味します。In general, this means that the outcome of a gesture should be stopped at the boundary, but not reversed. たとえば、ユーザーが部屋を越えていくつかの holographic オブジェクトを移動する場合、ジェスチャフレームが侵害されたときに移動が停止しますが、開始ポイントには返されませんFor example, if a user is moving some holographic object across a room, movement should stop when the gesture frame is breached, but not be returned to the starting point. その場合、ユーザーはフラストレーションを感じるかもしれませんが、より早く境界を理解して、意図したアクションすべてを毎回再開しなくても済む場合があります。The user may experience some frustration then, but may more quickly understand the boundaries, and not have to restart their full intended actions each time.

関連項目See also