視線入力とコミット
視線入力とコミット は、マウスを使用してコンピューターとやり取りする方法と密接に関連する基本的な入力モデルです。 ポイント & クリックします。 このページでは、2種類の視線入力(頭の視線入力と目の視線入力)および異なる種類のコミットアクションについて紹介します。 視線入力とコミットは、間接操作による遠距離入力モデルと見なされます。 手の届かないホログラフィックコンテンツとの対話式操作に最適です。
Mixed Realityヘッドセットは、ユーザーの頭の位置と向きを使用して、その頭の方向ベクトルを決定できます。 視線入力は、ユーザーの目と目の間から直接まっすぐ前前を向いているレーザーと考えてください。 これはユーザーが目を向けている場所の非常に粗い近似値です。 アプリケーションは、このレイを仮想のオブジェクトや実世界のオブジェクトと交差させ、その位置にカーソルを描画して、ターゲットとするものをユーザーに知らせます。
頭の視線入力に加えて、HoloLens 2などの一部のMixed Realityヘッドセットには、目の視線入力ベクトルを生成する視線追跡システムが含まれます。 これにより、ユーザーが目を向けている場所のきめ細かい測定値が得られます。 どちらの場合も、視線入力はユーザーの意図を示す重要なシグナルを表します。 システムがユーザーの意図したアクションを正しく解釈して予測できるほど、ユーザーの満足度と性能が向上します。
Mixed Reality開発者が頭の視線入力または目の視線入力からメリットを得る方法のいくつかの例を以下に示します。
- アプリは、視線入力をシーン内のホログラムと交差させて、ユーザーの注意がどこに向けられているのかを(目の視線入力により正確に判断できます。
- アプリは、ユーザーの視線入力に基づいてジェスチャとコントローラーの押下を導き、これにより、ユーザーはホログラムの選択、アクティブ化、掴み、スクロール、または対話式操作をシームレスに行うことができます。
- アプリにより、ユーザーは視線を空間的マッピングメッシュに交差させることで、実世界の表面にホログラムを配置できます。
- アプリは、ユーザーが重要なオブジェクトの方向を見ていないときを認識すると、そのオブジェクトの方を向くように、ビジュアルとオーディオのキューを提供できます。
デバイス サポート
入力モデル | HoloLens (第 1 世代) | HoloLens 2 | イマーシブ ヘッドセット |
頭の視線入力とコミット | ✔️ 推奨 | ✔️ 推奨 (3 番目の選択肢 -他のオプションを参照) | ➕ 代替オプション |
目の視線入力とコミット | ❌ 使用可能 | ✔️ 推奨 (3 番目の選択肢 -他のオプションを参照) | ❌ 使用可能 |
頭と目の追跡の設計概念デモ
動作している頭と目の追跡の設計概念を確認する場合は、下の「Designing Holograms - 頭の追跡と目の追跡」のビデオ デモをご覧ください。 終わったら、続けて特定のトピックについて詳しく見ていきます。
このビデオは、"Designing Holograms" HoloLens 2 アプリから撮影されました。 完全なエクスペリエンスをダウンロードしてご利用いただくには、ここから入手できます。
視線入力
目の視線入力または頭の視線入力のどちらを使いますか?
「目の視線入力とコミット」または「頭の視線入力とコミット」入力モデルのどちらを使用すべきかという質問に直面するときには、いくつかの考慮事項があります。 イマーシブヘッドセットまたはHoloLens(第1世代)のために開発している場合、選択は簡単で、それは頭の視線入力とコミットです。 HoloLens 2のために開発している場合、選択は少し難しくなります。 それぞれに伴う利点と課題を理解することが重要です。 ここでは、頭の視線入力と目の視線入力のターゲット設定を比較するために、次の表に幅広い長所と短所をまとめています。 これがすべてではなく、ここでMixed Realityにおける目の視線入力のターゲット設定についてさらに学ぶことをお勧めします。
- HoloLens2での視線追跡:いくつかの開発者ガイドを含むHoloLens 2での新しい視線追跡機能の概要
- 目の視線入力の対話式操作:入力として視線追跡を使用することを計画するときの設計上の考慮事項と推奨事項
目の視線入力のターゲット設定 | 頭の視線入力のターゲット設定 |
高速! | 低速 |
少ない労力(ほとんどの場合、体の移動は必要ありません) | 疲れる可能性があります―不快に感じることがあります(首の痛みなど) |
カーソルが必要ありませんが、僅かなフィードバックをお勧めします。 | カーソルを表示する必要があります。 |
スムーズな視線の移動がありません―たとえば、描画には適しません。 | より効果的に制御され、明示的です。 |
小さいターゲット(たとえば、小さいボタンやウェブリンク)では難しいです。 | 信頼できます。 優れたフォールバックが得られます。 |
... | ... |
視線入力およびコミットの入力モデルのために頭の視線入力または目の視線入力のどちらを使用する場合でも、それぞれに異なるいくつかのデザイン制約があります。 これらは、目の視線入力とコミットおよび頭の視線入力とコミットの記事で個別にカバーされます。
カーソル
頭の視線入力の場合、ほとんどのアプリは、カーソルまたはその他の聴覚/視覚指示を使用して、ユーザーが対話しようとする対象について自信を持たせる必要があります。
通常、このカーソルは、頭の視線が最初にオブジェクトと交差する世界に配置し、そのオブジェクトは、ホログラムまたは実世界の表面である場合があります。
目の視線入力の場合、通常、カーソルを表示しないことをお勧めし、これは、すぐにユーザーにとって煩雑で煩わしくなるためです。
代わりに、視覚的ターゲットを微妙に強調表示するか、またはフェイントアイカーソルを使用して、ユーザーが対話しようとする対象について自信を持たせます。 詳細については、HoloLens 2での視線ベースの入力に関するデザインガイダンスを参照してください。
画像:視線入力を示す視覚的カーソルの一例
Commit
ターゲットでの視線入力のさまざまな方法について話した後、視線入力とコミットのコミット部分についてもう少し詳しく説明します。 ユーザーは、オブジェクトまたはUI要素をターゲットに設定した後、二次入力を使用してそれと対話したりクリックしたりできます。 これは、入力モデルのコミット ステップと呼ばれます。
以下のコミット方法がサポートされています。
- エアタップハンドジェスチャ(すなわち、手を前に上げて人差し指と親指を合わせます)
- 「選択」または対象の音声コマンドの1つを言います。
- HoloLensクリッカーで1つのボタンを押します。
- Xboxゲームパッド上の「A」ボタンを押します。
- Xboxアダプティブコントローラー上の「A」ボタンを押します。
視線入力とエアタップジェスチャ
エアタップは、手をまっすぐにしてタップするジェスチャです。 エアタップを使用するには、人差し指を準備完了位置まで上げてから親指と摘んで、人差し指を上に戻すと放します。 HoloLens 1(第1世代)では、エアタップは最も一般的な二次入力です。
準備完了位置にある指
指を下げてタップまたはクリックします
エアタップはHoloLens 2でも利用できます。 これは、元のバージョンから緩和されました。 手をまっすぐにして保っている限り、ほぼすべてのピンチの種類がサポートされるようになっています。 これによりユーザーは、はるかに簡単にジェスチャを学習したり使用したりできます。 この新しいエアタップは、同じAPIを介して古いエアタップを置き換えるため、既存のアプリケーションは、HoloLens2のために再コンパイルした後に自動的に新しい挙動を有するようになります。
視線入力と「選択」音声コマンド
音声コマンドは、Mixed Realityでの主要な対話式操作方法の1つです。 これは、システムを制御するための強力なハンズフリーメカニズムを提供します。 さまざまな種類の音声対話式操作モデルがあります。
- クリックの作動またはコミットを二次入力として使用する汎用の「選択」コマンド
- オブジェクトコマンド(たとえば「閉じる」や「拡大する」)は、二次入力としてアクションを実行しコミットします。
- グローバルコマンド(たとえば「開始に移行」)はターゲットを必要としません。
- Cortanaなどの会話のユーザーインターフェイスまたはエンティティはAI自然言語機能を有します。
- カスタム音声コマンド
利用可能な音声コマンドの詳細および総合リスト、ならびにそれらの使用方法の詳細については、音声コマンドガイダンスをご覧ください。
視線入力とHoloLensクリッカー
HoloLensクリッカーは、HoloLens専用にビルドされた初めての周辺機器です。 これはHoloLens(第1世代)Development Editionに含まれます。 HoloLensクリッカーにより、ユーザーは、最小限の手の動きでクリックし、二次入力としてコミットできます。 HoloLensクリッカーは、Bluetooth Low Energy(BTLE)を使用してHoloLens(第1世代)またはHoloLens 2に接続します。
デバイスのペアリングの詳細と命令
画像:HoloLensクリッカー
視線入力とXboxワイヤレス コントローラー
Xboxワイヤレスコントローラーは、「A」ボタンを使用してクリックの作動を二次入力として実行します。 このデバイスは、システムのナビゲーションや制御に役立つ既定のアクションのセットにマップされます。 コントローラーをカスタマイズする場合は、Xboxアクセサリーアプリケーションを使用してXboxワイヤレスコントローラーを構成します。
XboxコントローラーとPCのペアリング方法
画像:Xboxワイヤレスコントローラー
視線入力とXbox Adaptive Controller
Xbox Adaptive Controllerは、主にモビリティが制限されているゲーマーのニーズを満たすために設計され、Mixed Realityをより利用しやすくするのに役立つデバイスの統合ハブです。
Xbox Adaptive Controllerは、「A」ボタンを使用してクリックの作動を二次入力として実行します。 このデバイスは、システムのナビゲーションや制御に役立つ既定のアクションのセットにマップされます。 コントローラーをカスタマイズする場合、Xboxアクセサリーアプリケーションを使用してXbox Adaptive Controllerを構成します。
Xbox Adaptive Controller
スイッチ、ボタン、マウント、ジョイスティックなどの外部のデバイスを接続して、ユーザーにとって独自のカスタムのコントローラーのエクスペリエンスを作成します。 ボタン、スティック、およびトリガーの入力は、3.5mmのジャックとUSBポートを介して接続される補助デバイスで制御されます。
Xbox Adaptive Controller のポート
複合ジェスチャ
エアタップ
エアタップジェスチャ(および以下のその他のジェスチャ)は、特定のタップのみに反応します。 アプリケーションは、メニューや掴みなどの他のタップを検出するために、上記の2つの重要なコンポーネントジェスチャのセクションで記載される低レベルの対話式操作を直接使用する必要があります。
タップ アンド ホールド
ホールドは、単にエアタップの下向きの指の位置を保持することです。 エアタップと保持を組み合わせると、オブジェクトのアクティブ化の代わりにピックアップや、コンテキストメニューの表示などのマウスダウンの二次対話式操作などの腕の移動と組み合わせたとき、より複雑なさまざまな「クリックおよびドラッグ」対話式操作を可能にします。 ただし、ユーザーが、いずれかの拡張ジェスチャ中に手の姿勢を緩める傾向があるため、このジェスチャのデザイン時には注意が必要です。
操作
操作ジェスチャを使用して、ユーザーの手の移動に対して1:1でホログラムを反応させるとき、ホログラムを移動、サイズ変更、または回転させることができます。 このような 1 対 1 の動きの 1 つの用途は、ユーザーが世界中で絵を描いたりペイントしたりできるようにすることです。 操作のジェスチャの最初のターゲット設定は、視線入力またはポインティングによって行う必要があります。 長押しを始めると、いずれかのオブジェクト操作を手の移動によって処理し、これにより、ユーザーは、操作している間に自由に見回すことができます。
「ナビゲーション」
ナビゲーションのジェスチャは仮想ジョイスティックのように動作し、リング メニューなどの UI ウィジェット内で移動するために使用できます。 タップ アンド ホールドでジェスチャを始めてから、最初に押したところを中心に、正規化された 3D 立方体の中で手を動かします。 開始点が0で、-1~1の値からX、Y、またはZ軸に沿って手を動かすことができます。 ナビゲーションを使用すると、マウスの中央ボタンをクリックしてからマウスを上下に移動して 2 次元の UI をスクロールするのと同様に、速度ベースの連続したスクロールやズームのジェスチャを作成できます。
レールによるナビゲーションは、一定の軸で一定の閾値に達するまで、その軸での移動を認識する機能を指します。 これは、アプリケーションがX、Y軸を横切るナビゲーションジェスチャだけでなく、レールで指定されたX軸も認識するように構成される場合など、開発者がアプリケーションで複数の軸での移動を有効にする場合にのみ役立ちます。 この場合、手の動きがY軸でも発生する場合、システムはX軸の仮想レール(ガイド)内にある限り、X軸を横切る手の移動を認識します。
2D のアプリ内では、ユーザーは、アプリ内でスクロール、ズーム、またはドラッグするために、垂直方向のナビゲーション ジェスチャを使用できます。 これは、同じ種類のタッチ ジェスチャをシミュレートするために、アプリに仮想の指でのタッチを挿入します。 ユーザーは、ボタンを選択するか、「<スクロール/ドラッグ/ズーム>」と言うことで、アプリケーション上部のバーでツールを切り替えて、これらのどのアクションを実行するかを選択できます。
ジェスチャ認識エンジン
ジェスチャ認識を使用する1つの利点は、現在のターゲットホログラムが受け入れることができるジェスチャのみのためにジェスチャ認識装置を構成できることです。 プラットフォームは、これらのサポートできる特定のジェスチャを区別するために必要な曖昧さ回避のみを行います。 このように、エアタップのみをサポートするホログラムは、押してから放すまでの任意の長さの時間を受け入れることができ、一方、タップと保持の両方をサポートするホログラムは、保持時間の閾値の後にタップを保持に変えることができます。
手の認識
HoloLens は、デバイスで確認できる片手または両手の位置を追跡することで、手のジェスチャを認識します。 HoloLens は、手が準備完了状態 (手の甲を自分に向けて人差し指を立てる) または押された状態 (手の甲を自分に向けて人差し指を曲げる) のいずれかの状態のときに、手を認識します。 手が他のポーズにある場合、HoloLensはそれらを無視します。 HoloLensが検出する各手について、向きや押下状態なしでその位置にアクセスできます。 手がジェスチャ フレームの端に近づくと、方向ベクトルも表示されます。これをユーザーに示すことで、ユーザーは、どのように手を動かせば、HoloLens が認識できる位置に戻せるかを知ることができます。
ジェスチャ フレーム
HoloLensでのジェスチャでは、手は、ジェスチャフレーム内で、ジェスチャ検出カメラが鼻から腰まで、および肩の間で適切に認識できる範囲内にある必要があります。 ユーザーは、アクションの成功と自分自身の快適さの両方のために、この認識領域についてトレーニングを受ける必要があります。 多くのユーザーは、最初に、ジェスチャフレームがHoloLensにわたる視野内にあり、対話式操作のために不快なほど腕を上げなければならないと思い込んでいます。 HoloLensクリッカーを使用するとき、手がジェスチャフレーム内にある必要はありません。
特に連続したジェスチャの場合、たとえば、ホログラフィックオブジェクトを移動するとき、ジェスチャの途中でユーザーがジェスチャフレームの外に手を動かして、意図した結果を失うリスクがあります。
考慮すべきことが 3 つあります。
ジェスチャフレームの存在とおおよその境界に関するユーザー指導 これはHoloLensの設定中に指導されます。
ジェスチャがアプリケーション内のジェスチャフレーム境界に近づいたり壊れたりしたとき、ジェスチャが失われると望ましくない結果が生じる程度にユーザーに通知します。 調査により、そのような通知システムの重要な特性が示されます。 HoloLensシェルは、この種類の通知の良い例、すなわち中央カーソルに境界の交差が発生している方向を示す視覚的な通知を提供します。
ジェスチャ フレームの境界を越えることによる影響は、最小限に抑える必要があります。 通常、これは、ジェスチャの結果を境界で停止し、元に戻さないようにする必要があることを意味します。 たとえば、ユーザーが部屋を横切るいくつかのホログラフィックオブジェクトを動かしている場合、ジェスチャフレームが破られたときに移動を停止し、開始点に戻らないようにする必要があります。 ユーザーは挫折を経験するかもしれませんが、境界をより迅速に理解し、すべての意図したアクションを毎回再開する必要がない場合があります。