MRTK의 눈 지원 탐색


"MixedRealityToolkit의 눈동자 추적"으로 돌아가기

MRTK

슬레이트에 대 한 정보를 읽고 표시 된 텍스트의 끝에 도달 하면 텍스트가 자동으로 위로 스크롤되고 추가 콘텐츠가 표시 됩니다. Imagine 또는 원하는 위치에서 확대를 운용 수 있습니다. 지도는 또한 보기의 필드 내에서 관심 있는 항목을 유지 하도록 콘텐츠를 자동으로 조정 합니다. 또 다른 흥미로운 응용 프로그램은 앞으로 보려는 홀로그램의 일부를 자동으로 가져와 3D holograms를 자유롭게 관찰 하는 것입니다. 이러한 예제 중 일부는 눈에 잘 지 원하는 탐색의 컨텍스트에서이 페이지에 설명 되어 있습니다.

다음 설명에서는 mrtk 장면에서 눈 추적을 설정 하는 방법과 Mrtk Unity에서 눈 추적 데이터에 액세스 하는 기본 사항을 사용 하는 방법을 이미 잘 알고 있다고 가정 합니다. 다음에 설명 된 예제는 EyeTrackingDemo-03-Navigation (asset/MRTK/예제/데모/EyeTracking/EyeTrackingDemo) 장면의 모든 부분입니다.

요약: 텍스트 자동 스크롤, 눈에 잘 지 원하는 가상 맵의 이동 및 확대/축소

자동 스크롤

자동 스크롤을 사용 하면 사용자가 손가락을 떼지 않고 텍스트를 스크롤할 수 있습니다. 읽기를 계속 하 고 사용자가 찾고 있는 위치에 따라 텍스트가 자동으로 위아래로 이동 합니다. 에서 제공 하는 예제 EyeTrackingDemo-03-Navigation (asset/MRTK/example/데모/EyeTracking/장면)에서 시작할 수 있습니다. 이 예제에서는 Textmesh 구성 요소를 사용 하 여 새 텍스트를 유연 하 게 로드 하 고 서식을 지정할 수 있습니다. 자동 스크롤을 사용 하도록 설정 하려면 다음 두 스크립트를 텍스트 상자의 collider 구성 요소에 추가 하기만 하면 됩니다.

ScrollRectTransf

Textmesh 를 스크롤하거나 보다 일반적으로 연관 recttransform 구성 요소를 사용 하 여 스크롤하려면 ScrollRectTransf 스크립트를 사용할 수 있습니다. 연관 recttransform대신 질감을 스크롤하려면 ScrollRectTransf대신 ScrollTexture 를 사용 합니다. 다음에는 Unity 편집기에서 사용할 수 있는 ScrollRectTransf 의 매개 변수를 자세히 설명 합니다.

매개 변수 Description
핸들 이동 사용 하도록 설정 하면에서 스크롤 가능한 콘텐츠가 해당 경계에서 중지 됩니다.
RectTransfToNavigate 스크롤할 연관 recttransform 에 대 한 참조입니다.
RefToViewport 스크롤할 수 있는 콘텐츠의 부모 연관 recttransform 에 대 한 참조로, 올바른 오프셋 및 경계를 결정 합니다.
AutoGazeScrollIsActive 사용 하도록 설정 하면 사용자가 활성 영역 (예: 세로 스크롤 속도가 0이 아닌 경우 스크롤 패널의 위쪽 및 아래쪽 부분)을 확인 하면 텍스트가 자동으로 스크롤됩니다.
ScrollSpeed_x 0이 아닌 값으로 설정 하면 가로 스크롤이 사용 됩니다. 음수 값은 스크롤 방향 변경 (왼쪽에서 오른쪽 및 오른쪽에서 왼쪽으로)입니다.
ScrollSpeed_y 0이 아닌 값으로 설정 하면 세로 스크롤이 사용 됩니다. 음수 값은 스크롤 방향에 대 한 변경 내용입니다.
MinDistFromCenterForAutoScroll 스크롤할 대상의 적중 상자 (0, 0)의 중심에서 x 및 y의 정규화 된 최소 거리입니다. 따라서 값의 범위는 0 (항상 스크롤)과 0.5 (스크롤 안 함) 사이 여야 합니다.
UseSkimProofing 사용 하도록 설정 하면 신속 하 게 살펴볼 때 급격 한 스크롤 이동을 방지 합니다. 이렇게 하면 스크롤 속도가 더 떨어질 수 있습니다. SkimProofUpdateSpeed 값으로 튜닝할 수 있습니다.
SkimProofUpdateSpeed 값이 낮을수록 skimming 후 스크롤 속도가 빨라집니다. 권장 값: 5.

Unity에서 지원 되는 스크롤 설정

EyeTrackingTarget

EyeTrackingTarget 구성 요소를 연결 하면 눈에 관련 이벤트를 유연 하 게 처리할 수 있습니다. Scroll 샘플은 사용자가 패널을 볼 때 시작 되 고 사용자가 해당 패널에서 떨어져 있는 경우 중지 하는 스크롤 텍스트를 보여 줍니다. Unity에서 지원 되는 스크롤 설정: EyeTrackingTarget

응시-지원 되는 이동 및 확대/축소

홈을 검색 하거나 완전히 새로운 위치를 탐색 하기 전에 Who 가상 맵을 사용 하지 않았습니다. 아이 추적을 사용 하면 관심 있는 부분을 직접 파악 하 고 확대 한 후에는 여러 번의 작업을 원활 하 게 수행 하 여 환경을 탐색할 수 있습니다. 이는 지리적 지도를 탐색 하는 데 유용 하 고 사진, 데이터 시각화 또는 라이브 스트리밍 의료 이미지에서 세부 정보를 확인 하는 데에도 유용 합니다. 앱에서이 기능을 사용 하는 것이 쉽습니다. 질감 으로 렌더링 된 콘텐츠 (예: 사진, 스트리밍 데이터)의 경우 PanZoomTexture 스크립트를 추가 하기만 하면 됩니다. 연관 recttransform 의 경우 PanZoomRectTransf를 사용 합니다. 자동 스크롤 기능을 확장 하면 기본적으로 동시에 가로와 세로로 스크롤할 수 있으며 사용자의 현재 포커스 지점 주위에서 콘텐츠를 확대할 수 있습니다.

매개 변수 Description
핸들 이동 사용 하도록 설정 하면에서 스크롤 가능한 콘텐츠가 해당 경계에서 중지 됩니다.
HandZoomEnabledOnStartup 손 모양 제스처를 사용 하 여 자동 확대/축소 제스처를 수행할지 여부를 나타냅니다. 실수로 확대/축소 작업을 트리거하는 것을 방지 하기 위해 처음에 사용 하지 않도록 설정할 수 있습니다.
RendererOfTextureToBeNavigated 탐색할 질감의 참조 된 렌더러입니다.
Zoom_Acceleration 로지스틱 speed 함수 매핑의 steepness를 정의 하는 확대/축소 가속
Zoom_SpeedMax 최대 확대/축소 속도입니다.
Zoom_MinScale 확대/축소에 사용할 질감의 최소 배율 (예: 0.5 f (원래 크기의 절반))입니다.
Zoom_MaxScale 축소를 위한 질감의 최대 배율입니다 (예: 1f (원래 크기) 또는 2.0 f (원래 크기 2 배)).
Zoom_TimeInSecToZoom 시간이 지정 된 확대/축소: 트리거된 후 지정 된 시간 (초) 동안 확대/축소가 수행 됩니다.
Zoom_Gesture 확대/축소 하는 데 사용할 손 모양 제스처의 유형입니다.
--- ---
Pan_AutoScrollIsActive 사용 하도록 설정 하면 사용자가 활성 영역 (예: 세로 스크롤 속도가 0이 아닌 경우 스크롤 패널의 위쪽 및 아래쪽 부분)을 확인 하면 텍스트가 자동으로 스크롤됩니다.
Pan_Speed_x 0이 아닌 값으로 설정 하면 가로 스크롤이 사용 됩니다. 음수 값은 스크롤 방향 변경 (왼쪽에서 오른쪽 및 오른쪽에서 왼쪽으로)입니다.
Pan_Speed_y 0이 아닌 값으로 설정 하면 세로 스크롤이 사용 됩니다. 음수 값은 스크롤 방향에 대 한 변경 내용입니다.
Pan_MinDistFromCenter 스크롤할 대상의 적중 상자 (0, 0)의 중심에서 x 및 y의 정규화 된 최소 거리입니다. 따라서 값의 범위는 0 (항상 스크롤)과 0.5 (스크롤 안 함) 사이 여야 합니다.
UseSkimProofing 사용 하도록 설정 하면 신속 하 게 살펴볼 때 급격 한 스크롤 이동을 방지 합니다. 이렇게 하면 스크롤 속도가 더 떨어질 수 있습니다. SkimProofUpdateSpeed 값으로 튜닝할 수 있습니다.
SkimProofUpdateSpeed 값이 낮을수록 스키밍 후 스크롤 속도가 느려집니다. 권장 값: 5.

Unity에서 시선 지원 이동 및 확대/축소 설정

주의 기반 3D 회전

Imagine 3D 개체와 보려는 파트를 좀 더 자세히 살펴보면서 마치 시스템에서 사용자의 마음에 들어 항목을 읽어주신다는 것을 알 수 있습니다. 이는 손가락을 떼지 않고 홀로그램의 모든 측면을 조사할 수 있는 주의 기반 3D 회전에 대한 아이디어입니다. 이 동작을 사용하도록 설정하려면 Collider 구성 요소가 있는 GameObject 부분에 OnLookAtRotateByEyeGaze 스크립트를 추가하기만 하면 됩니다. 아래에 나열된 여러 매개 변수를 조정하여 홀로그램이 회전하는 속도와 방향을 제한할 수 있습니다.

생각해 볼 수 있듯이, 이 동작을 항상 활성화하면 장면에 매우 방해가 될 수 있습니다. 이 때문에 이 동작을 사용하지 않도록 설정한 다음, 음성 명령을 사용하여 빠르게 사용하도록 설정할 수 있습니다. 또는 EyeTrackingDemo-03-Navigation (Assets/MRTK/Examples/Demos/EyeTracking/Scenes)에 포커스가 있는 대상을 선택할 수 있는 EyeTrackingDemo-03-Navigation 사용하는 예제를 추가했습니다. 여기서는 "Come to me"라고말합니다.

근사 모드에서 자동 회전 모드가 자동으로 활성화됩니다. 이 모드에서는 모든 측면에서 관찰할 수 있습니다. 단순히 뒤로 기울고 보고, 주변을 둘러보거나, 손을 잡고 회전하기 위해 다가갈 수 있습니다. 대상을 해제하면(손가락 & 모으기 또는 &말함) 원래 위치로 돌아가서 멀리서 반응하지 않습니다.

매개 변수 Description
SpeedX 수평 회전 속도입니다.
빠른 수직 회전 속도입니다.
InverseX 가로 회전 방향을 역방향으로 합니다.
역방향 세로 회전 방향을 역방향으로 변환합니다.
RotationThreshInDegrees '대상에 응시'와 '대상으로 카메라' 사이의 각도가 이 값보다 작은 경우 아무 것도 수행하지 않습니다. 이는 작은 지터 회전을 방지하기 위한 것입니다.
MinRotX 최소 가로 회전 각도입니다. 이는 회전을 다른 방향으로 제한하기 위한 것입니다.
MaxRotX 최대 가로 회전 각도입니다. 이는 회전을 다른 방향으로 제한하기 위한 것입니다.
MinRotY x축 주위의 회전을 제한하기 위한 최소 세로 회전 각도입니다.
MaxRotY y축 주위의 회전을 제한하는 최대 세로 회전 각도입니다.

Unity에서 시선 지원 3D 회전 설정

요약하면 위의 스크립트를 사용하면 텍스트 스크롤, 질감 확대/축소 및 이동, 3D 홀로그램 조사 회전과 같은 다양한 입력 탐색 작업에 시선 응시를 사용할 수 있습니다.

참조