夜風のMixedReality

xRと出会って変わった人生と出会った技術を書き残すためのGeekなHoloRangerの居場所

EyeTrackingDemo-05-Visualizer  ~MixedRealityToolkitExamplesを触ってみる。 その① 実機で動かす。 

本日はMRTKのExamplesの調査枠です。

HoloLens 2ではユーザーの目線を取得するEyeTrackingが使用可能になりました。

これによって開発者はユーザーの目を使った操作を提供するだけではなくどこを見ていたかの情報を得ることができるようになりました。

EyeTrackingDemo-05-Visualizerシーンではユーザーがどこを見ていたかをヒートマップで見ることができる例が紹介されています。

〇EyeTrackingDemo-05-Visualizer

MRTKExamplesを導入するとバージョン2.5現在で[Assets/MRTK/Examples/Demos/EyeTracking/Scene]の場所にシーンがあります。

EyeTrackingDemo-05-Visualizerシーンには二つのパネルが配置されています。

f:id:Holomoto-Sumire:20210107195951j:plain

〇Live Eye Gaze Heatmap

f:id:Holomoto-Sumire:20210107200102j:plain

[Libe Eye Gaze Heatmap]はユーザーの目線をヒートマップとして見ることができます。

UnityEditorの場合実行中に画面の中心が目線の位置になります。マウス操作で画面を動かして視線を変えてヒートマップの変化を見ることができます。

実機の場合はユーザーの目線を使用します。 ユーザーが見た場所がだんだんと赤くなっていきます。

youtu.be

f:id:Holomoto-Sumire:20210107201324j:plain

実機でEyeTrackingを使用する場合はユーザーごとに違う目線を取得するためにキャリブレーションが必要になります。

studio.youtube.com

〇Record and Replay Eye Gaze Data

こちらはリアルタイムにヒートマップが作成されるのではなく、一度視線データを記録してそれを読み込むことで後から再生することができます。

f:id:Holomoto-Sumire:20210107201448j:plain

〇シーンをUnityEdinor上で実行する

EyeTrackingDemo-05-Visualizerシーンは他のシーンからロードされて使用されます。

そのためhierarchy上にデバイス用のオブジェクトが存在しません。

f:id:Holomoto-Sumire:20210107200612j:plain

シーンをUnity上で動かすためにはカメラが必要です。

上部のワールドタブから[MixedRealityToolkit]→[Add to Scene Configure...]を選択して[MixedRealitytoolkit]オブジェクトと[MixedRealityPlaySpace]オブジェクトを追加します。

f:id:Holomoto-Sumire:20210107200921j:plain

通常[MixedRealityToolkit]オブジェクトからデバイス用の設定を行う必要がありますが、[EyeTrackingDemo-05-Visualizer]シーンの場合[EyeTrackingDemos ManagerComponents]オブジェクトのコンポーネントによって自動的にシーン実行時に書き換えられるため設定は必要ありません。

f:id:Holomoto-Sumire:20210107201134j:plain

以上で[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の機能でアクセスを許可する必要があります。

f:id:Holomoto-Sumire:20210107202039j:plain

チェックを入れることで実機でもUnity上同様機能を確認できます。

これは非常に分かりずらいのでMRTKのGithubへイシューを出しました。(HoloLens Slackでも同様の問題を抱えている人がいたので)

github.com

EyeTrackingはまだドキュメントが少ないので少しづつ読み解いていきたいです。