頭の視線入力とコミットHead-gaze and commit

頭の視線入力とコミットは、前を向いた頭の方向 (頭の向き) にあるオブジェクトをターゲットにしてから、手のジェスチャであるエアタップや音声コマンドの [選択] などのセカンダリ入力でそれを操作する入力モデルです。Head-gaze and commit is an input model that involves targeting an object with the direction of your head pointing forward (head-direction), and then acting on it with a secondary input such as the hand gesture Air Tap or the voice command “Select”. これは [遠距離] 入力モデルと考えられており、手の届く範囲を越えたところにあるコンテンツの操作に最適です。It is considered a "far" input model with indirect manipulation, meaning it is best used for interacting with content that is beyond arms reach.

デバイスのサポートDevice support

入力モデルInput model HoloLens (第 1 世代)HoloLens (1st gen) HoloLens 2HoloLens 2 イマーシブ ヘッドセットImmersive headsets
頭の視線入力とコミットHead-gaze and commit ✔️ 推奨✔️ Recommended ✔️ 推奨 (3 番目の選択肢 -他のオプションを参照)✔️ Recommended (third choice - See the other options) ➕ 代替オプション➕ Alternate option

頭の視線入力Head-gaze

Mixed Reality ヘッドセットは、ユーザーの頭の位置と向きを利用して、その頭の方向ベクトルを決定します。Mixed reality headsets use the position and orientation of the user's head to determine their head direction vector. これは、ユーザーの目と目の間から直接、まっすぐ前を指し示すレーザーと考えることができます。You can think of this as a laser that points straight ahead from directly between the user's eyes. これはユーザーが目を向けている場所の非常に粗い近似値です。This is a fairly coarse approximation of where the user is looking. アプリケーションは、この光線を仮想のオブジェクトや現実世界のオブジェクトと交差させ、その場所にカーソルを描画して、現在ターゲットにしているものをユーザーに知らせます。Your application can intersect this ray with virtual or real-world objects and draw a cursor at that location to let the user know what they are currently targeting.

HoloLens 2 のような一部の Mixed Reality ヘッドセットには、頭の視線入力だけでなく、目の視線入力ベクトルを生成する視線追跡システムが組み込まれています。In addition to head gaze, some mixed reality headsets like the HoloLens 2 include eye tracking systems that produce an eye-gaze vector. これにより、ユーザーが目を向けている場所のきめ細かい測定値が得られます。This provides a fine-grained measurement of where the user is looking. 視線入力をビルドし、目の視線入力を使用して操作をコミットすることはできますが、これにはまったく異なる設計上の制約が伴います。これについては視線追跡の記事で別に説明します。It is possible to build gaze and commit interactions using eye gaze, but this comes with a very different set of design constraints, which will be covered separately in the eye tracking article.

コミットCommit

ユーザーは、オブジェクトまたは UI 要素をターゲットにした後、セカンダリ入力を使用してそれを操作したり [クリック] したりできます。After targeting an object or UI element, the user can interact or "click" on it using a secondary input. これは、モデルのコミット ステップと呼ばれています。This is known as the commit step of the model. 以下のコミット方法がサポートされています。The following commit methods are supported:

  • エアタップ ジェスチャAir Tap gesture
  • 音声コマンドの [選択]、または対象となる音声コマンドのいずれかを読み上げるSpeak the voice command "Select" or one of the targeted voice commands
  • HoloLens クリッカーで単一のボタンを押すPress the single button on a HoloLens Clicker
  • Xbox コントローラーの 'A' ボタンを押すPress the 'A' button on an Xbox Gamepad
  • Xbox Adaptive Controller の 'A' ボタンを押すPress the 'A' button on an Xbox Adaptive Controller

頭の視線入力とエアタップ ジェスチャHead-gaze and air tap gesture

エアタップは、手をまっすぐにしてタップするジェスチャです。Air tap is a tapping gesture with the hand held upright. エアタップを実行するには、人差し指を準備完了位置まで立ててから親指でピンチし、放すときはもう一度人差し指を立てます。To perform an Air tap, raise your index finger to the ready position, then pinch with your thumb and raise your index finger back up to release. HoloLens 1 では、エアタップは最も一般的なセカンダリ入力です。On HoloLens 1, Air tap is the most common secondary input.

準備完了位置の指と、タップまたはクリックの動き

エアタップは HoloLens 2 でも使用でき、元のバージョンから緩和されています。Air tap is also available on HoloLens 2, and it has been relaxed from the original version. 手をまっすぐにして握っている限り、ほぼすべてのピンチの種類がサポートされるようになりました。Nearly all types of pinches are now supported, as long as the hand is upright and holding still. これによりユーザーは、はるかに簡単にジェスチャを学習したり実行したりできます。This makes it much easier for users to learn and perform the gesture. この新しいエアタップは同じ API を使って古いものの後を継いでいるため、既存のアプリケーションは HoloLens 2 用に再コンパイルした後で新しい動作を自動的に取得します。This new Air tap replaces the old one through the same API, so existing applications will get the new behavior automatically after recompiling for HoloLens 2.

頭の視線入力と [選択] 音声コマンドHead-gaze and "Select" voice command

音声コマンドの実行は、Mixed Reality での主要な操作方法の 1 つです。Voice commanding is one of the primary interaction methods on Mixed Reality. これは、システムを制御するための非常に強力な "ハンズフリー" メカニズムを提供します。It provides a very powerful "Hands Free" mechanism to control the system. さまざまな種類の音声操作モデルがあります。There are diferent types of voice interaction models:

  • 汎用コマンドの [選択]。[クリック] の作動またはコミットをセカンダリ入力として実行できるようにします。The generic command "Select" that allows to perform a "click" actuation or commit as a secondary input.
  • [閉じる] や [大きくする] のようなオブジェクト コマンド。アクションを実行したりアクションにコミットしたりできるにします。Object commands like "Close" or "Make it bigger" that allow to perform and commit to an action as a secondary input.
  • ターゲットを必要としない [スタートに移動] などのグローバル コマンド。Global commnads like "Go to start" that don't require a target.
  • AI 自然言語機能を搭載した Cortana などの、会話のユーザー インターフェイスまたはエンティティ。Conversation user interfaces or entities like Cortana that have an AI Natural Language capability.
  • カスタム コマンドCustom commnads

使用可能なコマンドと使用方法の詳細と包括的な一覧については、「音声コマンド」のガイダンスを参照してください。To find more details and a comprenhesive list of available commands and how to use, check out our voice commanding guidance.

頭の視線入力と HoloLens クリッカーHead-gaze and HoloLens Clicker

HoloLens クリッカーは、HoloLens 専用に構築された最初の周辺機器で、HoloLens 1 Development Edition に含まれています。The HoloLens Clicker is the first peripheral device built specifically for HoloLens and is included with the HoloLens 1 Development Edition. HoloLens クリッカーでは、ユーザーは、最小限の手の動きでクリックし、セカンダリ入力としてコミットできます。The HoloLens Clicker allows a user to click with minimal hand motion and commit as a secondary input. HoloLens クリッカーは、Bluetooth 低エネルギー (BTLE) を使用して HoloLens 1 または 2 に接続します。The HoloLens clicker connects to the HoloLens 1 or 2 using Bluetooth Low Energy (BTLE).

HoloLens クリッカーHoloLens Clicker
HoloLens クリッカーHoloLens Clicker

デバイスのペアリングの詳細と手順については、こちらを参照してくださいMore information and instructions to pair the device can be found here

頭の視線入力と Xbox ワイヤレス コントローラーHead-gaze and Xbox Wireless Controller

Xbox ワイヤレス コントローラーでは、A ボタンを使用して [クリック] の作動をセカンダリ入力として実行できます。The Xbox Wireless Controller allows to perform a "click" actuation as a secondary input by using the A button. このデバイスは、システムのナビゲーションや制御に役立つ既定のアクションのセットにマップされています。The device is mapped to a default set of actions that help navigate and controll the system. コントローラーをカスタマイズする場合は、Xbox アクセサリー アプリを使用して Xbox ワイヤレス コントローラーを構成します。If you want to customize the controller, use the Xbox Accesories App to configure your Xbox Wireless Controller.

Xbox ワイヤレス コントローラーXbox Wireless Controller
Xbox ワイヤレス コントローラーXbox Wireless Controller

Xbox コントローラーと PC のペアリングPairing an Xbox controller with your PC

頭の視線入力と Xbox Adaptive ControllerHead-gaze and Xbox Adaptive Controller

Xbox Adaptive Controller は、主に可動性に制限のあるゲーマーのニーズに応えるために設計されており、Mixed Reality を使いやすくするのに役立つデバイスが 1 つにまとめられたハブです。Designed primarily to meet the needs of gamers with limited mobility, the Xbox Adaptive Controller is a unified hub for devices that helps make Mixed Reality more accessible.

Xbox Adaptive Controller では、A ボタンを使用して [クリック] の作動をセカンダリ入力として実行できます。The Xbox Adaptive Controller allows to perform a "click" actuation as a secondary input by using the A button. このデバイスは、システムのナビゲーションや制御に役立つ既定のアクションのセットにマップされています。The device is mapped to a default set of actions that help navigate and controll the system. コントローラーをカスタマイズする場合は、Xbox アクセサリー アプリを使用して Xbox Adaptive Controller を構成します。If you want to customize the controller, use the Xbox Accesories App to configure your Xbox Adaptive Controller.

Xbox Adaptive ControllerXbox Adaptive Controller
Xbox Adaptive ControllerXbox Adaptive Controller

スイッチ、ボタン、マウント、ジョイスティックなどの外部のデバイスを接続して、ユーザーにとって独自のカスタムのコントローラーのエクスペリエンスを作成します。Connect external devices such as switches, buttons, mounts, and joysticks to create a custom controllers experience that is uniquely yours. ボタン、スティック、およびトリガーの入力は、3.5 mm のジャックと USB ポートを介して接続されている補助デバイスで制御されます。Button, thumbstick and trigger inputs are controlled with assistive devices connected through 3.5mm jacks and USB ports.

Xbox Adaptive Controller のポートXbox Adaptive Controller ports
Xbox Adaptive Controller のポートXbox Adaptive Controller ports

デバイスをペアリングする手順Instructions to pair the device

Xbox のサイトで参照できる詳細情報More info available on the Xbox site

設計ガイドラインDesign guidelines

注意

視線入力の設計に特化したガイダンスは、近日中に公開します。More guidance specific to gaze design coming soon.

頭の視線入力のターゲット設定Head-gaze targeting

すべての操作は、入力モードに関係なく、ユーザーが操作したい要素をターゲットに設定できることに基づいて成り立っています。All interactions are built upon the ability of a user to target the element they want to interact with, regardless of the input modality. Windows Mixed Reality では、これは、通常はユーザーの視線入力を使用して行われます。In Windows Mixed Reality, this is generally done using the user's gaze. ユーザーがエクスペリエンスを正常に使用できるようにするには、ユーザーの意図に対する計算されたシステムの理解と、ユーザーの実際の意図に、できる限り忠実に従う必要があります。To enable a user to work with an experience successfully, the system's calculated understanding of a user's intent, and the user's actual intent, must align as closely as possible. システムがユーザーの意図したアクションを正しく解釈するレベルまで、満足度が高くなりパフォーマンスが向上します。To the degree that the system interprets the user's intended actions correctly, satisfaction increases and performance improves.

ターゲットのサイズ設定とフィードバックTarget sizing and feedback

視線入力ベクトルは、細かいターゲット設定はできなくても大まかなターゲット設定 (若干大きめのターゲットの取得) には最適であることは、繰り返し示されています。The gaze vector has been shown repeatedly to be usable for fine targeting, but often works best for gross targeting (acquiring somewhat larger targets). ターゲットのサイズが最小 1 ~ 1.5 度では、ほとんどのシナリオでユーザーのアクションが成功するはずですが、3 度のターゲットでは、多くの場合、速度がより速いことが考慮されます。Minimum target sizes of 1 to 1.5 degrees should allow successful user actions in most scenarios, though targets of 3 degrees often allow for greater speed. ユーザーがターゲットに設定するサイズは、3D 要素であっても実質的に 2D 領域であり、それが面しているどの投影もターゲット設定可能な領域になるはずです。Note that the size that the user targets is effectively a 2D area even for 3D elements--whichever projection is facing them should be the targetable area. 要素が "アクティブ" である (ユーザーがそれをターゲットにしている) という目立った合図を示すことは非常に役に立ちます。これには、目に見える "ホバー" 効果、音声のハイライトやクリック、要素へのカーソルの明確な配置などの処理が含まれます。Providing some salient cue that an element is "active" (that the user is targeting it) is extremely helpful - this can include treatments like visible "hover" effects, audio highlights or clicks, or clear alignment of a cursor with an element.

2 m の距離での最適なターゲット サイズOptimal target size at 2 meter distance
2 m の距離での最適なターゲット サイズOptimal target size at 2 meter distance

視線入力のターゲットとなるオブジェクトの強調表示の例An example of highlighting a gaze targeted object
視線入力のターゲットとなるオブジェクトの強調表示の例An example of highlighting a gaze targeted object

ターゲットの配置Target placement

ユーザーは、自分の視野内の非常に高い位置や非常に低い位置にある UI 要素を見つけられないことが多く、ユーザーの意識は主に焦点が合っている部分 (通常はほぼ目の高さ) に集中しています。Users will often fail to find UI elements that are positioned very high or very low in their field of view, focusing most of their attention on areas around their main focus (usually roughly eye level). ほとんどのターゲットは目の高さあたりの適正な帯域に配置すると効果的です。Placing most targets in some reasonable band around eye level can help. ユーザーは常に比較的小さい視覚野に焦点を合わせる傾向があることを考慮すると (注意の視円錐は約 10 度)、UI 要素を概念的に関連性のある度数にグループ化すれば、ユーザーが視線入力で領域内を移動する場合に、項目から項目への注意の連鎖動作を活用できます。Given the tendency for users to focus on a relatively small visual area at any time (the attentional cone of vision is roughly 10 degrees), grouping UI elements together to the degree that they're related conceptually can leverage attention-chaining behaviors from item to item as a user moves their gaze through an area. UI を設計する際は、HoloLens とイマーシブ ヘッドセットでは視野内に潜在的な大きなバリエーションがあることに注意してください。When designing UI, keep in mind the potential large variation in field of view between HoloLens and immersive headsets.

Galaxy Explorer で視線入力のターゲット設定を容易にするためにグループ化された UI 要素の例An example of grouped UI elements for easier gaze targeting in Galaxy Explorer
Galaxy Explorer で視線入力のターゲット設定を容易にするためにグループ化された UI 要素の例An example of grouped UI elements for easier gaze targeting in Galaxy Explorer

ターゲット設定動作の向上Improving targeting behaviors

何かをターゲットにするというユーザーの意図を判断できる場合は (または、ほぼ間違いないと思われる場合は)、正しくターゲットに設定されているかのように、操作で "ニアミス" の試行を受け入れると非常に便利な場合があります。If user intent to target something can be determined (or approximated closely), it can be very helpful to accept "near miss" attempts at interaction as though they were targeted correctly. Mixed Reality エクスペリエンスに組み込むことができる、成功する方法がいくつかあります。There are a handful of successful methods that can be incorporated in mixed reality experiences:

頭の視線入力の安定化 ("重力井戸")Head-gaze stabilization ("gravity wells")

これは、ほとんど、または常にオンにしておくべきです。This should be turned on most/all of the time. この手法は、ユーザーに起こることのある頭や首の自然な小刻みな揺れを取り除きます。This technique removes the natural head/neck jitters that users may have. また、見たり話したりする動作による動きも取り除きます。Also movement due to looking/speaking behaviors.

これらは対話型コンテンツが少ない領域で最大の効果を発揮します。These work best in areas with sparse interactive content. ユーザーが何を操作しようとしていたのかを判断できる可能性が高い場合は、ある程度の意図を想定するだけで、ターゲット設定機能を補完できます。If there is a high probability that you can determine what a user was attempting to interact with, you can supplement their targeting abilities by simply assuming some level of intent.

アクションをさかのぼって有効にする/後で有効にするBackdating/postdating actions

このメカニズムは、速度が必要なタスクに役立ちます。This mechanism is useful in tasks requiring speed. ユーザーが一連のターゲット設定/アクティブ化の操作をすばやく進めているときは、何らかの意図を想定して、飛ばされた手順で、ユーザーがタップの少し前または少し後 (初期段階のテストでは前後 50 ミリ秒が効果的でした) に焦点を合わせたターゲットに作用できるようにすると便利です。When a user is moving through a series of targeting/activation maneuvers at speed, it can be useful to assume some intent and allow missed steps to act upon targets which the user had in focus slightly before or slightly after the tap (50ms before/after was effective in early testing).

スムージングSmoothing

このメカニズムはパス設定の動きで役に立ち、自然な頭の動きの特性によるわずかな小刻みな揺れやぐらつきを減らします。This mechanism is useful for pathing movements, reducing the slight jitter/wobble due to natural head movement characteristics. パス設定の動きをスムーズにするときは、時間の経過と共にではなく、動きのサイズ/距離によってスムーズにしてください。When smoothing over pathing motions, smooth by size/distance of movements rather than over time

磁性Magnetism

このメカニズムは、"最も近いリンク" アルゴリズムのより一般的なバージョンと考えることができます。つまり、ユーザーの意図に近づくために対話型レイアウトに関する知識を活用して、ユーザーがターゲットに近づくにつれてターゲットに向かってカーソルを描画したり、単にヒットボックスを増やしたりします。This mechanism can be thought of as a more general version of "Closest link" algorithms - drawing a cursor toward a target, or simply increasing hitboxes (whether visibly or not) as users approach likely targets, using some knowledge of the interactive layout to better approach user intent. これは、小さいターゲットの場合は特に効果を発揮する可能性があります。This can be particularly powerful for small targets.

焦点の持続性Focus stickiness

近くにあるどの対話型要素に焦点を合わせるかを判断するときは、現在焦点が合っている要素にバイアスを提供します。When determining which nearby interactive elements to give focus to, provide a bias to the element that is currently focused. これは、自然なノイズを含む 2 つの要素間の中間でさまよっているときの、焦点の不規則な切り替え動作を減らすのに役立ちます。This will help reduce erratic focus switching behaviours when floating at a midpoint between two elements with natural noise.

複合ジェスチャ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.

エアタップ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. エアタップとホールドを組み合わせると、オブジェクトのアクティブ化の代わりのピックアップや、コンテキスト メニューの表示などの "マウスダウン" の 2 次操作などの腕の動きと組み合わせたときに、より複雑なさまざまな "クリックしてドラッグ" 操作が可能になります。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.

ナビゲーションのジェスチャは仮想ジョイスティックのように動作し、リング メニューなどの 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'.

複合ジェスチャに関する詳細情報More info on composite gestures

ジェスチャ認識エンジン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. たとえば、ユーザーが部屋を横切るホログラフィック オブジェクトを動かしている場合、ジェスチャ フレームを越えると動きは停止しますが、開始点には戻りません。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