MRTK2에서 시선 추적 시작

이 페이지에서는 앱에서 시선 추적을 사용하도록 Unity MRTK 장면을 설정하는 방법을 설명합니다. 다음 문서에서는 새로운 장면으로 시작하는 것으로 가정합니다. 또는 직접 빌드할 수 있는 수많은 훌륭한 예제를 사용하여 이미 구성된 MRTK 시선 추적 예제를 검사 수 있습니다.

시선 추적 요구 사항 검사 목록

시선 추적이 제대로 작동하려면 다음 요구 사항을 충족해야 합니다. HoloLens 2의 시선 추적 및 MRTK에서 시선 추적을 설정하는 방법을 처음 접하는 경우라도 걱정할 필요가 없습니다. 다음 섹션에서 각 문제를 더 자세히 해결하는 방법에 대해 자세히 살펴보겠습니다.

  1. 입력 시스템에 '시선 응시 데이터 공급자'를 추가해야 합니다. 이 데이터 공급자는 플랫폼에서 시선 추적 데이터를 제공합니다.
  2. 애플리케이션 매니페스트에서 'GazeInput' 기능을 사용하도록 설정해야 합니다. 이 기능은 Unity 2019에서 설정할 수 있지만 Unity 2018 및 이전 버전에서는 Visual Studio 및 MRTK 빌드 도구를 통해서만 이 기능을 사용할 수 있습니다.
  3. HoloLens는 현재 사용자에 대해 눈을 보정 해야 합니다 . 사용자의 눈에 보정되었는지 여부를 확인하는 샘플을 살펴보세요.

GazeInput 기능에 대한 참고 사항

MRTK 제공 빌드 도구(Mixed Reality 도구 키트 -> 유틸리티 -> 빌드 창)는 GazeInput 기능을 자동으로 사용하도록 설정할 수 있습니다. 이 단계를 수행하려면 'Appx 빌드 옵션' 탭에서 '응시 입력 기능'이 선택되어 있는지 확인해야 합니다.

MRTK 빌드 도구

이 도구는 Unity 빌드가 완료된 후 AppX 매니페스트를 찾고 GazeInput 기능을 수동으로 추가합니다. Unity 2019 이전에는 Unity의 기본 제공 빌드 창 (파일 -> 빌드 설정)을 사용할 때 이 도구가 활성화되지 않았습니다.

Unity 2019 이전의 Unity 빌드 창을 사용하는 경우 다음과 같이 Unity 빌드 후에 기능을 수동으로 추가해야 합니다.

  1. 컴파일된 Visual Studio 프로젝트를 연 다음 솔루션에서 'Package.appxmanifest'를 엽니다.
  2. 기능 아래의 'GazeInput' 확인란을 선택해야 합니다. 'GazeInput' 기능이 표시되지 않으면 시스템이 MRTK(특히 Windows SDK 버전)를 사용하기 위한 필수 조건을 충족하는지 검사.

참고: 새 빌드 폴더에 빌드하는 경우에만 이 작업을 수행해야 합니다. Unity 프로젝트를 이미 빌드하고 이전에 appxmanifest를 설정한 후 이제 동일한 폴더를 다시 대상으로 지정한 경우에는 변경 내용을 다시 적용할 필요가 없습니다.

시선 추적 단계별 설정

장면 설정

메뉴 모음에서 'Mixed Reality 도구 키트 -> 구성...'을 클릭하여 MixedRealityToolkit을 설정합니다.

MRTK 구성

시선 추적에 필요한 MRTK 프로필 설정

MRTK 장면을 설정한 후 MRTK에 대한 프로필을 선택하라는 메시지가 표시됩니다. DefaultMixedRealityToolkitConfigurationProfile을 선택한 다음, '& 사용자 지정 복사' 옵션을 선택할 수 있습니다.

MRTK 프로필

"시선 응시 데이터 공급자" 만들기

  • MRTK 프로필에서 '입력' 탭을 클릭합니다.
  • 기본 항목('DefaultMixedRealityInputSystemProfile')을 편집하려면 옆에 있는 '복제' 단추를 클릭합니다. '프로필 복제' 메뉴가 나타납니다. 해당 메뉴의 아래쪽에서 '복제'를 클릭합니다.
  • 새 입력 프로필을 두 번 클릭하고 '입력 데이터 공급자'를 확장하고 '+ 데이터 공급자 추가'를 선택합니다.
  • 올바른 데이터 공급자를 추가합니다.
    • 레거시 Windows Mixed Reality
      • 형식 아래에서 'Microsoft.MixedReality.Toolkit.WindowsMixedReality.Input' ->'WindowsMixedRealityEyeGazeDataProvider'를 선택합니다.
    • Windows XR 플러그 인의 경우
      • 형식 아래에서 'Microsoft.MixedReality.Toolkit.XRSDK.WindowsMixedReality' ->'WindowsMixedRealityEyeGazeDataProvider'를 선택합니다.
    • OpenXR의 경우
      • 형식에서 'Microsoft.MixedReality.Toolkit.XRSDK.OpenXR' ->'OpenXREyeGazeDataProvider'를 선택합니다.

MRTK 데이터 공급자

"시선 추적 데이터 사용" 사용

  • MRTK 구성 프로필 -'Input' ->>'Pointers'로 이동합니다.
    • 'DefaultMixedRealityInputPointerProfile'을 복제하여 변경합니다.
  • 설정에서 '시선 추적 데이터 사용' 을 찾아 사용하도록 설정합니다.
  • 이제 'GazeInput 기능 설정' 단추가 표시되고 UWP 기능을 사용하도록 설정하려면 눌러야 합니다.

MRTK에서 시선 추적 데이터 사용

Unity 편집기에서 시선 추적 시뮬레이션

Unity 편집기에서 시선 추적 입력을 시뮬레이션하여 앱을 HoloLens 2 배포하기 전에 이벤트가 올바르게 트리거되도록 할 수 있습니다. 시선 응시 신호는 카메라의 위치를 시선 응시 원점으로 사용하고 카메라의 전방 벡터를 시선 응시 방향으로 사용하여 시뮬레이션됩니다. 초기 테스트에 적합하지만 빠른 눈의 움직임을 모방하는 것은 좋지 않습니다. 이를 위해 HoloLens 2 눈 기반 상호 작용을 자주 테스트하는 것이 좋습니다.

  1. 시뮬레이션된 시선 추적 사용:

    • MRTK 구성 프로필에서 '입력' 탭을 클릭합니다.
    • 여기에서 '입력 데이터 공급자' ->'입력 시뮬레이션 서비스'로 이동합니다.
    • 'DefaultMixedRealityInputSimulationProfile'을 복제하여 변경합니다.
    • 적절한 '기본 시선 응시 시뮬레이션 모드' 설정을 선택합니다.

    MRTK 눈 시뮬레이션

  2. 기본 헤드 응시 커서 사용 안 함: 일반적으로 시선 응시 커서를 표시하지 않도록 하거나 반드시 필요한 경우 매우 미묘하게 만드는 것이 좋습니다. 기본적으로 MRTK 응시 포인터 프로필에 연결된 기본 헤드 응시 커서를 숨기는 것이 좋습니다.

    • MRTK 구성 프로필 -'Input' ->>'Pointers'로 이동합니다.
    • 'DefaultMixedRealityInputPointerProfile'을 복제하여 변경합니다.
    • '포인터 설정' 맨 위에 보이지 않는 커서 프리팹을 '응시 커서 프리팹'에 할당해야 합니다. MRTK Foundation에서 'EyeGazeCursor' 프리팹을 선택하여 이 작업을 수행할 수 있습니다.

응시 공급자에서 시선 기반 응시 사용

HoloLens v1에서는 헤드 응시가 기본 포인팅 기술로 사용되었습니다. 카메라에 연결된 MRTK의 GazeProvider를 통해 머리 응시를 계속 사용할 수 있지만 입력 포인터 프로필의 응시 설정에서 'IsEyeTrackingEnabled' 확인란을 선택하여 시선 응시를 대신 사용할 수 있습니다.

참고

개발자는 'GazeProvider'의 'IsEyeTrackingEnabled' 속성을 변경하여 코드에서 시선 기반 응시와 머리 기반 응시 사이를 전환할 수 있습니다.

중요

시선 추적 요구 사항이 충족되지 않으면 애플리케이션이 자동으로 헤드 기반 응시로 대체됩니다.

시선 응시 데이터 액세스

이제 시선 추적을 사용하도록 장면이 설정되었으므로 스크립트에서 이 장면에 액세스하는 방법을 살펴보겠습니다. EyeGazeProvider시선 지원 대상 선택을 통해 시선 추적 데이터에 액세스합니다.

HoloLens 2 Unity 앱 테스트

시선 추적을 사용하여 앱을 빌드하는 방법은 다른 HoloLens 2 MRTK 앱을 컴파일하는 방법과 유사해야 합니다. GazeInput 기능의 A 섹션에 설명된 대로 '응시 입력' 기능을 사용하도록 설정했는지 확인합니다.

프로젝트가 HoloLens 2 대해 구성되었는지 확인합니다.

MRTK를 사용하여 OpenXR 프로젝트 설정에서 다루는 구성 단계를 검토하여 프로젝트를 올바르게 구성했는지 확인합니다.

고려해야 할 핵심 사항은 다음과 같습니다.

  • 프로젝트 설정 창에서 키 설정을 검토합니다.
    • 플러그 인 공급자가 올바르게 설정되었는지 확인
  • 경고 삼각형을 해결합니다.
    • 상호 작용 프로필을 설정해야 합니다.
    • OpenXR 기능 그룹을 올바르게 선택해야 합니다.

눈 보정

HoloLens 2 눈 보정을 통해 실행하는 것을 잊지 마세요. 사용자가 보정되지 않은 경우 시선 추적 시스템은 입력을 반환하지 않습니다. 보정에 도착하는 가장 쉬운 방법은 바이저를 위로 뒤집은 다음 다시 아래로 뒤집는 것입니다. 새 사용자로 환영하고 눈 보정을 진행하도록 요청하는 시스템 알림이 표시됩니다. 또는 시스템 설정에서 눈 보정을 찾을 수 있습니다. 설정 > 시스템 > 보정 눈 보 > 정 실행.

시선 추적 권한

HoloLens 2 앱을 처음 시작하면 사용자에게 시선 추적을 사용할 수 있는 권한을 요청하는 프롬프트가 표시됩니다. 프롬프트가 표시되지 않으면 일반적으로 'GazeInput' 기능이 설정되지 않았음을 나타냅니다.

권한 프롬프트가 한 번 표시되면 자동으로 다시 표시되지 않습니다. "시선 추적 권한을 거부"한 경우 설정 - 개인 정보 ->> 앱에서 다시 설정할 수 있습니다.


이렇게 하면 MRTK Unity 앱에서 시선 추적 사용을 시작할 수 있습니다. 시선 추적 입력을 사용하는 방법을 보여 주는 MRTK 시선 추적 자습서 및 샘플을 검사 프로젝트에서 재사용할 수 있는 스크립트를 편리하게 제공하는 것을 잊지 마세요.


"MixedRealityToolkit의 시선 추적"으로 돌아가기