MRTK에서 눈에 지원되는 탐색 - MRTK2
슬레이트에서 정보를 읽고 있으며 표시된 텍스트의 끝에 도달하면 텍스트가 자동으로 위로 스크롤되어 더 많은 콘텐츠를 표시한다고 상상해 보세요. 또는 보고 있는 위치를 유창하게 확대할 수 있습니다. 또한 지도는 관심 있는 내용을 보기 필드 내에서 유지하도록 콘텐츠를 자동으로 조정합니다. 또 다른 흥미로운 응용 프로그램은 자동으로 전면에보고있는 홀로그램의 부분을 가져 와서 3D 홀로그램의 핸즈프리 관찰이다. 다음은 눈에 지원되는 탐색의 컨텍스트에서 이 페이지에 설명된 몇 가지 예입니다.
다음 설명에서는 MRTK 장면에서 시선 추적을 설정하는 방법과 MRTK Unity에서 시선 추적데이터에 액세스하는 기본 사항에 대해 이미 잘 알고 있다고 가정합니다.
다음에 설명된 예제는 모두 (Assets/MRTK/Examples/Demos/EyeTracking/Scenes/EyeTrackingDemo-03-Navigation) 장면의 EyeTrackingDemo-03-Navigation
일부입니다.
요약: 텍스트 자동 스크롤, 시선 응시 지원 팬 및 가상 맵의 확대/축소, 핸즈프리 응시 방향 3D 회전.
자동 스크롤
자동 스크롤을 사용하면 사용자가 손가락을 떼지 않고 텍스트를 스크롤할 수 있습니다.
단순히 읽기를 계속하면 사용자가 보는 위치에 따라 텍스트가 자동으로 위아래로 스크롤됩니다.
제공된 EyeTrackingDemo-03-Navigation
예제(Assets/MRTK/Examples/Demos/EyeTracking/Scenes)에서 시작할 수 있습니다.
이 예제에서는 TextMesh 구성 요소를 사용하여 새 텍스트를 유연하게 로드하고 서식을 지정할 수 있습니다.
자동 스크롤을 사용하도록 설정하려면 텍스트 상자의 충돌기 구성 요소에 다음 두 스크립트를 추가하기만 하면 됩니다.
ScrollRectTransf
TextMesh를 스크롤하거나 일반적으로 RectTransform 구성 요소를 말하려면 ScrollRectTransf 스크립트를 사용할 수 있습니다. RectTransform 대신 텍스처를 스크롤하려면 ScrollRectTransf 대신 ScrollTexture를 사용합니다. 다음은 Unity 편집기에서 사용할 수 있는 ScrollRectTransf 의 매개 변수에 대해 자세히 설명합니다.
매개 변수 | Description |
---|---|
LimitPanning | 사용하도록 설정하면 는 해당 경계에서 스크롤 가능한 콘텐츠를 중지합니다. |
RectTransfToNavigate | 스크롤할 RectTransform에 대한 참조입니다. |
RefToViewport | 스크롤 가능한 콘텐츠의 부모 RectTransform 을 참조하여 올바른 오프셋 및 경계를 확인합니다. |
AutoGazeScrollIsActive | 사용하도록 설정하면 사용자가 활성 영역을 보면 텍스트가 자동으로 스크롤됩니다(예: 세로 스크롤 속도가 0이 아닌 경우 스크롤 패널의 위쪽 및 아래쪽 부분). |
ScrollSpeed_x | 0과 같지 않은 값으로 설정하면 가로 스크롤이 활성화됩니다. 음수 값은 스크롤 방향의 변화를 의미합니다. 왼쪽에서 오른쪽으로, 오른쪽에서 왼쪽으로 변경합니다. |
ScrollSpeed_y | 0과 같지 않은 값으로 설정하면 세로 스크롤이 활성화됩니다. 음수 값은 스크롤 방향의 변화를 의미합니다. 최대 아래로, 아래로를 선택합니다. |
MinDistFromCenterForAutoScroll | 대상 적중 상자(0, 0)의 중심에서 스크롤할 x 및 y의 최소 거리를 정규화했습니다. 따라서 값의 범위는 0(항상 스크롤)에서 0.5(스크롤 없음)여야 합니다. |
UseSkimProofing | 사용하도록 설정하면 주위를 빠르게 살펴볼 때 갑작스런 스크롤 이동을 방지합니다. 이렇게 하면 스크롤의 응답성이 떨어집니다. SkimProofUpdateSpeed 값으로 튜닝할 수 있습니다. |
SkimProofUpdateSpeed | 값이 낮을수록 스크롤 속도가 느려지면 스키밍 후 속도가 빨라집니다. 권장 값: 5. |
EyeTrackingTarget
EyeTrackingTarget 구성 요소를 연결하면 시선 응시 관련 이벤트를 유연하게 처리할 수 있습니다. 스크롤 샘플은 사용자가 패널을 보고 사용자가 패널을 바라보 면 중지되는 스크롤 텍스트를 보여 줍니다.
응시 지원 팬 및 확대/축소
누가 전에 가상 맵을 사용하여 집을 검색하거나 완전히 새로운 장소를 탐색하지 않았습니까? 시선 추적을 사용하면 관심 있는 부분을 정확히 파악할 수 있으며, 한 번 확대하면 거리의 과정을 원활하게 따라 이웃을 탐색할 수 있습니다! 이는 지리적 지도를 탐색하는 데 유용할 뿐만 아니라 사진, 데이터 시각화 또는 라이브 스트리밍 의료 이미지의 세부 정보를 확인하는 데에도 유용합니다. 앱에서 이 기능을 사용하는 것은 쉽습니다! 텍스처에 렌더링된 콘텐츠(예: 사진, 스트리밍된 데이터)의 경우 PanZoomTexture 스크립트를 추가하기만 하면됩니다. RectTransform의 경우 PanZoomRectTransf를 사용합니다. 자동 스크롤 기능을 확장하면 기본적으로 세로 및 가로를 동시에 스크롤하고 사용자의 현재 포커스 지점 바로 주위에 콘텐츠를 확대할 수 있습니다.
매개 변수 | Description |
---|---|
LimitPanning | 사용하도록 설정하면 는 해당 경계에서 스크롤 가능한 콘텐츠를 중지합니다. |
HandZoomEnabledOnStartup | 손 제스처를 자동으로 사용하여 확대/축소 제스처를 수행할 수 있는지 여부를 나타냅니다. 처음에는 실수로 확대/축소 작업을 트리거하지 않도록 사용하지 않도록 설정할 수 있습니다. |
RendererOfTextureToBeNavigated | 탐색할 텍스처의 참조된 렌더러입니다. |
Zoom_Acceleration | 로지스틱 속도 함수 매핑의 가파르기를 정의하는 확대/축소 가속. |
Zoom_SpeedMax | 최대 확대/축소 속도. |
Zoom_MinScale | 확대를 위한 텍스처의 최소 배율(예: 0.5f(원래 크기의 절반)) |
Zoom_MaxScale | 축소를 위한 텍스처의 최대 배율(예: 1f(원래 크기) 또는 2.0f(원래 크기의 두 배)입니다. |
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. |
주의 기반 3D 회전
시스템이 당신의 마음을 읽고 항목을 당신을 향해 설정하는 것을 알고있는 것처럼 - 3D 개체와 당신이보고 싶은 부품이 더 밀접하게 당신을 향해 회전 상상해보십시오! 즉, 손가락을 떼지 않고 홀로그램의 모든 측면을 조사 할 수 있도록 주의 기반 3D 회전에 대한 아이디어입니다. 이 동작을 사용하도록 설정하려면 충돌기 구성 요소를 사용하여 OnLookAtRotateByEyeGaze 스크립트를 GameObject 부분에 추가하기만 하면 됩니다. 홀로그램이 회전하는 속도와 방향을 제한하기 위해 아래에 나열된 여러 매개 변수를 조정할 수 있습니다.
당신이 상상할 수 있듯이, 항상 활성화이 동작을 갖는 것은 신속하게 붐비는 장면에서 꽤 산만 될 수 있습니다.
이 때문에 이 동작을 사용하지 않도록 설정한 다음 음성 명령을 사용하여 빠르게 사용하도록 설정할 수 있습니다.
또는 (Assets/MRTK/Examples/Demos/EyeTracking/Scenes)에 EyeTrackingDemo-03-Navigation
포커스가 있는 대상을 선택할 수 있고 앞에서 날아갈 수 있는 TargetMoveToCamera 를 사용하는 예제를 추가했습니다. 단순히 "Come to me"라고 말하면 됩니다.
근거리 모드에서 자동 회전 모드가 자동으로 사용하도록 설정됩니다. 그 모드에서, 당신은 단순히 뒤로 기대어 그것을보고, 주위를 걷거나 잡고 손으로 회전 밖으로 도달 중 모든 면에서 그것을 관찰 할 수 있습니다. 대상을 해제하면(손가락 모으기를 & 보거나 "다시 보내기"라고 말하면 원래 위치로 돌아가서 멀리서 사용자에 대한 반응을 중지합니다.
매개 변수 | Description |
---|---|
SpeedX | 가로 회전 속도. |
빠른 | 수직 회전 속도. |
InverseX | 가로 회전 방향을 역방향으로 설정합니다. |
역방향 | 세로 회전 방향을 역방향으로 설정합니다. |
RotationThreshInDegrees | '대상에 응시'와 '대상 카메라' 사이의 각도가 이 값보다 작으면 아무 것도 수행하지 않습니다. 이는 작은 지터리 회전을 방지하기 위한 것입니다. |
MinRotX | 최소 가로 회전 각도입니다. 이는 회전을 다른 방향으로 제한하기 위한 것입니다. |
MaxRotX | 최대 가로 회전 각도입니다. 이는 회전을 다른 방향으로 제한하기 위한 것입니다. |
MinRotY | x축 주위의 회전을 제한하기 위한 최소 세로 회전 각도입니다. |
MaxRotY | y축 주위의 회전을 제한하는 최대 세로 회전 각도입니다. |
요약하자면, 위의 스크립트를 사용하면 텍스트 스크롤, 확대/축소 및 텍스처 이동, 3D 홀로그램 조사 회전과 같은 다양한 입력 탐색 작업에 시선 응시를 사용할 수 있습니다.