直接操作Direct Manipulation

HoloLens 2 では、自分の手でホログラム dircly をタッチすることができますを直接操作の入力モデルがあります。The HoloLens 2 has a direct manipulation input model that lets you touch holograms dircly with your hands. 直接操作の目的は、現実の世界と同じように動作するオブジェクトです。The goal with direct manipulation is for objects to behave just as they do in the real world. それを押すだけでボタンをアクティブ化しもおよびを取得、取得、してオブジェクトを移動できます。You can activate buttons by simply pressing them, and even and pick up, grab, and move objects. これらのシナリオで 2D のコンテンツは、仮想のタッチ スクリーンのように動作します。In these scenarios, 2D content behaves like a virtual touchscreen.

直接の操作は、簡単にについては、ユーザーとが楽しいです。Direct manipulation is easy for users to learn, and it's fun too. Arm の範囲内にあるコンテンツと対話するための使用に適してつまり、「近くに渡します」入力モデルと見なされます。It is considered a "hands near" input model, meaning it's best used for interacting with content that is within an arm's reach.

直接操作は、アフォー ダンスに基づく、つまりユーザー フレンドリです。Direct manipulation is affordance-based, meaning it's user friendly. ユーザーに教えるにシンボリック ジェスチャはありません。There are no symbolic gestures to teach users. すべての対話は、タッチまたは取得できるビジュアル要素の周囲に構築されます。All interactions are built around a visual element that you can touch or grab.

デバイスのサポートDevice support

入力モデルInput Model HoloLens (第 1 世代)HoloLens (1st Gen) HoloLens 2HoloLens 2 イマーシブ ヘッドセットImmersive Headsets
直接操作Direct manipulation ❌ がサポートされていません❌ Not supported 推奨 ✔️✔️ Recommended 方法として、➕ポイントし、の手でコミットをお勧めします。➕ An alternative, point and commit with hands is recommended.

直接操作では、HoloLens 2 では、プライマリ入力モデルを新しい関節手動追跡システムを使用します。Direct manipulation is a primary input model on HoloLens 2, and utilizes the new articulated hand-tracking system. 入力モデルでは、アニメーション コント ローラーを使用してイマーシブ ヘッドセットに収録されてもが、オブジェクトの操作の外部での相互作用の主要な手段としては推奨されません。The input model is also available on immersive headsets through the use of motion controllers, but is not recommended as a primary means of interaction outside of object manipulation. 直接 manipluation は HoloLens v1 でご利用いただけません。Direct manipluation is not available on HoloLens v1.

Collidable 指先Collidable fingertip

HoloLens 2 では、ユーザーの実際の手が認識され、左側と右側のスケルトン モデルとして解釈されます。On HoloLens 2, user's real hands are recognized and interpreted as left and right hand skeletal models. 手を直接ホログラム手を加えることのアイデアを実装するために理想的には、5 コライダーを接続できます各ハンドのスケルトン モデルのすぐに利用できる 5。To implement the idea of touching holograms directly with hands, ideally, 5 colliders could be attached to 5 fingertips of each hand skeletal model. ただし、実際には、触るフィードバックがないことによる 10 collidable すぐ予期しない競合、発生ホログラム。However, practically, due to the lack of tactile feedback, 10 collidable fingertips caused unexpected and unpredictable collisions with holograms.

そのため、それぞれインデックスの指でのみコライダーをお勧めします。Hence, we suggest to only put a collider on each index finger. Collidable インデックス ヒントは、次の図に示すようにまだ 1 本の指のキーを押して、1 本指でタップ、2 本の指のキーを押して、5 本の指のキーを押してなどの他の指に関連する多様なタッチ ジェスチャのアクティブなタッチ ポイントとして使用できます。The collidable index fingertips can still serve as active touch points for diverse touch gestures involving other fingers, such as 1-finger press, 1-finger tap, 2-finger press and 5-finger press, as shown in the image below.

Collidable 指先イメージ

球のコライダーSphere collider

ランダムな汎用図形を使用せずに球コライダーを使用して、ほぼ対象とする場合より優れた的な手掛かりを提供することを視覚的に表示するためにお勧めします。Instead of using a random generic shape, we suggest to use a sphere collider and to visually render it to provide better cues for near targeting. 球の直径は、タッチの精度を向上させるインデックス本の指の太さと一致する必要があります。The sphere's diameter should match the thickness of the index finger to increase touch accuracy. 手 API を呼び出すことによって、変数の本の指の太さを取得する簡単になります。It will be easy to retrieve the variable of finger thickness by calling the hand API.

指先カーソルFingertip cursor

インデックスの指で collidable 球体をレンダリングするだけでなく対話形式での近くに対象とするエクスペリエンスの向上を実現するために、指先カーソル高度なソリューションを作成しました。In addition to rendering a collidable sphere on the index fingertip, we've created an advanced solution, fingertip cursor, to achieve better near-targeting experience interactively. インデックスの指で接続されているドーナツ型のカーソルになります。It is a donut-shaped cursor attached on the index fingertip. 近接、に従って動的に反応する方向と以下のようにサイズの観点から、ターゲット。According to proximity, it dynamically reacts to a target in terms of orientation and size as detailed below:

  • 人差し指ホログラムに向かって移動すると、カーソルはホログラムの画面に並列では常と、徐々 にそれに応じてそのサイズを縮小します。When an index finger moves toward a hologram, the cursor is always parallel to the hologram's surface and gradually shrinks its size accordingly.
  • 指表面に触れてとすぐに、カーソルがドットに縮小し、タッチ イベントを出力します。As soon as the finger touches the surface, the cursor shrinks into a dot and emits a touch event.

対話型のフィードバックでは、ユーザーは web コンテンツへのハイパーリンクをトリガーする、次のように、ボタンを押すなどのタスクを対象とするほぼ高精度を実現できます。With the interactive feedback, users can achieve high precision near targeting tasks, such as triggering a hyperlink on web content or pressing a button, as shown, below.

指先カーソル イメージ

近接シェーダーで境界ボックスBounding box with proximity shader

ホログラム自体には、触るフィードバックがないことを補正するために、ビジュアルおよびオーディオの両方のフィードバックを提供する機能も必要です。The hologram itself also requires the ability to provide both visual and audio feedback to compensate the lack of tactile feedback. そのため、近接シェーダーで境界ボックスの概念を生成します。For that, we generate the concept of a bounding box with proximity shader. 境界ボックスは、3 D オブジェクトを囲む最小帯域幅消費型領域です。A bounding box is a minimum volumetric area that encloses a 3D object. 境界ボックスには、近接シェーダーと呼ばれる、対話型の表示メカニズムがあります。The bounding box has an interactive rendering mechanism called proximity shader. 近接シェーダーに動作します。The proximity shader behaves:

  • 人差し指が範囲内と、境界ボックスの画面で指のスポット ライトがキャストされます。When the index finger is within a range, a fingertip spotlight is cast on the surface of bounding box.
  • 画面に指が近づいたら、適宜にスポット ライトがでまとめます。When the fingertip gets closer to the surface, the spotlight condenses accordingly.
  • 指、画面をタッチとすぐに、境界ボックス全体は色を変更またはタッチの状態を反映するように視覚効果を生成します。As soon as the fingertip touch the surface, the whole bounding box changes the color or generate visual effect to reflect the touch state.
  • その一方で、サウンド効果は、タッチを視覚的フィードバックを強化するためにアクティブにできます。Meanwhile, a sound effect can be activated to enhance the visual touch feedback.

近接シェーダーのイメージの境界ボックス

Pressable ボタンPressable button

Collidable 指でのユーザーが、非常に基本的な holographic UI コンポーネントは、pressable ボタンと対話する準備ができてようになりました。With a collidable fingertip, users are now ready to interact with the very fundamental holographic UI component, pressable button. Pressable ボタンは、直接本の指のキーを押してに合わせた holographic ボタンです。A pressable button is a holographic button tailored for direct finger press. ここでも、触るフィードバックがないことによる pressable ボタンに触るフィードバックに関連する問題に対処するいくつかのメカニズムを提供します。Again, due to the lack of tactile feedback, a pressable button equips a couple mechanisms to tackle tactile feedback-related issues.

  • 最初のメカニズムは、前のセクションに記載された、近接シェーダーで境界ボックスです。The first mechanism is a bounding box with proximity shader, detailed in the previous section. 深く理解する方法をユーザーの近接を提供する機能、ボタンを含む連絡先。It serves to provide better sense of proximity for users to approach and make contact with a button.
  • 2 つ目は、低下します。The second one is depression. 指先をボタンに接続した後、キーを押して、感を作成します。It creates sense of press, after a fingertip contacts the button. このメカニズムは、ボタンは、深さ軸に沿った指と緊密に移動します。The mechanism is that the button tightly moves with the fingertip along the depth axis. ボタンは、(キーを押します) で指定された深さに達すると、渡された後に (リリース) の深さを離れるときにトリガーできます。The button can be triggered when it reaches a designated depth (on press) or leaves the depth (on release) after passing through it.
  • ボタンがトリガーされたときに、フィードバックを強化するために、サウンド効果を追加する必要があります。The sound effect should be added to enhance feedback, when the button is triggered.

Pressable ボタンの画像

2D のスレートの相互作用2D slate interaction

2D スレートは、web ブラウザーなどの 2D アプリのコンテンツをホストしている holographic コンテナーです。A 2D slate is a holographic container hosting 2D app contents, such as web browser. 物理タッチ画面との対話のメンタル モデルを利用することを直接操作を使用して 2D スレートと対話するための設計概念です。The design concept for interacting with a 2D slate via direct manipulation is to leverage the mental model of interacting with a physical touch screen.

スレートの連絡先と操作。To interact with the slate contact:

  • インデックス本の指を使用して、ハイパーリンクやボタンを押します。Use an index finger to press a hyperlink or a button.
  • スレートのコンテンツをスクロール アップ/ダウン、人差し指を使用します。Use an index finger to scroll a slate content up and down.
  • ユーザーは、in および out 本の指の動きを相対に従ってスレートのコンテンツを拡大する 2 つの人差し指を使用します。Users use two index fingers to zoom in and out the slate content according to relative motion of fingers.

2D のスレート イメージ

2D を操作するためには、それ自体をスレートします。For manipulating the 2D slate itself:

  • 角や辺に最も近い操作アフォーを明らかに手をアプローチします。Approach your hands toward corners and edges to reveal the closest manipulation affordances.
  • 操作アフォーをつかんで、上隅にあるアフォーで統一されたスケーリングを実行、およびエッジ アフォーを介してリフローします。Grab the manipulation affordances, and perform uniform scaling through the corner affordances and reflow via the edge affordances.
  • 2D のスレートは、全体のスレートを移動することができますの上部にある holobar を取得します。Grab the holobar at the top of the 2D slate, which lets you move the whole slate.

スレートの操作のイメージ

3D オブジェクトの操作3D object manipulation

HoloLens 2 には、境界ボックスを各 3D オブジェクトに適用することで 3D hologramphic オブジェクトを操作ユーザーが直接に手を有効にすることができます。HoloLens 2 lets lets users enable their hands to direct manipulate 3D hologramphic objects by applying a bounding box to each 3D object. 境界ボックスは、その近接シェーダーを通じてより優れた深さ perception を提供します。The bounding box provides better depth perception through its proximity shader. 境界ボックスを 2 つの 3D オブジェクトの操作のデザイン方法があります。With the bounding box, there are two design approaches for 3D object manipulation.

アフォー ダンス ベースの操作Affordance-based manipulation

これにより、境界ボックスとその周り操作アフォーを使用して 3D オブジェクトを操作できます。This lets you manipulate the 3D object through a bounding box and the manipulation affordances around it. ユーザーの手の形は、3 D オブジェクトの近くとすぐに、境界ボックスと最も近いアフォー ダンス開示されます。As soon as a user's hand is close to a 3D object, the bounding box and the nearest affordance are revealed. ユーザーは、オブジェクト全体、回転するエッジ アフォーおよびを一様にスケール上隅にあるアフォーを移動する、境界ボックスを取得できます。Users can grab the bounding box to move the whole object, the edge affordances to rotate and the corner affordances to scale uniformly.

3D オブジェクトの操作のイメージ

非アフォー ダンス ベースの操作Non-affordance based manipulation

このメカニズムで境界ボックスにアフォー ダンスはアタッチされません。In this mechanism, no affordance is attached to the bounding box. ユーザーは、のみ、境界ボックスを表示し、直接やり取りすることができます。Users can only reveal the bounding box, then directly interact with it. 境界ボックスは、1 つの手でグラブされる場合平行移動とオブジェクトの回転、モーション センサーとして手のアイコンの向きに関連付けられます。If the bounding box is grabbed with one hand, the translation and rotation of the object are associated to motion and orientation of the hand. オブジェクトは、2 つの手をグラブ ユーザーで変換、スケールおよび回転させる 2 つのハンドの動作を相対に従ってことができます。When the object is grabbed with two hands, users can translate, scale and rotate it according to relative motions of two hands.

特定の操作には、有効桁数が必要ですを使用することをお勧めします。アフォー ダンスに基づく操作粒度の高いレベルを提供するため、します。Specific manipulation requires precision, we recommend you use affordance-based manipulation, because it provides a high level of granularity. 柔軟な操作は、ことをお勧めする使用非アフォー ダンス操作はインスタントとおもしろいエクスペリエンスことができます。For flexible manipulation, we recommend you uses non-affordance manipulation is as it allows for instant and playful experiences.

Instinctual ジェスチャInstinctual gestures

HoloLens とは異なり (第 1 世代) 講師ユーザー ブルーム エア タップなどのいくつかの定義済みジェスチャ。Unlike HoloLens (1st gen), we taught users a couple predefined gestures,such as Bloom and Air Tap. HoloLens の 2、シンボルのジェスチャを記憶するユーザーをお願いはありません。For HoloLens 2, we don't ask users to memorize any symbolic gestures. すべての必要なユーザー ジェスチャ、ホログラムと内容との対話をユーザーの必要性は instinctual です。All required user gestures, users need to interact with holograms and contents, are instinctual. Instinctual ジェスチャを実現する方法は、UI アフォーのデザインによってジェスチャを実行するユーザーをガイドです。The way to achieve instinctual gesture is to guide users to perform gestures through the design of UI affordances.

などの場合は、オブジェクトのグラブまたは 2 本の指のピンチでのコントロール ポイントにぜひ、オブジェクトまたはコントロール ポイントは小にします。For example, if we encourage you to grab an object or a control point with two finger pinch, the object or the control point should be small. 5 本の指グラブを実行することをする場合、オブジェクトまたはコントロール ポイントが比較的大きななければなりません。If we want you to perform five finger grab, the object or the control point should be relatively big. ボタンと同様に、小さなボタンはユーザーを制限する大きなボタンをユーザーの手のひらで押すお勧めします中に 1 本の指を押します。Similar to buttons, a tiny button would limit users to press it with a single finger, while a huge button would encourage users to press it with their palms.

ハンドと 6 の自由度のコント ローラーの間の対称のデザインSymmetric design between hands and 6 DoF controllers

お気付き相互作用の parallels VR で AR およびモーションのコント ローラー内のハンド間に描画できることがあります。You may have noticed that there are now interaction parallels we can draw between hands in AR and motion controllers in VR. 両方の入力は、それぞれの環境での直接の操作をトリガーする使用できます。Both inputs can be used to trigger direct manipulations in their respective environments. HoloLens の 2 をグラブしてドラッグ近距離 works 手をあまりグラブ ボタンと同じ方法では、WMR でモーション コント ローラーには。In HoloLens 2, grabbing and dragging with hands at a close distance works much in the same way as the grab button does on the motion controllers in WMR. これにより、2 つのプラットフォーム間の相互作用に関する知識をユーザーに提供され、便利だとこれまで決めた場合、他のいずれかからアプリを移植します。This provides users with interaction familiarity between the two platforms and may prove useful should you ever decide to port your app from one to the other.

視線を最適化しますOptimize with eye tracking

ホログラムを誤ってトリガーすることがなくもう手を任意の場所を移動できない場合は、ストレスも簡単になることができますが、意図したとおりに動作する場合、直接操作を魔法のようなと思われることができます。Direct manipulation can feel magical if it works as intended, but can also quickly become frustrating if you can’t move your hand anywhere anymore without unintentionally triggering a hologram. ユーザーの目的は、どのような改善を識別する視線が可能性のあるできます。Eye tracking can potentially help in better identifying what the user’s intent is.

  • ときに:誤って操作応答のトリガーを減らします。When: Reduce falsely triggering a manipulation response. 視線では、どのようなユーザーが現在進行中でより良く理解できます。Eye tracking allows for better understanding what a user is currently engaged with. たとえば、以上に到達すると、実際の作業のツールを取得するときに、holographic (説明) のテキストを読んでいるとします。For example, imagine you are reading through a holographic (instructional) text when reaching over to grab you real-world work tool.

    これにより、誤ってに (おそらくもが、ユーザーのフィールドの視野 (FOV) 外に) する前に気付きですかもいくつかの対話型 holographic ボタンに手を移動します。By doing so, you accidentally move your hand across some interactive holographic buttons that you hadn't even noticed before (maybe it even was outside of the user's Field-of-View (FOV)).

    要するに:ユーザーいないホログラムしばらくの間、見てまだ、タッチまたは把握イベントが検出されましたが、ユーザーがそのホログラムと対話する目的で実際にいる可能性があります。Long story short: If the user hasn't looked at a hologram for a while, yet a touch or grasp event has been detected for it, it is likely that the user wasn't actually intending to interact with that hologram.

  • どれを:別の例にはとは別に正の値の false のアクティブ化をアドレス指定にはよりどのホログラムを取得したりの観点からクリアは、いくつかホログラムがそれぞれの近くに配置されている場合は特に、積集合の正確なポイントは指定できません流行っていますよねを識別するが含まれていますその他。Which one: Aside from addressing false positive activations, another example includes better identifying which holograms to grab or poke as the precise intersection point may not be clear from your perspective especially if several holograms are positioned close to each other.

    あるときに目追跡 HoloLens 2 で特定の制限について正確に視線の先を目、まだが非常に役立ちますの深さのような違いのための相互作用の近く手入力で操作するときにそれを判断できます。While eye tracking on HoloLens 2 has a certain limitation on how accurately it can determine you eye gaze, this can still be very helpful for near interactions due to depth disparity when interacting with hand input. つまりは手がの背後にある、またはホログラムたとえば操作ウィジェットを正確に取得する前にあるかどうかを確認する困難な場合があります。This means that it is sometimes difficult to determine whether your hand is behind or in front of a hologram to precisely grab a manipulation widget for example.

  • 場所:どのようなユーザーに関する情報を使用はクイック スロー ジェスチャで見る。Where to: Use information about what a user is looking at with quick- throwing gestures. ホログラムを取得し、約、目的の送信先に出すように頼みます。Grab a hologram and roughly toss it toward your intended destination.

    場合もありますがこの中に非常に不正確な変換先は問題なく、すばやく手のジェスチャを実行する可能性があります。While this may sometimes works just fine, quickly performing hand gestures may result in highly inaccurate destinations. これは、視線助け、目的の位置に戻すベクトルをスローして手のアイコンのリーン場所です。This is where eye tracking could help out to lean the hand throwing vector back to your intended position.

関連項目See also