1일1알

XR Interaction Toolkit 개념과 핵심 기능 - 1. HMD와 컨트롤러 트래킹 본문

유니티/VR

XR Interaction Toolkit 개념과 핵심 기능 - 1. HMD와 컨트롤러 트래킹

영춘권의달인 2022. 11. 12. 17:23

https://www.inflearn.com/course/%EB%91%90%EA%B3%A0%EB%91%90%EA%B3%A0-%EC%9C%A0%EB%8B%88%ED%8B%B0-vr/dashboard

 

두고두고 써먹는 유니티 VR - 인프런 | 강의

Unity를 이용하여 VR 장비를 연동하고, VR 컨텐츠를 개발하는 방법을 배우는 VR 개발 입문 강의입니다. VR의 시장성이나 전망은 이미 많은 컨텐츠에서 접할 수 있기 때문에 굳이 다루지 않고, 실제

www.inflearn.com

이 글은 해당 강의를 보고 정리한 글입니다.

 

1. HMD와 컨트롤러 트래킹

2. 제작한 컨트롤러 모델 연결

3. Interactor, Interactable 개념

4. XR Interaction Toolkit의 이벤트 개념

5. Locomotion System, Provider

6. Teleportation

7. UI Interaction

8. Haptic

9. XR Socket Interactor

 

준비물 : XR Interaction Toolkit의 환경 설정이 완료된 프로젝트

https://kjhcocomi.tistory.com/363

 

XR Interaction Toolkit 개요와 환경 설정

XR Interaction Toolkit 개요 VR 플러그인 - Unity에서 제작한 Unity XR 기반의 플러그인 - Teleportation이나 Interaction 등 VR의 일반적인 기능을 스크립트 없이 편하게 구현 - Unity에서 지원하는 PC와 Mobile 기반의

kjhcocomi.tistory.com

 

1. HMD, Controller Tracking

    HMD와 컨트롤러의 위치와 방향을 가져와 유니티 게임오브젝트와 동기화하는 방법

 

Standard (URP) 로 새로운 씬을 만든다.

 

Hierarchy 창에서 우클릭 - XR - XR Origin(VR) 클릭해서 생성

 

 

XR Origin 컴포넌트가 붙어있는 XR Origin 오브젝트가 HMD나 컨트롤러 등 연동된 장비의 기준이 되는 오브젝트이다.

주로 VR, AR 세계의 중심이나 헤드셋의 기준 높이 등을 설정할 때 사용되며 일반적으로 HMD와 연동된 메인 카메라 게임오브젝트와 양손 컨트롤러와 연동된 게임오브젝트 등을 자식으로 배치한다.

 

XR Origin 오브젝트의 자식에 있는 카메라 오브젝트에 Tracked Pose Driver 컴포넌트가 추가되어 있다.

이 컴포넌트는 Unity XR의 컴포넌트인데 선택한 디바이스의 위치와 방향(Pos)을 가져와 준다.

여기서는 HMD의 Pos를 가져와 Transform에 적용해준다.

메인 카메라에 붙어있기 때문에 HDM의 Pos가 메인 카메라의 Pos와 동기화되는 상태이다.

 

LeftHand Controller를 선택해보면 XR Controller, XR Ray Interactor, Line Renderer, XR Interactor Line Visual 컴포넌트가 있다.

Unity XR Interaction Toolkit의 주요 컴포넌트들은 미리 설정된 디바이스의 상태값을 연결하는 Device Based 버전과 유니티의 새로운 Input System으로 상세하게 설정이 가능한 Action Based 버전이 있다. 현재는 Action Based

시뮬레이터를 사용할 것이라면 Action Based를 사용해야 한다고 한다.

 

XR Controller : Unity XR Interaction Toolkit의 주요 컴포넌트들 중 하나로 컨트롤러의 Pos를 동기화, Grip 버튼이나 Trigger 버튼 등 액션이 발생하는 것을 연결해주는 기능이 있다. Action Based 컴포넌트이기 때문에 Input System으로 액션을 설정해야 하는데, 현재는 XRI Default Input Actions 파일이 자동으로 연결되어있다.

 

만약 대응하는 키를 편집하고 싶다면 Reference의 파일을 열어서 직접 편집하거나 Use Reference를 체크 해제하고 직접 액션을 커스터마이징 하면 된다.

 

https://youtu.be/N75g5PZZ1HA

Input System 소개 영상

https://docs.unity3d.com/Packages/com.unity.inputsystem@1.3/manual/index.html

 

Input System | Input System | 1.3.0

Input System The Input System package implements a system to use any kind of Input Device to control your Unity content. It's intended to be a more powerful, flexible, and configurable replacement for Unity's classic Input Manager (the UnityEngine.Input cl

docs.unity3d.com

Input System 매뉴얼

 

 

시뮬레이터를 사용하여 테스트

XR Device Simulator 프리팹을 씬에 배치하면 XR Device Simulator Controls 액션 파일을 이용해서 시뮬레이터 컨트롤을 할 수 있다. 대부분의 행동들을 키보드와 마우스를 이용해서 할 수 있다.

 

 

XR Device Simulator 프리팹을 씬에 배치하고 Input Action Manager라는 이름을 가진 게임오브젝트를 만들고

Input Action Manager 컴포넌트를 추가한다. 그리고 Action Assets에 Starter Assets 폴더에 있는 XRI Default Input Actions를 추가한다.

이렇게 하면 플레이 할 때 이 Action Assets을 자동으로 켜주기 때문에 왼손, 오른손 컨트롤러를 조작할 수 있게 액션 파일을 활성화 해준다.

 

플레이 해보면 이런 화면,

스페이스바 + 마우스 :  오른손 컨트롤러 좌우 이동

스페이스바 + 휠 : 오른손 컨트롤러 앞뒤 이동

스페이스바 + 컨트롤 + 마우스 : 오른손 컨트롤러 회전

왼쪽 쉬프트 + 마우스 : 왼손 컨트롤러 좌우 이동

왼쪽 쉬프트 + 휠: 왼손 컨트롤러 앞뒤 이동

왼쪽 쉬프트 + 컨트롤 + 마우스 : 왼손 컨트롤러 회전

마우스 오른쪽 클릭 + 움직임 : HMD 좌우 이동

마우스 오른쪽 클릭 + 휠 : HMD 앞뒤 이동

왼쪽 컨트롤 + 마우스 오른쪽 : HMD 회전

T : 왼손 컨트롤 상태 토글

Y : 오른손 컨트롤 상태 토글

컨트롤 도중 왼쪽 클릭 : Trigger 버튼 클릭

컨트롤 도중 G : Grip 버튼 클릭

 

이상태에서 VR기기를 연결하면 동기화가 잘 안되기 때문에 VR 기기를 사용할 때는 XR Device Simulator 비활성화