演習 - 視線追跡を使用する

完了

この演習では、HoloLens 2 の視線追跡を有効にし、ユーザーがオブジェクトを見つめたときにアクションをトリガーするために、そのオブジェクトに視線追跡を追加する方法について学習します。

視線入力機能が有効になっていることを確認する

  • Unity メニューで、[Edit]\(編集\)>[Project Settings]\(プロジェクトの設定\) を選択します。 [XR Plugin-in Management] (XR プラグイン管理) を展開し、[OpenXR] を選んで、[Eye Gaze Interaction Profile] (視線入力操作プロファイル) が [Interaction Profiles] (操作プロファイル) に追加されていることを確認します。

    Screenshot of the eye-gaze interaction profile in the OpenXR menu.

Unity エディターに対してシミュレートされた視線追跡を有効にする

  • 前のモジュールから、MRTK XR Rig がシーンに既にあるはずです。 このプレハブには視線入力が含まれているため、さらにコンポーネントを追加する必要はありません。

    Screenshot of the MRTK XR Rig prefab for gaze controller.

オブジェクトに視線追跡を追加する

  1. [階層] ウィンドウで、[RoverExplorer]>[ボタン]>[ヒント] の順に展開してください。 Hints ゲーム オブジェクトを右クリックして、[3D Object] (3D オブジェクト)>[Text - TextMeshPro] (テキスト - TextMeshPro) を選びます。 新しく作成されたゲーム オブジェクトの名前を ButtonText に変更します。

    Screenshot of Unity with Hints Button text object selected and EyeTrackingTarget component configured.

  2. [階層] ウィンドウで、[RoverExplorer]>[ボタン]>[ヒント]>[ButtonText] の順に選択してください。 [Text Input] (テキスト入力)Hints[Font Size] (フォント サイズ)2[Pos X] (位置 X)9.75[Pos Y] (位置 Y)-1.50[Pos Z] (位置 Z)-0.3 に変更します。

    Screenshot of Unity with Hints Button text object configuration and EyeTrackingTarget component configured.

  3. [階層] ウィンドウで、[RoverExplorer]>[ボタン]>[ヒント]>[ButtonText] の順に展開してください。 次に、[Hierarchy] (階層) ウィンドウで Hints ボタン オブジェクトを選んで、PressableButton コンポーネントを次のように構成します。

    • [XRI Interactable Events] (XRI 対話可能イベント) の下の [Hover Entered] (ホバー入力済み) セクションで:

      1. 小さい + アイコンを選んで、別のイベントを追加します。
      2. [Hints] (ヒント) ボタンから ButtonText オブジェクトを [None (Object)] (なし (オブジェクト)) フィールドに割り当てます。
      3. [No Function] (関数なし) ドロップダウンから、TextMeshPro>float fontSize を選んで、イベントがトリガーされたときにこのプロパティの値を更新します。
      4. 引数を 3に設定して、現在のフォント サイズを 3 に増やしてください。
    • [Hover Exited] (ホバー終了) セクションで:

      1. 小さい + アイコンを選んで、別のイベントを追加します。
      2. [Hints] (ヒント) ボタンから ButtonText オブジェクトを [None (Object)] (なし (オブジェクト)) フィールドに割り当てます。
      3. [No Function] (関数なし) ドロップダウンから、TextMeshPro>float fontSize を選んで、イベントがトリガーされたときにこのプロパティの値を更新します。
      4. 引数を 2 に設定し、フォント サイズを 2 に戻してください。

    Screenshot of Unity with Hints TextMeshPro object selected and EyeTrackingTarget component configured.

  4. ExplodeReset ボタン オブジェクトについて前記の手順を繰り返し、残りのボタンに対して視線追跡を構成します。 ここで、ゲーム モードに移行し、マウスの右ボタンを押したままマウスを動かして、視線がいずれかのボタンにヒットすると、テキストのフォント サイズが大きくなり、視線を離すと元のサイズにリセットされます。

    Screenshot of Unity with all button text and EyeTrackingTarget component configured.