8.視線追跡の使用8. Using eye-tracking

概要Overview

このチュートリアルでは、HoloLens 2 の視線追跡を有効にし、視線追跡をオブジェクトに追加して、ユーザーがオブジェクトを見たときにアクションをトリガーする方法について説明します。In this tutorial, you will learn how to enable eye-tracking for HoloLens 2 and add eye-tracking to objects to trigger actions when the user looks at the objects.

注意

このプロジェクトを HoloLens (第 1 世代) にもデプロイする場合、視線追跡は HoloLens 2 でのみサポートされることに注意してください。If you are also deploying this project to HoloLens (1st generation), note that eye-tracking is only supported on HoloLens 2.

目標Objectives

  • HoleLens 2 の視線追跡を有効にする方法を学習するLearn how to enable eye-tracking for HoleLens 2
  • 視線追跡を使用してアクションをトリガーする方法を学習するLearn how to use eye-tracking to trigger action

視線入力機能を確実に有効にするEnsuring the Eye Gaze Input capability is enabled

[Unity] メニューで、[Mixed Reality Toolkit] > [ユーティリティ] > [Configure Unity Project](Unity プロジェクトの構成) の順に選択して [MRTK Project Configurator] ウィンドウを開き、 [UWP Capabilities](UWP 機能) セクションで [Enable Eye Gaze Input Capability](視線入力機能を有効にする) がグレーで表示されていることを確認します。In the Unity menu, select Mixed Reality Toolkit > Utilities > Configure Unity Project to open the MRTK Project Configurator window, then in the UWP Capabilities section, verify that Enable Eye Gaze Input Capability is greyed out:

mr-learning-base

注意

視線入力機能は、このチュートリアル シリーズの冒頭で Unity プロジェクトを構成したときに、MRTK Project Configurator 設定を適用する手順で有効にする必要がありました。The Gaze Input capability should have been enabled during the Apply the MRTK Project Configurator settings instructions when you configured the Unity project at the beginning of this tutorial series. しかし、有効にしていない場合は、ここで必ず有効にしてください。However, if it is not enabled, make sure you enable it now.

Gaze Provider で目の動きに基づく視線入力を有効にするEnabling eye based gaze in the gaze provider

[Hierarchy](階層) ウィンドウで [MixedRealityToolkit] オブジェクトを選択し、[Inspector](インスペクター) ウィンドウで [MixedRealityToolkit] > [入力] タブの順に選択して、次の手順を実行します。In the Hierarchy window, select the MixedRealityToolkit object, then in the Inspector window, select the MixedRealityToolkit > Input tab and take the following steps:

  • DefaultHoloLens2InputSystemProfile をクローンし、適切な名前 (たとえば、GettingStarted_HoloLens2InputSystemProfile) を付けますClone the DefaultHoloLens2InputSystemProfile and give it a suitable name, for example, GettingStarted_HoloLens2InputSystemProfile
  • [ポインター] セクションを展開しますExpand the Pointers section
  • DefaultMixedRealityPointerProfile をクローンし、適切な名前 (たとえば、GettingStarted_MixedRealityPointerProfile) を付けますClone the DefaultMixedRealityPointerProfile and give it a suitable name, for example, GettingStarted_MixedRealityPointerProfile
  • [Gaze Settings](視線入力の設定) セクションを見つけて、 [Is Eye Tracking Enabled](視線追跡を有効にする) チェックボックスをオンにしますLocate the Gaze Settings section and check the Is Eye Tracking Enabled checkbox

mr-learning-base

ヒント

MRTK プロファイルをクローンする方法については、MRTK プロファイルの構成に関するページにある手順を参照してください。For a reminder on how to clone MRTK profiles, you can refer to the Configuring the MRTK profiles instructions.

Unity エディターの視線追跡シミュレーションを有効にするEnabling simulated eye-tracking for the Unity editor

[Hierarchy](階層) ウィンドウで [MixedRealityToolkit] オブジェクトを選択し、[Inspector](インスペクター) ウィンドウで [入力] タブの順に選択して、次の手順を実行します。In the Hierarchy window, select the MixedRealityToolkit object, then in the Inspector window, navigate to the Input tab, then:

  • [Input Data Providers](入力データ プロバイダー) > [Input Simulation Service](入力シミュレーション サービス) セクションの順に展開しますExpand the Input Data Providers > Input Simulation Service section
  • DefaultMixedRealityInputSimulationProfile をクローンし、適切な名前 (たとえば、GettingStarted_MixedRealityInputSimulationProfile) を付けますClone the DefaultMixedRealityInputSimulationProfile and give it a suitable name, for example, GettingStarted_MixedRealityInputSimulationProfile
  • [Eye Simulation](視線シミュレーション) セクションを見つけて、 [Simulate Eye Position](目の位置のシミュレーション) チェックボックスをオンにしますLocate the Eye Simulation section and check the Simulate Eye Position checkbox

mr-learning-base

視線追跡をオブジェクトに追加するAdding eye-tracking to objects

[Hierarchy](階層) ウィンドウで、[RoverExplorer] > [ボタン] オブジェクトの順に展開し、3 つの子ボタン オブジェクトのそれぞれについて、[SeeItSayItLabel] > [TextMeshPro] オブジェクトの順に選択します。In the Hierarchy window, expand the RoverExplorer > Buttons object, then for each of the three child button objects, expand and select the SeeItSayItLabel > TextMeshPro object:

mr-learning-base

[Inspector](インスペクター) ウィンドウで 3 つの TextMeshPro オブジェクトが選択されたままの状態で、 [Add Component](コンポーネントの追加) ボタンを使用して、選択されたすべてのオブジェクトに次のコンポーネントを追加します。With the three TextMeshPro objects still selected, in the Inspector window, use the Add Component button to add the following components to all the selected objects:

  • Box Collider コンポーネントBox Collider component
  • EyeTrackingTarget コンポーネントEyeTrackingTarget component

mr-learning-base

[Hierarchy](階層) ウィンドウで、 [ヒント] > [SeeItSayItLabel] > TextMeshPro オブジェクトの順に選択し、EyeTrackingTarget コンポーネントを次のように構成します。In the Hierarchy window, select the Hints > SeeItSayItLabel > TextMeshPro object, then configure the EyeTrackingTarget component as follows:

  • On Look At Start () イベント セクション内In the On Look At Start () event section
    • 小さい [+] アイコンをクリックして、別のイベントを追加しますClick the small + icon to add another event
    • オブジェクト自体、つまり同じ TextMeshPro オブジェクトを [None (Object)](なし (オブジェクト)) フィールドに割り当てますAssign the object itself, i.e. the same TextMeshPro object, to the None (Object) field
    • [No Function](関数なし) ドロップダウンから、 [TextMeshPro] > [float fontSize] の順に選択し、イベントがトリガーされたときにこのプロパティ値を更新するようにしますFrom the No Function dropdown, select TextMeshPro > float fontSize to update this property value when the event is triggered
    • 引数を 0.06に設定して、現在のフォント サイズ 0.04 を 50% 増加しますSet the argument to 0.06 to increase the current font size of 0.04 by 50%
  • On Look Away () イベント セクション内In the On Look Away () event section
    • 小さい [+] アイコンをクリックして、別のイベントを追加しますClick the small + icon to add another event
    • オブジェクト自体、つまり同じ TextMeshPro オブジェクトを [None (Object)](なし (オブジェクト)) フィールドに割り当てますAssign the object itself, i.e. the same TextMeshPro object, to the None (Object) field
    • [No Function](関数なし) ドロップダウンから、 [TextMeshPro] > [float fontSize] の順に選択し、イベントがトリガーされたときにこのプロパティ値を更新するようにしますFrom the No Function dropdown, select TextMeshPro > float fontSize to update this property value when the event is triggered
    • 引数を 0.04 に設定し、フォント サイズを 0.04 に戻しますSet the argument to 0.04 to reset the font size back to 0.04

mr-learning-base

[Explode](展開) > [SeeItSayItLabel] > [TextMeshPro] オブジェクトと [リセット] > [SeeItSayItLabel] > [TextMeshPro] オブジェクトに対して、この手順を繰り返します。Repeat this step for the Explode > SeeItSayItLabel > TextMeshPro object and the Reset > SeeItSayItLabel > TextMeshPro object.

ここで、ゲーム モードに入り、マウスの右ボタンを押したまま、視線がラベルの 1 つをヒットするまでマウスを移動すると、フォント サイズが 50% 増加され、視線が離れると元のサイズに戻ることを確認できます。If you now enter Game mode and then press-and-hold the right mouse button while moving your mouse until the gaze hit's one of the labels, you will see the font size increase by 50% and reset back to its original size when looking away:

mr-learning-base

結論Congratulations

このチュートリアルでは、HoloLens 2 の視線追跡を有効にし、視線追跡をオブジェクトに追加して、ユーザーがオブジェクトを見たときにアクションをトリガーする方法を学習しました。In this tutorial, you learned how to enable eye-tracking for HoloLens 2 and how to add eye-tracking to objects to trigger actions when the user looks at the objects.

次のチュートリアル:9.音声コマンドの使用Next Tutorial: 9. Using speech commands