MRTK2에서 시선 추적 시작

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

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

시선 추적이 제대로 작동하려면 다음 요구 사항을 충족해야 합니다. HoloLens 2 대한 시선 추적과 MRTK에서 시선 추적이 설정되는 방식을 새롭게 접하는 경우 걱정하지 마세요! 아래에서 각 항목을 처리하는 방법에 대해 자세히 살펴보겠습니다.

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

GazeInput 기능에 대한 참고 사항

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

MRTK Build Tools

이 도구는 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 Toolkit -> 구성...'을 클릭하기만 하면 MixedRealityToolkit를 설정합니다.

MRTK configure

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

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

MRTK profile

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

  • MRTK 프로필에서 '입력' 탭을 클릭합니다.
  • 기본 항목( 'DefaultMixedRealityInputSystemProfile' )을 편집하려면 옆에 있는 '복제' 단추를 클릭합니다. '프로필 복제' 메뉴가 나타납니다. 해당 메뉴 아래쪽에서 '복제' 를 클릭하기만 하면 됩니다.
  • 새 입력 프로필을 두 번 클릭하고 '입력 데이터 공급자'를 확장하고 '+ Data Provider 추가'를 선택합니다.
  • 새 데이터 공급자를 만듭니다.
    • 형식 아래에서 'Microsoft.MixedReality.Toolkit 선택합니다. WindowsMixedReality.Input' ->'WindowsMixedRealityEyeGazeDataProvider'
    • 플랫폼의 경우 'Windows 유니버설'을 선택합니다.

MRTK data provider

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

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

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

    • MRTK 구성 프로필에서 '입력' 탭을 클릭합니다.
    • 여기에서 '입력 데이터 공급자' ->'입력 시뮬레이션 서비스'로 이동합니다.
    • 'DefaultMixedRealityInputSimpulationProfile'을 복제하여 변경합니다.
    • '눈 위치 시뮬레이트' 확인란을 선택합니다.

    MRTK eyes simulate

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

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

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

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

참고

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

중요

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

시선 응시 데이터 액세스

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

HoloLens 2 Unity 앱 테스트

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

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

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

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

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

눈 보정

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

시선 추적 권한

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

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


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


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