제이커브(Jcurve)
카멜레온 개발자 이야기
제이커브(Jcurve)
전체 방문자
오늘
어제
  • 분류 전체보기 (26)
    • Programming skills (19)
      • Unity (8)
      • C# (1)
      • 자료구조 (3)
      • 알고리즘 (1)
      • Git (1)
      • CS(Computer Science) (4)
      • Unreal (0)
      • C++ (1)
    • Literacy Review (1)
    • Finance (1)
      • Metaverse (0)
      • 주식 (1)
      • 가상화폐 (0)
    • Certificates (0)
      • 기사 (0)
      • Coursera (0)
      • Fast campus (0)
    • Architecture (5)
      • 건축시공학 (4)
      • 철근콘크리트구조 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 일상 #초보 #기록# 일기
  • 일상
  • Z세대
  • 스마트건설기술
  • 건설현장조직구성
  • c++문법
  • 유니티강의
  • VR #메타버스 #metaverse #Eyetracking #아이트래킹 #데이터추출
  • Literacy review
  • 건축공학
  • 패캠챌린지
  • C#과 유니티로 배우는 게임 개발 올인원 패키지 Online
  • 건축
  • 건설사업관리
  • 건축전문가
  • 백준
  • 싱글톤 # 유니티 #c# #Singleton
  • 자료구조 # 스택과 큐
  • 직장인자기계발
  • 게임개발
  • cmatrisk
  • 유니티
  • 건축시공학
  • 직장인인강
  • 건설시공관리자
  • ㅊ++기본문법
  • 패스트캠퍼스후기
  • 패스트캠퍼스
  • 역타공법
  • 주식

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
제이커브(Jcurve)

카멜레온 개발자 이야기

[Unity] VR EyeTracking Gaze data 추출
Programming skills/Unity

[Unity] VR EyeTracking Gaze data 추출

2024. 1. 10. 01:02

EyeTracking을 하기 위해 Gaze Method를 활용해 데이터를 추출할 것이다.

 

https://docs.cognitive3d.com/unity/gaze-fixations/

 

Gaze / Fixations - Cognitive3D - Documentation

Gaze and Fixations Gaze and Fixations are closely related. Gaze records the HMD position over time and the direction of the eyes at a set interval. Fixations use a dispersion technique to identify where the participant's eyes are steady and maintaining foc

docs.cognitive3d.com

 

 

using UnityEngine;
using Varjo.XR;

public class RecordEyeTrackData : MonoBehaviour
{

    public LayerMask imageLayerMask; //이미지 레이어 설정

    void Update()
    {
        VarjoEyeTracking.GazeData gazeData = VarjoEyeTracking.GetGaze();

        if (gazeData.status != VarjoEyeTracking.GazeStatus.Invalid)
        {
            Vector3 gazeOrigin = Camera.main.transform.TransformPoint(gazeData.gaze.origin);
            Vector3 gazeDirection = Camera.main.transform.TransformDirection(gazeData.gaze.forward);

            RaycastHit hit;

            if (Physics.Raycast(gazeOrigin, gazeDirection, out hit, Mathf.Infinity, imageLayerMask))
            {
                GameObject gazedObject = hit.collider.gameObject;
                // 위치값 저장
                RecordGazedImagePosition(gazedObject.transform.position);
            }
        }
    }

    private void RecordGazedImagePosition(Vector3 position)
    {
        Debug.Log("Gazed Image Position: " + position);
    }
}

데이터 접근함수 GetGaze이다. Varjo에서 제공하는 SDK의 함수로 데이터에 접근하였다.

여기서 중요한 유니티 개념이 있다. 바로 LayerMask이다. 

충돌하고 싶은 수많은 객체들을 layer로 묶어 계산처리했다.

 

그리고 아이트래킹을 통해 바라본 위치값을 저장한다.

RecordGazeImagePosition이다.

 

이상으로 VR에서 EyeTracking data를 추출하는 방법이다. V

'Programming skills > Unity' 카테고리의 다른 글

[유니티] 서버와의 영상 정보 불러오기  (0) 2023.10.28
[Unity] 람다식과 델리게이트(delegate)  (0) 2023.10.18
[Unity]Awake 와 Start의 차이  (0) 2023.10.12
[Unity] 생명주기 Life Cycle  (0) 2023.10.11
유니티 오브젝트 생성시 하위 오브젝트로 생성하기  (0) 2023.08.17
    'Programming skills/Unity' 카테고리의 다른 글
    • [유니티] 서버와의 영상 정보 불러오기
    • [Unity] 람다식과 델리게이트(delegate)
    • [Unity]Awake 와 Start의 차이
    • [Unity] 생명주기 Life Cycle
    제이커브(Jcurve)
    제이커브(Jcurve)
    미래지향적인 성향으로 VR/AR, XR 등 가상현실에서 살아가는 사람들에 대한 공간을 연구하는 이야기입니다. 가상현실에 대한 공부와 연구를 주로 합니다.

    티스토리툴바