1일1알

XR Interaction Toolkit 주요 컴포넌트의 기능과 파라메터 - 3. Interactable 본문

유니티/VR

XR Interaction Toolkit 주요 컴포넌트의 기능과 파라메터 - 3. Interactable

영춘권의달인 2022. 11. 20. 22:37

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

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

 

XR Base Interactable : 

Interactable들의 공통 기능들을 모아놓은 기본 추상 클래스이다.

Hover, Select 등의 이벤트들과 Interaction Manager 선택이나 Interaction Layer Mask 설정 등 Interactable들의 공통 기능들이 정의되어 있다.

 

Base Teleportation Interactable을 거쳐 Teleportation Area, Teleportation Anchor가 상속받아 사용한다.XR Grab Interactable은 직접 상속받아서 사용한다.

 

Colliders : 인터랙션을 할 영역을 설정할 Collider 목록이다. 비워둘 경우 Interactable 컴포넌트가 있는 게임오브젝트와 계층적으로 자식 모두에 있는 Collider들을 자동으로 찾아서 연결해준다.

 

Custom Reticle : 이 Interactable을 인터랙션 할 때 연결된 게임오브젝트를추가로 시각화 해준다.

일반적으로 XR Ray Interactor 등으로 가리킬 때 가리켜지는 지점에 Custom Reticle을 시각화할 때 사용한다.

 

Select Mode : Interactable이 동시에 여러 Interactor가 Select할 수 있도록 할 수 있다. Single : 한개, Multiple : 여러개

 

Interactable Events : 각 상황에 맞는 Event들을 연결할 수 있다.

 

XR Grab Interactable : 

Interactor를 통해 집을 수 있는 대상이 되는 컴포넌트이다. Collider와 RigidBody를 같이 사용해야 하며 집는 순간 Interactor의 Attach Point로 빨려 들어가듯 이동되어지고 그 후에 Interactor의 포즈와 설정 값에 따라 동기화된다.

 

Movement Type : Select 되어서 움직일 때의 방식을 설정할 수 있다.  - Velocity Tracking 타입은 Rigidbody의 Velocity와 Angular Velocity를 이용해 움직인다. 일반적으로 이 오브젝트를 움직일 때 다른 Collider에 의해 물리적으로 가로막히기를 원할 때 사용한다.  - Kinematic : Kinematic으로 설정된 Rigidbody를 물리적으로 움직인다. 일반적으로 이 물체는 밀리지 않지만 다른 물리적인 물체들을 밀어내고 싶을 때 사용한다.  - Instantaneous : Transform의 위치와 방향을 사용하여 움직인다. 일반적으로 다른 Collider들의 영향을 받지 않고 움직이고 싶을 때 사용한다.

 

Retain Transform Parent : 활성화하면 Interactable의 원래 부모를 유지한다. 비활성화하면 항상 Root가 부모로 설정된다.

 

Track Position과 Track Rotation을 활성화하면 Interactor가 Interactable을 Select했을 때 Interactor의 위치와 방향을 따라가게 할 수 있다. Smooth Position을 활성화여 위치를 따라가게 할 수 있고 Smooth Rotation을 활성화하여 방향을 따라가게 할 수도 있다. Smooth Position Amount와 Smooth Rotation Amount는 스무스되는 위치와 방향의 강도이다.이 값들이 더 높을수록 더 빠르게 따라간다. Tighten Position과 Tighten Rotation은 스무딩 된 위치나 방향이 Interactor에 얼마나 가깝게 유지되는지에 대한 비율이다.1로 하면 스무딩 없이 Interactor의 위치와 방향이 그대로 적용된다.Velocity Damping과 Angular Velocity Damping은 Movement Type이 Velocity Tracking일 때만 활성화된다. 이 파라메터를 사용해 Interactor의 위치나 방향을 추적하는데, 속도와 각속도를 감쇠하는 비율을 설정할 수 있다. 값이 작을수록 속도가 감소하는데 더 오래 걸린다.Velocity Scale과 Angular Velocity Scale은 Movement Type이 Velocity Tracking일 때만 활성화된다. 이 파라메터를 사용해 Interactor의 위치나 방향을 추적하는데, 속도와 각속도의 비율을 설정할 수 있다. 값이 클수록 더 빠르게 추적한다.

 

Throw On Detach : 활성화하면 이 Interactable을 Deselect 할 때 Interactor의 속도와 각속도를 적용한다. 아래 옵션들을 이용해서 부드럽게 던지거나 더 빠르게 던질 수 있다. - Throw Smoothing Duration : 던져질 때 속도가 0에서부터 부드럽게 가속할 시간 - Throw Smoothing Curve : 던져질 때 시간의 흐름에 따라 스무딩 되는 정도를 설정할 수 있다. - Throw Velocity Scale, Throw Angular Velocity Scale : 던져질 때 Interactor의 속도나 각속도에 각 값을 곱해서 Interactable에 적용한다. 더 빠르게 던지고 싶으면 이 값을 1 이상의 숫자를 사용하면 된다.

 

Force Gravity On Detach : 활성화하면 Deselect될 때 RigidBody의 Use Gravity 파라메터를 활성화한다. 즉, 집었다가 놓으면 중력이 적용된다.

 

Attach Transform : Select될 때의 기준점을 설정할 수 있다. Interactor의 Attach Transform에 Interactable의 Attach Transform이 위치하게 된다.

 

Attach Ease In Time : Select될 때 이 값 만큼의 시간이 더 걸리게 된다. 값이 클수록 Select 후 Interactor의 위치까지 도달하는데 걸리는 시간이 길어진다.

 

Attach Point Compatibility Mode : Interactable의 Attach Point를 계산할 때 사용하는 모드를 선택할 수 있다.

 

Base Teleportation Interactable : 

텔레포테이션의 공통 기능들을 모아놓은 추상 클래스로 XR Base Interactable의 자식이고 Teleportation Area와

Teleportation Anchor가 상속받아서 사용한다.

 

Teleportation Configuration : 텔레포테이션 관련 기능들을 설정할 수 있다.

  - Match Orientation으로 텔레포테이션 직후에 XR Origin의 방향을 설정할 수 있다.

    - World Space Up : XR Origin의 방향이 World Space의 Up 벡터를 기준으로 설정된다.

    - Target Up : XR Origin의 방향이 텔레포테이션 대상의 Up 벡터를 기준으로 설정된다.

    - Target Up And Forward : XR Origin의 방향이 텔레포테이션 대상이 바라보는 방향을 기준으로 설정된다.

    - None : XR Origin의 방향이 텔레포테이션 전후에 동일하게 유지된다.

  - Teleport Trigger : 어느 액션을 Trigger 했을 때 텔레포테이션 할 지 선택할 수 있다.

  - Teleportation Provider : 해당 프로바이더를 이용해 텔레포테이션을 시도한다. 비워둘 경우 자동으로 찾아서 연결한다.

 

Interactable Events : 각 상황에 맞는 Event들을 연결할 수 있다.

  - Teleporting 이벤트 : 텔레포테이션 될 때 실행되는 이벤트이다.

 

Teleportation Area :

설정한 영역 전체에 아무 곳에나 텔레포테이션을 할 수 있게 해주는 컴포넌트이다. 텔레포테이션 영역은 3D Collider로 설정할 수 있고 Base Teleportation Interactable 클래스의 자식 클래스로 모든 파라메터가 Base Teleportation Interactable과 XR Base Interactable에 구현되어 있다.

 

Teleportation Anchor:

특정 지점으로 텔레포테이션 할 수 있게 해주는 컴포넌트이다. Base Teleportation Interactable 클래스의 자식 클래스로 대부분의 파라메터가 Base Teleportation Interactable과 XR Base Interactable에 구현되어 있다.

여기에 Teleport Anchor Transform만 추가되었다.

 

Teleport Anchor Transform : 해당 위치로 텔레포트 되도록 설정할 수 있다.