//구글콘솔 광고 추가가

XR Interaction ToolKit개념과 핵심 기능 1


  1. HMD, Controller Tracking

new scene >> standard(URP) create >> 씬이름 만들어서 씬폴더에 저장 >> 하이어라키에 우클릭 >> xr >> xr origin(Action-based) 게임오브젝트 생성

xr origin(Action-based) 게임오브젝트

  • xr origin오브젝트에 붙어있는 xr origin컴포넌트는 hdm이나 컨트롤러등 연동된 장비의 기준이 되는 오브젝트. 주로 VR이나 AR세계의 중심이나 헤드셋의 기준 높이 등을 설정할 때 사용됨. 일반적으로 HDM과 연동된 메인 카메라 게임오브젝트와 양손 컨트롤러와 연동된 게임 오브젝트 등을 자식으로 배치함.
  • 메인 카메라 오브젝트에 붙어 있는 Tracked Pose Driver 컴포넌트== Unity XR의 컴포넌트 선택한 디바이스의 위치와 방향을 가져옴(여기서는 HMD의 pos를 가져와 Transform에 적용. 즉 HMD의 pos가 메인 카메라의 pos와 동기화되는 상태.)
  • LeftHand, RightHand Controller오브젝트에 붙어있는 XR Controller 컴포넌트 == Unity XR Interaction ToolKit의 주요 컴포넌트 중 하나. 컨트롤러의 pos를 동기화하고, 그립버튼이나 트리거버튼 등의 액션이 발생하는 것을 연결해 주는 기능.(왼손 오른손 preset 연결 잘 돼 잇는지 확인 필요)  

2. Custom Controller Model

  • XR Origin 오브젝트의 자식 오브젝트 왼쪽 컨트롤러와 오른쪽 컨트롤러의 XR Controller컴포넌트 안에 모델프리팹에 원하는 프리팹을 연결시켜주면 화면에서 뜸.

3. Interactor & Interactable

  • Interactor : 인터랙션을 시도하는 쪽
  • Interactable : 인터랙션이 되어지는 쪽
  • Interaction Manager: 이 기능들을 주관해서 실행해 줌.

Interactor

  1. XR Direct Interactor : 직접적인 상호작용을 할 수 있게 해주는 컴포넌트(컨트롤러를 대상에 가져다 대어 집거나 하는 등의 인터랙션을 시도할 수 있는 컴포넌트). HIde Controller On Select옵션 체크 >> 오브젝트를 집었을 때(Select 했을 때) 컨트롤러 모델을 비활성화해 주는 옵션. Select Action Trigger를 state에서 Toggle이나 Sticky로 변경하면 Grip키를 누르고 있을 때 집히는 게 아니라 누르는 순간 집히고 다시 눌렀다, 뗄 때 떨어짐.

Interactable

  1. XR Grab Interactable : 이 컴포넌트가 붙어있는 게임오브젝트들은 집을수 있음. 기본적으로 rigidbody와 collider가 붙어있어야 함. **오브젝트를 잡으면 interactor의 Attach Point(Interactor 쪽으로 당겨져 오는 기능)의 거리를 집을 당시의 위치 그대로 유지하고 싶을 때 XR Offset Grab Interactable를 만들어서 사용하면 됨.

혹시나 새로운 기능을 추가 하고 싶어서 interactor와 Interactable을 커스터 마이징 해야 한다면 XR Base Interactor나 XR Base Interactable 등 기존의 클래스들을 상속받아서 재정의 하는 것을 추천.

 

5. Events

  • 어떠한 상황이 되었을 때 실행할 수 있는 기능을 연결할 수 있음.

XR Grab Interactable의 컴포넌트에서 Interactable Events

  • First, Last이벤트 :
  • 퍼스트 이벤트들은 여러 인터랙터들이 순차적으로 인터랙터를 했을 때 가장 먼저 들어온 인터랙터만 처리하는 이벤트고 거꾸로 라스트 이벤트들은 가장 마지막에 나간 인터랙터만 처리하는 이벤트.
  • Hover이벤트 : Interactor와 Interactable이 Overlap 되는 상황을 의미
  • Select이벤트 : Overlap상태에서 Select제스처를 하면 일반적으로는 Grip키를 누르면 Interactor가 Interactable을 Select 하게 됨.
  • Activate이벤트 : Select상태에서 Grip키를 누르고 있는 상태에서 Activate제스처를 하게 되면 발새하는 이벤트. 일반적으론 Trigger 키로 설정돼있음.

XR Interactor컴포넌트의 Interactor Events

(사용할 수는 없고(Activate 할 수 없음) Hover와 Select계열의 이벤트들만 연결할 수 있는 걸 볼 수 있음)

  • Hover Entered, Hover Exited
  • Select Entered, Select Exited
728x90

+ Recent posts