夜風のMixedReality

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

HoloLens 2でユーザーの目線を追跡する。 EyeTrackingDemo-05-Visualizer  ~MixedRealityToolkitExamplesを触ってみる。 その⑥

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

HoloLens 2ではユーザーの目線を取得してアプリ内で使用できるようになりました。

EyeTrackingDemo-05-Visualizer シーンはこのEyeTrackingの情報を可視化してユーザーがどこを見ていたかをヒートマップで表示するといったシーンが提供されています。

redhologerbera.hatenablog.com

redhologerbera.hatenablog.com

redhologerbera.hatenablog.com

redhologerbera.hatenablog.com

redhologerbera.hatenablog.com

前回は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]をアタッチします。

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

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

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

これでユーザーの目線に沿って[EyeDebugObject]が動くようになります。

Sphereを作成し、[EyeDebugObject]の子オブジェクトとして配置します。

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

⑤[EyeDebugObject]のTransform.zを任意の値マイナスに動かします。またスケールを任意の大きさに小さくします。

以上で完成しました。

〇実機で確認

youtu.be

実機で実際にかけていないとどこを見ていたのかわかりにくいのですが、ユーザーの目線を可視化することに成功しました。