입력 시뮬레이션 서비스 - MRTK2
MRTK의 입력 시뮬레이션을 사용하면 디바이스를 빌드하고 배포하지 않고도 Unity 편집기에서 다양한 유형의 상호 작용을 테스트할 수 있습니다. 이를 통해 설계 및 개발 프로세스에서 아이디어를 빠르게 반복할 수 있습니다. 키보드와 마우스 조합을 사용하여 시뮬레이션된 입력을 제어합니다.
입력 시뮬레이션 서비스는 Unity 편집기에서 사용할 수 없는 디바이스 및 플랫폼의 동작을 에뮬레이트합니다. 예제는 다음과 같습니다.
- HoloLens 또는 VR 디바이스 헤드 추적
- HoloLens 손 제스처
- HoloLens 2 연결된 손 추적
- HoloLens 2 시선 추적
- VR 디바이스 컨트롤러
경고
Unity의 XR 홀로그램 에뮬레이션 에뮬레이션 > 모드 = "편집기에서 시뮬레이션"을 사용할 때는 작동하지 않습니다. Unity의 편집기 내 시뮬레이션은 MRTK의 입력 시뮬레이션에서 제어합니다. MRTK 입력 시뮬레이션 서비스를 사용하려면 XR 홀로그램 에뮬레이션을 에뮬레이션 모드 = "없음"으로 설정해야 합니다.
MRTK 입력 시뮬레이션을 사용하는 방법
입력 시뮬레이션은 MRTK와 함께 제공되는 프로필에서 기본적으로 사용하도록 설정됩니다. 재생 단추를 클릭하면 입력 시뮬레이션이 지원된 장면을 실행할 수 있습니다.
- W, A, S, D, Q, E 키를 눌러 카메라를 이동합니다.
- 마우스 오른쪽 단추를 누른 채 마우스를 움직여 주위를 둘러봅니다.
- 시뮬레이션된 손을 들어 가져오려면 스페이스 바(오른손) 또는 왼쪽 Shift 키(왼손) 를 누릅니다.
- 시뮬레이션된 손을 뷰에 유지하려면 T 또는 Y 키를 누릅니다.
- 시뮬레이션된 손을 회전하려면 Ctrl 키를 길게 누르고 마우스를 이동합니다.
편집기 입력 시뮬레이션 치트 시트에서
HandInteractionExamples 장면에서 왼쪽 Ctrl + H 를 눌러 입력 시뮬레이션 컨트롤이 있는 치트 시트를 표시합니다.
입력 시뮬레이션 서비스 사용
입력 시스템 데이터 공급자 구성에서 입력 시뮬레이션 서비스는 다음과 같이 구성할 수 있습니다.
- 형식 은 Microsoft.MixedReality.Toolkit.Input > InputSimulationService여야 합니다.
- 기본적으로 지원되는 플랫폼 에는 서비스가 키보드 및 마우스 입력을 사용하기 때문에 모든 편집기 플랫폼이 포함됩니다.
참고
원하는 대상을 포함하도록 지원되는 플랫폼 속성을 변경하여 독립 실행형과 같은 다른 플랫폼 엔드포인트에서 입력 시뮬레이션 서비스를 사용할 수 있습니다.
카메라 컨트롤
헤드 이동은 입력 시뮬레이션 서비스에서 에뮬레이트할 수 있습니다.
카메라 회전
- 뷰포트 편집기 창 위로 마우스를 가져옵니다. 단추 누름이 작동하지 않는 경우 창을 클릭하여 입력 포커스를 지정해야 할 수 있습니다.
- 마우스 모양 단추를 길게 누릅니다(기본값: 마우스 오른쪽 단추).
- 뷰포트 창에서 마우스를 이동하여 카메라를 회전합니다.
- 스크롤 휠을 사용하여 카메라를 보기 방향으로 굴려 보세요.
입력 시뮬레이션 프로필에서 마우스 모양 속도 설정을 변경하여 카메라 회전 속도를 구성할 수 있습니다.
또는 Look Horizontal/Look Vertical 축을 사용하여 카메라를 회전합니다(기본값: 게임 컨트롤러 오른쪽 엄지스틱).
카메라 이동
가로 이동 세로/ 축을 사용하여 카메라를 이동합니다(기본값: WASD 키 또는 게임 컨트롤러 왼쪽 엄지스틱).
카메라 위치 및 회전 각도는 도구 창에서도 명시적으로 설정할 수 있습니다. 다시 설정 단추를 사용하여 카메라를 기본값으로 다시 설정할 수 있습니다.
컨트롤러 시뮬레이션
입력 시뮬레이션은 에뮬레이트된 컨트롤러 디바이스(예: 모션 컨트롤러 및 손)를 지원합니다. 이러한 가상 컨트롤러는 단추 또는 잡기 가능한 개체와 같은 일반 컨트롤러를 지원하는 모든 개체와 상호 작용할 수 있습니다.
컨트롤러 시뮬레이션 모드
입력 시뮬레이션 도구 창에서 기본 컨트롤러 시뮬레이션 모드 설정은 세 가지 고유 입력 모델 간에 전환됩니다. 이 기본 모드는 입력 시뮬레이션 프로필에서도 설정할 수 있습니다.
관절형 손: 관절 위치 데이터를 사용하여 완전히 관절이 있는 손 디바이스를 시뮬레이션합니다.
HoloLens 2 상호 작용 모델을 에뮬레이트합니다.
손의 정확한 위치를 기반으로 하거나 터치를 사용하는 상호 작용은 이 모드에서 시뮬레이션할 수 있습니다.
손 제스처: 에어 탭 및 기본 제스처를 사용하여 간소화된 손 모델을 시뮬레이션합니다.
HoloLens 상호 작용 모델을 에뮬레이트합니다.
포커스는 응시 포인터를 사용하여 제어됩니다. 에어 탭 제스처는 단추와 상호 작용하는 데 사용됩니다.
모션 컨트롤러: 굴절된 손과의 먼 상호 작용과 유사하게 작동하는 VR 헤드셋과 함께 사용되는 모션 컨트롤러를 시뮬레이션합니다.
컨트롤러 상호 작용 모델을 사용하여 VR 헤드셋을 에뮬레이트합니다.
트리거, 잡기 및 메뉴 키는 키보드 및 마우스 입력을 통해 시뮬레이션됩니다.
컨트롤러 이동 시뮬레이션
왼쪽/오른쪽 컨트롤러 조작 키(기본값: 왼쪽 컨트롤러의 경우 왼쪽 Shift, 오른쪽 컨트롤러의 경우 공간)를 길게 눌러 두 컨트롤러를 제어합니다. 조작 키를 누르면 컨트롤러가 뷰포트에 표시됩니다. 조작 키가 해제되면 짧은 컨트롤러 숨기기 시간 제한 후에 컨트롤러가 사라집니다.
입력 시뮬레이션 도구 창에서 카메라를 기준으로 또는 왼쪽/오른쪽 컨트롤러 키 토글(기본값: 왼쪽의 경우 T, 오른쪽은 Y)을 눌러 컨트롤러를 켜고 고정할 수 있습니다. 토글 키를 다시 눌러 컨트롤러를 다시 숨깁니다. 컨트롤러를 조작하려면 왼쪽/오른쪽 컨트롤러 조작 키를 보유해야 합니다. 왼쪽/오른쪽 컨트롤러 조작 키를 두 번 탭하면 컨트롤러를 켜고 끌 수도 있습니다.
마우스 이동은 보기 평면에서 컨트롤러를 이동합니다. 컨트롤러는 마우스 휠을 사용하여 카메라로 더 이동하거나 더 가깝게 이동할 수 있습니다.
마우스를 사용하여 컨트롤러를 회전하려면 왼쪽/오른쪽 컨트롤러 조작 키 (왼쪽 시프트 또는 공간) 와컨트롤러 회전 단추 (기본값: 왼쪽 Ctrl 단추)를 모두 누른 다음 마우스를 이동하여 컨트롤러를 회전합니다. 컨트롤러 회전 속도는 입력 시뮬레이션 프로필에서 마우스 컨트롤러 회전 속도 설정을 변경하여 구성할 수 있습니다.
입력 시뮬레이션 도구 창에서 손을 기본값으로 다시 설정하는 등 모든 손 배치를 변경할 수도 있습니다.
추가 프로필 설정
- 컨트롤러 깊이 승수 는 마우스 스크롤 휠 깊이 이동의 민감도를 제어합니다. 숫자가 클수록 컨트롤러 확대/축소 속도가 빨라질 수 있습니다.
- 기본 컨트롤러 거리는 카메라에서 컨트롤러의 초기 거리입니다. 다시 설정 단추 컨트롤러를 클릭하면 컨트롤러도 이 거리에 배치됩니다.
- 컨트롤러 지터 양은 컨트롤러에 임의의 동작을 추가합니다. 이 기능을 사용하여 디바이스에서 부정확한 컨트롤러 추적을 시뮬레이션하고 노이즈 입력과 상호 작용이 제대로 작동하는지 확인할 수 있습니다.
손 제스처
손가락 모으기, 잡기, 찌르는 등의 손 제스처 를 시뮬레이션할 수도 있습니다.
왼쪽/오른쪽 컨트롤러 조작 키(왼쪽 시프트 또는 공간)를 사용하여 손 컨트롤 사용
조작하는 동안 마우스 단추를 길게 눌러 손 제스처를 수행합니다.
각 마우스 단추를 매핑하여 왼쪽/가운데/오른쪽 마우스 손 제스처 설정을 사용하여 손 모양을 다른 제스처로 변환할 수 있습니다. 기본 손 제스처는 단추를 누르지 않을 때 손 모양입니다.
참고
손가락 모으기 제스처는 이 시점에서 "선택" 작업을 수행하는 유일한 제스처입니다.
일회용 조작
- 왼쪽/오른쪽 컨트롤러 조작 키(왼쪽 시프트 또는 공간)를 길게 누릅니다.
- Point at 개체
- 마우스 단추를 길게 눌러 꼬집기
- 마우스를 사용하여 개체 이동
- 마우스 단추를 놓아 상호 작용 중지
양손 조작
두 손으로 동시에 개체를 조작하려면 영구 손 모드를 사용하는 것이 좋습니다.
- 토글 키(T/Y)를 눌러 양손을 전환합니다.
- 한 번에 한 손 조작:
- 스페이스바를 잡고 오른손을 제어합니다.
- 개체를 잡을 위치로 손 이동
- 마우스 왼쪽 단추를 눌러 손가락 모으기 제스처를 활성화합니다.
- 오른손 제어를 중지하려면 공간을 놓습니다. 손은 제자리에 고정되고 더 이상 조작되지 않으므로 손가락 모으기 제스처에 잠깁니다.
- 다른 손으로 프로세스를 반복하여 동일한 개체를 두 번째 지점에서 잡습니다.
- 이제 양손이 동일한 개체를 잡고 있으므로 두 손 조작을 수행하도록 둘 중 하나를 이동할 수 있습니다.
GGV(응시, 제스처 및 음성) 상호 작용
기본적으로 GGV 상호 작용은 편집기에서 사용하도록 설정되어 있지만 장면에 관절이 있는 손은 없습니다.
- 카메라를 회전하여 상호 작용 가능한 개체(마우스 오른쪽 단추)에서 응시 커서를 가리킵니다.
- 마우스 왼쪽 단추를 클릭하고 길게 눌러 상호 작용
- 카메라를 다시 회전하여 개체 조작
이 옵션은 입력 시뮬레이션 프로필 내에서 손 없는 입력 사용 옵션을 전환하여 해제할 수 있습니다.
또한 GGV 상호 작용에 시뮬레이션된 손을 사용할 수 있습니다.
- 입력 시뮬레이션 프로필에서 손 시뮬레이션 모드를 제스처로 전환하여 GGV 시뮬레이션 사용
- 카메라를 회전하여 상호 작용 가능한 개체(마우스 오른쪽 단추)에서 응시 커서를 가리킵니다.
- 스페이스바를 잡고 오른손을 제어합니다.
- 마우스 왼쪽 단추를 클릭하고 길게 눌러 상호 작용
- 마우스를 사용하여 개체 이동
- 마우스 단추를 놓아 상호 작용 중지
텔레포트 이벤트 발생
입력 시뮬레이션에서 텔레포트 이벤트를 발생하려면 입력 시뮬레이션 프로필에서 손 제스처 설정을 구성하여 하나는 Teleport 시작 제스처를 수행하고 다른 하나는 텔레포트 끝 제스처를 수행하도록 합니다. Teleport 시작 제스처는 텔레포트 포인터를 표시하고, Teleport End 제스처는 텔레포트 작업을 완료하고 사용자를 이동합니다.
결과 텔레포트의 y 위치는 y축을 따라 카메라의 변위에 따라 달라집니다. 편집기에서 기본적으로 0이므로 Q 및 E 키를 사용하여 적절한 높이로 조정합니다.
모션 컨트롤러 상호 작용
시뮬레이션된 모션 컨트롤러는 관절이 있는 손과 동일한 방식으로 조작할 수 있습니다. 상호 작용 모델은 트리거, 잡기 및 메뉴 키가 각각 왼쪽 마우스 단추, G 및 M 키에 매핑되는 동안 관절식 손의 먼 상호 작용과 유사합니다.
시선 추적
입력 시뮬레이션 프로필에서 눈 위치 시뮬레이션 옵션을 확인하여 시선 추적 시뮬레이션을 사용하도록 설정할 수 있습니다. GGV 또는 모션 컨트롤러 스타일 상호 작용과 함께 사용하면 안 됩니다(따라서 기본 컨트롤러 시뮬레이션 모드 가 명료한 손으로 설정되어 있는지 확인).
입력 시뮬레이션 도구 창
Mixed Reality>도구 키트>유틸리티>입력 시뮬레이션 메뉴에서 입력 시뮬레이션 도구 창을 사용하도록 설정합니다. 이 창은 재생 모드 중에 입력 시뮬레이션의 상태에 대한 액세스를 제공합니다.
뷰포트 단추(선택 사항)
기본 손 배치를 제어하는 편집기 내 단추의 프리팹은 표시기 프리팹 아래의 입력 시뮬레이션 프로필에 지정할 수 있습니다. 이는 선택적 유틸리티이며 입력 시뮬레이션 도구 창에서 동일한 기능에 액세스할 수 있습니다.
참고
뷰포트 표시기가 기본적으로 사용하지 않도록 설정됩니다. 현재 Unity UI 상호 작용을 방해할 수 있는 경우가 있습니다. 문제 #6106을 참조하세요. 사용하도록 설정하려면 InputSimulationIndicators 프리팹을 표시기 프리팹에 추가합니다.
손 아이콘은 시뮬레이션된 손의 상태를 표시합니다.
- 손이 추적되지 않습니다. 손을 사용하려면 클릭합니다.
- 손은 추적되지만 사용자가 제어하지는 않습니다. 손을 숨기려면 클릭합니다.
- 손은 사용자가 추적하고 제어합니다. 손을 숨기려면 클릭합니다.
- 손을 기본 위치로 다시 설정하려면 클릭합니다.