本日はMRTKのExamplesの調査枠です。
HoloLens 2ではユーザーの目線を取得してアプリ内で使用できるようになりました。
EyeTrackingDemo-05-Visualizer シーンはこのEyeTrackingの情報を可視化してユーザーがどこを見ていたかをヒートマップで表示するといったシーンが提供されています。
前回はEyeTrackingのデータの取得に関しての構造体を見ていきました。今回は実際にこれを用いてHoloLens 2でユーザーの目線を可視化します。
〇目線の可視化
今回は以下の環境を使用しています。
・Windows10 PC
・Unity 2019.3.9f1
・MixedRealityToolkit 2.53
〇手順
①今回次のスクリプトを書きました。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Microsoft.MixedReality.Toolkit.Input;
using Microsoft.MixedReality.Toolkit;
public class EyeDebugObject : MonoBehaviour
{
[SerializeField]
GameObject EyeObject;
private IMixedRealityEyeGazeProvider EyeTrackingProvider => eyeTrackingProvider ?? (eyeTrackingProvider = CoreServices.InputSystem?.EyeGazeProvider);
private IMixedRealityEyeGazeProvider eyeTrackingProvider = null;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
EyeDebugObject.transform.position = new Vector3(EyeTrackingProvider.GazeOrigin.x,EyeTrackingProvider.GazeOrigin.y,EyeTrackingProvider.GazeOrigin.z);
EyeDebugObject.transform.eulerAngles=new Vector3(EyeTrackingProvider.GazeDirection.x,EyeTrackingProvider.GazeDirection.y,EyeTrackingProvider.GazeDirection.z);
}
}
②空のゲームオブジェクトを作成し、[EyeDebugObject]と名付け[EyeObject]をアタッチします。

③[EyeObject]の[EyeDebugObject]に自分自身をアタッチします。

これでユーザーの目線に沿って[EyeDebugObject]が動くようになります。
④Sphereを作成し、[EyeDebugObject]の子オブジェクトとして配置します。

⑤[EyeDebugObject]のTransform.zを任意の値マイナスに動かします。またスケールを任意の大きさに小さくします。
以上で完成しました。
〇実機で確認
実機で実際にかけていないとどこを見ていたのかわかりにくいのですが、ユーザーの目線を可視化することに成功しました。