MRが楽しい

MRやVRについて学習したことを書き残す

MRTK 2.5でアイトラッキングの機能とシミュレータを利用する

本日は MRTK の技術調査枠です。
MRTK 2.5でアイトラッキングの機能とシミュレータを利用する手順を記事にします。
f:id:bluebirdofoz:20201006224044j:plain

アイトラッキングの設定手順

以前作成したホロモンのプロジェクトを元に、MRTK 2.5 でアイトラッキングの再設定を行います。
MRTK 2.5 でアイトラッキングの機能を利用するには以下の設定が必要です。

Input Data Providersの設定

[MixedRealityToolkit]オブジェクトの[Inspector]ビューを開き、視線入力のデータプロバイダーを設定します。
プロファイルを編集するため、デフォルトプロファイルを選択している場合は[Copy&Customize]で新規プロファイルを作成します。
f:id:bluebirdofoz:20201006224104j:plain

任意のプロファイル名を設定して[Clone]を実行します。
f:id:bluebirdofoz:20201006224118j:plain

プロファイルを新規作成したら[Input]タブを開きます。
[InputSystem]のプロファイルから[Clone]で同様に新規プロファイルを作成します。
f:id:bluebirdofoz:20201006224129j:plain

プロファイルを作成すると[Input Data Providers]が編集できるようになります。
[+ Add Data Provider]をクリックして、データプロバイダーを追加します。
f:id:bluebirdofoz:20201006224139j:plain

[New data provider]の項目が追加されます。
[Type]のプルダウンを開き、[Microsoft.MixedReality.Toolkit.WindowsMixedReality.Input -> WindowsMixedRealityEyeGazeDataProvider]を選択します。
f:id:bluebirdofoz:20201006224149j:plain

これで視線入力のデータプロバイダーが設定できました。
f:id:bluebirdofoz:20201006224159j:plain

視線入力のPointerの設定

次に視線入力のポインターを設定します。
[Input]タブ内の[Pointers]パネルを開き、[InputPointer]のプロファイルから[Clone]で新規プロファイルを作成します。
f:id:bluebirdofoz:20201006224208j:plain

プロファイルを作成すると[Gaze Settings]が編集できるようになります。
[DefaultCursor]をクリックして、[EyeGazeCursor]を設定します。
f:id:bluebirdofoz:20201006224218j:plain

更に[Is Eye Tracking Enabled]をチェックして有効化します。
これで視線入力の機能が使えるようになりました。
f:id:bluebirdofoz:20201006224228j:plain

視線入力イベントの作成

シーンに視線入力のイベントを作成します。
見たときにイベントが発生してほしいオブジェクトに、アタリ判定の Collider と EveTrackingTarget スクリプトを設定します。
今回は、見たときにイベントが発生する[On Look At Start()]と、見るのを止めたときにイベントが発生する[On Look Away()]にイベントを設定しました。
f:id:bluebirdofoz:20201006224238j:plain

Capabilitiesの設定

ビルド先の HoloLens2 で視線入力の使用を許可するため、Capabilities の設定が必要です。
Unity 2019 では[Edit -> Project Settings..]を開き、[Player]タブの[Publishing Settings -> Capabilities]で[GazeInput]にチェックを入れることで設定できます。
f:id:bluebirdofoz:20201006224333j:plain

Unity 2018 では[GazeInput]の項目が表示されないので、VisualStudio 側で設定を行う必要があります。

アイトラッキングの試験手順

MRTK 2.5 では Unity エディター上でアイトラッキングの試験を行うことができます。
エディター上でアイトラッキングの機能を試験するには以下の設定が必要です。

Input Data Providersの設定

シミュレータのデータプロバイダーでアイトラッキングを有効化します。
プロファイルを開き、[Input Data Providers]パネル内の[Input Simulation Service]データプロバイダーを開きます。
f:id:bluebirdofoz:20201006224345j:plain

プロファイルを編集するため、[InputSimulationService]のプロファイルから[Clone]で新規プロファイルを作成します。
f:id:bluebirdofoz:20201006224354j:plain

プロファイルを作成すると[Eye Gaze Simulation]が編集できるようになります。
プルダウンを開き、[Disabled]を[Camera Forward Axis]を設定します。
f:id:bluebirdofoz:20201006224405j:plain

これでエディター上ではカメラの向いている方向に視線のレイキャストがとぶようになります。
[再生]ボタンを押して、シーンを再生してみます。
f:id:bluebirdofoz:20201006224417j:plain

カメラをホロモンの方に向けると、視線入力のイベントが発生して反応します。
f:id:bluebirdofoz:20201006224428j:plain

マウスによる視線入力

MRTK 2.5 では新機能としてマウスによる視線入力のシミュレートも可能です。
[Eye Gaze Simulation]で、[Camera Forward Axis]ではなく[Mouse]を設定します。
f:id:bluebirdofoz:20201006224439j:plain

[Game]ビュー上にマウスオーバーしてホロモンにマウスを合わせると、カメラがそちらの方向を向いていなくても視線入力のイベントが発生して反応します。
[Scene]パネルでは赤いラインで視線のレイキャストを確認できます。
f:id:bluebirdofoz:20201006224028j:plain