本日はMRTKのExamplesの調査枠です。
HoloLens 2ではユーザーの目線を取得するEyeTrackingが使用可能になりました。
これによって開発者はユーザーの目を使った操作を提供するだけではなくどこを見ていたかの情報を得ることができるようになりました。
EyeTrackingDemo-05-Visualizerシーンではユーザーがどこを見ていたかをヒートマップで見ることができる例が紹介されています。
〇EyeTrackingDemo-05-Visualizer
MRTKExamplesを導入するとバージョン2.5現在で[Assets/MRTK/Examples/Demos/EyeTracking/Scene]の場所にシーンがあります。
EyeTrackingDemo-05-Visualizerシーンには二つのパネルが配置されています。
〇Live Eye Gaze Heatmap
[Libe Eye Gaze Heatmap]はユーザーの目線をヒートマップとして見ることができます。
UnityEditorの場合実行中に画面の中心が目線の位置になります。マウス操作で画面を動かして視線を変えてヒートマップの変化を見ることができます。
実機の場合はユーザーの目線を使用します。 ユーザーが見た場所がだんだんと赤くなっていきます。
実機でEyeTrackingを使用する場合はユーザーごとに違う目線を取得するためにキャリブレーションが必要になります。
〇Record and Replay Eye Gaze Data
こちらはリアルタイムにヒートマップが作成されるのではなく、一度視線データを記録してそれを読み込むことで後から再生することができます。
〇シーンをUnityEdinor上で実行する
EyeTrackingDemo-05-Visualizerシーンは他のシーンからロードされて使用されます。
そのためhierarchy上にデバイス用のオブジェクトが存在しません。
シーンをUnity上で動かすためにはカメラが必要です。
上部のワールドタブから[MixedRealityToolkit]→[Add to Scene Configure...]を選択して[MixedRealitytoolkit]オブジェクトと[MixedRealityPlaySpace]オブジェクトを追加します。
通常[MixedRealityToolkit]オブジェクトからデバイス用の設定を行う必要がありますが、[EyeTrackingDemo-05-Visualizer]シーンの場合[EyeTrackingDemos ManagerComponents]オブジェクトのコンポーネントによって自動的にシーン実行時に書き換えられるため設定は必要ありません。
以上で[EyeTrackingDemo-05-Visualizer]シーンをUnityエディタ上で確認できます。 またこのままビルドを行うことでこのシーンを単体でHoloLens 2実機で見ることもできます。
〇Record and Replay Eye Gaze Dataが実機で動かない問題の解消
[Record and Replay Eye Gaze Data]を実機で動かそうとすると何も再生されないことがあります。
これは[Record and Replay Eye Gaze Data]のコンポーネントによって記録される視線データの保存フォルダが[音楽ライブラリ]に指定されているためです。
なぜ[音楽ライブラリ]に保存されるのか(指定されているのか)わかりませんが、[音楽ライブラリ]にアクセスするためにはUnityのPlayerSettingsの機能でアクセスを許可する必要があります。
チェックを入れることで実機でもUnity上同様機能を確認できます。
これは非常に分かりずらいのでMRTKのGithubへイシューを出しました。(HoloLens Slackでも同様の問題を抱えている人がいたので)
EyeTrackingはまだドキュメントが少ないので少しづつ読み解いていきたいです。