연습 - 개체에 손 상호 작용 스크립트 추가

완료됨

ObjectManipulator 스크립트는 "손 및 모션 컨트롤러" 입력 모델의 "직접 조작" 양식을 지원합니다. 스크립트가 개체에 첨부되면 사용자는 손으로 개체를 이동, 크기 조정 또는 회전할 수 있습니다. 이 연습에서는 두 개의 큐브를 만들고 필요한 스크립트를 연결한 다음 큐브를 이동합니다.

첫 번째 큐브 추가 및 조정

  1. 메뉴 모음에서 GameObject>3D 개체>큐브를 선택합니다.

    큐브를 추가하기 위한 메뉴 명령의 스크린샷

    큐브의 기본 크기는 1제곱미터로, 목적에 비해 너무 큽니다. 크기를 20x20x20cm로 축소합니다.

  2. 큐브를 선택한 다음 검사기에서 큐브의 변환/배율 값을 다음과 같이 변경합니다.

    X = 0.2, Y = 0.2, Z = 0.2

    큐브가 장면의 기본 위치 (0,0,0)에 배치되었습니다. 즉, 큐브는 사용자의 헤드셋과 동일한 위치에 있으며 사용자가 뒤로 이동할 때까지 큐브를 볼 수 없습니다. 큐브의 위치 값을 변경하여 더 나은 보기 위치에 배치합니다.

  3. 검사기에서 큐브의 변환/위치 값을 다음으로 변경합니다.

    X = -0.2, Y = 1.6, Z = 0.5

    업데이트 후 큐브의 변형 구성 요소에 대한 스크린샷

    큐브의 세 면을 볼 수 있기를 원하므로 큐브의 회전도 변경합니다.

    참고 항목

    큐브의 높이는 MRTK XR Rig카메라 오프셋 높이와 일치하도록 1.6으로 설정되어 대략 눈높이에 배치됩니다.

  4. 검사기에서 큐브의 변환/회전 값을 다음으로 변경합니다.

    X = 9, Y = 14, Z = 0 f

    큐브를 확대하려면 큐브를 선택하고 마우스 커서가 화면 창 위에 있는지 확인한 다음, F 키를 누릅니다. 이러한 방식으로 모든 개체를 확대할 수 있습니다.

큐브에 스크립트 추가

개체가 추적된 손으로 “잡기 가능”하려면 다음 두 가지 구성 요소가 연결되어 있어야 합니다.

  • 충돌기 구성 요소(여기서는 아무 작업도 수행할 필요가 없고, Unity 큐브에는 기본적으로 상자 충돌기가 이미 연결되어 있음)
  • Object Manipulator(스크립트) 구성 요소
  1. 큐브를 계속 선택한 상태에서 검사기 창에서 구성 요소 추가 단추를 선택한 다음, Object Manipulator 스크립트를 검색하여 선택합니다.

    개체 조작자 스크립트를 추가하는 스크린샷

    ObjectManipulator 스크립트를 사용하면 한 손 또는 양손을 사용하여 개체를 이동, 크기 조정, 회전할 수 있습니다. Object Manipulator 스크립트를 추가하면 Constraint Manager 스크립트도 자동으로 추가되는데 이는 개체 조작자 스크립트가 그에 따라 달라지기 때문입니다.

    큐브에 추가된 제약 조건 관리자 스크립트의 스크린샷

큐브의 재질 업데이트

성능을 위해 기본 Unity 머티리얼 대신 MRTK 머티리얼을 사용하는 것이 좋습니다.

  1. 큐브가 선택된 상태에서 메시 렌더러 구성 요소의 머티리얼 섹션을 찾습니다.
  2. 기본 재료를 MRTK 표준 자산>재질 아래에 있는 MRTK_Standard_White 재질로 바꿉니다. 프로젝트 창에서 머티리얼 섹션으로 머티리얼을 끌어서 놓을 수 있습니다.

두 번째 큐브 추가

  1. 계층에서 큐브를 마우스 오른쪽 단추로 클릭한 다음, 복제를 선택합니다. 복제된 큐브는 Cube (1)라는 이름으로 표시됩니다.

  2. 원래 큐브를 마우스 오른쪽 단추로 클릭하고 이름 바꾸기를 선택한 다음, 큐브 이름을 Near Cube로 지정합니다.

  3. 복제된 큐브를 마우스 오른쪽 단추로 클릭하고 이름 바꾸기를 선택한 다음, 큐브 이름을 Far Cube로 지정합니다.

    현재 장면 보기에는 큐브가 하나만 있는 것처럼 보이는데 이는 Near Cube와 Far Cube가 동일한 위치에 있기 때문입니다. Far Cube의 위치와 회전을 변경해 보겠습니다.

  4. Far Cube를 계속 선택한 상태에서 변환 구성 요소의 값을 다음으로 변경합니다.

    위치: X = 0.6, Y = 1.6, Z = 1.1

    회전: X = 27, Y = 0, Z = 0

    이제 카메라에 왼쪽에 Near Cube가 표시되고 오른쪽에서 조금 더 멀리 떨어진 Far Cube가 표시됩니다. 이를 확인하려면 계층 구조에서 기본 카메라(MRTK XR Rig>카메라 오프셋 아래)를 선택한 다음 장면 창의 기본 카메라 창을 살펴봅니다.

    장면 창에 있는 기본 카메라 보기의 스크린샷

    장면 창의 보기가 카메라가 보는 것과 더 비슷하게 보이도록 하려면 장면 창에서 스크롤합니다. 기본적으로 설정되어 있지 않은 경우 카메라의 플래그 지우기Skybox로 설정해야 할 수도 있습니다.

재생 모드에서 큐브 잡기 및 이동

  1. 재생 단추를 선택합니다. 프로젝트가 재생을 시작하면 보기가 게임 창으로 전환됩니다.

    재생 모드를 시작한 후 게임 창의 스크린샷

    참고 항목

    재생하기 전에 프로젝트 설정>MRTK3에 유효한 프로필이 설정되어 있는지 확인합니다.

  2. 게임 창의 오른쪽 위 모서리에 있는 3개 점 단추를 선택한 다음, 최대화를 선택합니다.

    게임 창 최대화 명령의 스크린샷

  3. 스페이스바를 눌러 시뮬레이션된 오른손이 보기에 표시되도록 합니다.

  4. 시뮬레이션된 손을 옆이나 아래쪽의 큐브에 닿을 때까지 Near Cube에 더 가깝게 이동합니다.

    가까운 큐브를 오른쪽으로 터치하는 시뮬레이션의 스크린샷

  5. 마우스 왼쪽 단추를 누르고(손이 큐브를 “잡음”) 큐브를 화면 주위로 끕니다.

    큐브 이동 스크린샷

    Far Cube를 잡아 이동하려면 시뮬레이션된 손에 연결된 먼 포인터를 사용합니다.

  6. 필요한 경우 스페이스바를 다시 눌러 시뮬레이션된 오른손을 표시합니다. 먼 포인터는 손의 검지 손가락 끝에서부터 확장됩니다.

    시뮬레이션된 손에서 멀리 있는 포인터의 스크린샷

  7. 큐브에서 포인터의 끝을 볼 수 있게 될 때까지 손을 Far Cube에 더 가깝게 이동합니다. 포인터의 끝을 큐브에 표시하려면 원을 그리며 손을 몇 번 움직여야 할 수 있습니다.

    큐브와 터치하는 멀리 있는 포인터의 스크린샷

  8. 마우스 왼쪽 단추를 누르고(손가락 모으기 제스처가 수행됨) 큐브를 화면 주위로 끕니다.

Unity 편집기 내 입력 시뮬레이션

Unity 편집기 내 입력 시뮬레이션 기능을 사용하여 홀로그램 개체 동작을 테스트할 수 있습니다.

장면에서 보기 변경

  • 카메라를 앞쪽/왼쪽/뒤쪽/오른쪽으로 이동하려면 W/A/S/D 키를 누릅니다.
  • 카메라를 세로로 이동하려면 QE 키를 누릅니다.
  • 카메라를 회전하려면 마우스 오른쪽 단추를 누른 다음 끕니다.

손 입력 시뮬레이션

  • 시뮬레이션된 오른손을 사용하도록 설정하려면 스페이스바를 길게 누릅니다. 손을 제거하려면 스페이스바를 놓습니다.
  • 시뮬레이트된 왼쪽 손을 사용하도록 설정하려면 왼쪽 Shift 키를 길게 누릅니다. 손을 제거하려면 키를 놓습니다.
  • 양손 중 하나를 장면 주위로 이동하려면 마우스를 이동합니다.
  • 손을 앞으로 또는 뒤로 이동하려면 마우스 스크롤 휠을 회전합니다.
  • 손가락 모으기 제스처를 시뮬레이트하려면 마우스 왼쪽 단추를 누릅니다.
  • 손을 회전하려면 스페이스바 + Ctrl 키(오른쪽) 또는 왼쪽 Shift 키 + Ctrl 키(왼쪽)를 길게 누른 다음, 마우스를 이동합니다.

영구 손

키를 계속 누르지 않고도 손을 활성화하고 화면에 유지하려면 T(왼손) 또는 Y(오른손)를 누릅니다. 손을 제거하려면 해당 키를 다시 누릅니다.

Unity에서 애플리케이션 빌드

  1. 3개 점 단추를 선택한 다음, 최대화를 선택 취소하여 재생 창을 최소화합니다.

  2. 메뉴 모음에서 파일>빌드 설정...을 선택합니다.

  3. 빌드 설정 창에서 장면 열기 추가 단추를 선택하여 현재 장면을 빌드 내 장면 목록에 추가합니다.

  4. 빌드 단추를 선택합니다.

  5. 빌드 유니버설 Windows 플랫폼 창에서 빌드를 저장할 폴더로 이동하거나 새 폴더를 만든 다음 폴더 선택 단추를 선택하여 빌드 프로세스를 시작합니다.

    빌드를 저장할 위치의 스크린샷

    빌드가 진행되는 방법을 알려주는 진행률 표시줄이 나타납니다.

(선택 사항) 애플리케이션 빌드 및 배포

참고

HoloLens 2에서 진행하는 빌드 및 테스트는 필수가 아닙니다. 또는 디바이스가 없는 경우 HoloLens 2 에뮬레이터에서 테스트할 수 있습니다. HoloLens.com에서 디바이스를 구입할 수 있습니다.

  1. 빌드 프로세스가 완료되면 Windows 파일 탐색기가 열리고 빌드 폴더가 표시됩니다. 폴더 내부를 탐색하고 솔루션 파일을 두 번 클릭하여 Visual Studio에서 엽니다.

    빌드 폴더가 표시된 파일 탐색기의 스크린샷

  2. 마스터 또는 릴리스 구성 및 ARM64 아키텍처를 선택하여 HoloLens용 Visual Studio를 구성합니다.

    프로젝트에 대한 빌드 옵션을 포함하는 Visual Studio 창의 스크린샷

    HoloLens(1세대)에 배포하는 경우 x86 아키텍처를 선택합니다.

    참고 항목

    Visual Studio에서 디바이스가 대상 옵션으로 보이지 않으면, 솔루션의 시작 프로젝트를 IL2CPP 프로젝트에서 UWP 프로젝트로 변경해야 할 수 있습니다. 솔루션 탐색기에서 [프로젝트 이름](유니버설 Windows)을 마우스 오른쪽 단추로 클릭한 다음, 시작 프로젝트로 설정을 선택합니다.

    Important

    디바이스에 빌드하기 전에 디바이스가 개발자 모드에 있어야 하며 개발 컴퓨터와 페어링되어야 합니다. 개발자 모드 사용을 참조하세요.

  3. 배포 대상 드롭다운을 선택한 후 다음 중 하나를 수행합니다.

    • Wi-Fi를 통해 빌드 및 배포하는 경우 원격 머신을 선택합니다.

    원격 컴퓨터를 대상으로 하는 Visual Studio 창의 스크린샷

    • USB를 통해 빌드 및 배포하는 경우 디바이스를 선택합니다.

    디바이스를 대상으로 하는 Visual Studio 창의 스크린샷

  4. 원격 연결을 설정합니다. 메뉴 모음에서 프로젝트> 속성을 선택합니다.

  5. 프로젝트의 속성 페이지 창에서 구성 속성> 디버깅을 선택합니다.

  6. 실행할 디버거 드롭다운을 선택한 다음, 아직 선택되지 않은 경우 원격 머신을 선택합니다.

    Important

    "자동 감지" 기능에 의존하기 보다는 수동으로 IP 주소를 입력하는 것이 좋습니다. IP 주소를 찾으려면 HoloLens에서 설정 > 업데이트 및 보안 > 개발자용으로 이동합니다. IP 주소는 이더넷 아래의 창 맨 아래에 나열됩니다.

  7. 컴퓨터 이름 필드에 디바이스의 IP 주소를 입력합니다.

    Visual Studio의 원격 연결 대화 상자 스크린샷

  8. 인증 모드유니버설(암호화되지 않은 프로토콜)로 설정합니다.

  9. HoloLens를 컴퓨터에 연결하고 Visual Studio에서 다음 중 하나를 수행합니다.

    • 앱을 HoloLens에 배포하고 Visual Studio 디버거를 연결하지 않고 디바이스에서 자동으로 시작하려면 디버그>디버깅하지 않고 시작을 선택합니다.
    • 앱을 자동으로 시작하지 않고 HoloLens를 배포하려면 빌드>솔루션 배포를 선택합니다.

    디버깅하지 않고 시작 메뉴 항목이 표시된 Visual Studio의 스크린샷

디바이스 페어링

PC에서 앱을 HoloLens에 처음 배포하는 경우 PIN을 입력하라는 메시지가 표시됩니다. PIN 만들기:

  1. HoloLens에서 설정 > 업데이트 및 보안 > 개발자용으로 이동합니다.
  2. 을 선택하면 HoloLens에 PIN이 표시됩니다.
  3. Visual Studio 대화 상자에 PIN을 입력합니다.
  4. 페어링이 완료되면 HoloLens에서 완료를 선택합니다.

이 PC는 이제 HoloLens와 페어링되었고 앱을 자동으로 배포할 수 있습니다. 앱을 HoloLens에 배포하는 데 사용되는 모든 PC에 대해 이러한 단계를 반복하세요.

HoloLens에서 앱 실행

  1. 앱 빌드가 완료되면 HoloLens의 시작 메뉴에서 앱의 앱 타일을 찾은 다음, 선택합니다.

  2. 앱이 시작된 후 Near Cube을 잡아서 끌어다 놓습니다.

  3. 먼 포인터를 사용하여 Far Cube를 잡은 다음, 끌어다 놓습니다.

    HoloLens는 Unity에서 앱을 테스트할 때보다 더 많은 유연성을 제공합니다. 물리적으로 이동하고 Near Cube에 먼 포인터를 사용하거나 손을 뻗어 Far Cube를 잡을 수 있습니다!

  • HoloLens 에뮬레이터에 배포하거나 테스트용 로드 앱 패키지를 만들 수도 있습니다.

  • 앱에 진단 프로파일러가 있는 것을 볼 수 있습니다. 음성 명령 진단 토글을 사용하여 이 기능을 켜거나 끌 수 있습니다. 개발하는 동안 프로파일러가 거의 항상 표시되도록 하여 앱에 대한 변경이 성능에 어떤 영향을 줄 수 있는지 파악하는 것이 좋습니다. 예를 들어 앱을 모니터링하여 프레임 속도가 60FPS 이상인지 확인할 수 있습니다.