일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 브루트포스
- c++
- 다익스트라
- ue5
- 트리
- Team Fortress 2
- 자료구조
- 다이나믹 프로그래밍
- 유니티
- 백트래킹
- Unreal Engine 5
- 투 포인터
- 스택
- 구현
- XR Interaction Toolkit
- 그리디 알고리즘
- 재귀
- VR
- 백준
- 문자열
- 시뮬레이션
- 그래프
- 알고리즘
- 수학
- BFS
- 우선순위 큐
- 유니온 파인드
- 정렬
- 누적 합
- DFS
- Today
- Total
1일1알
XR Interaction Toolkit 주요 컴포넌트의 기능과 파라메터 - 2. Interactor 본문
이 글은 해당 강의를 보고 정리한 글입니다.
XR Base Interactor :
Interactor들의 공통 기능들을 모아놓은 기본 추상 클래스이다.
XR Base Controller Interactor를 거쳐 XR Direct Interactor와 XR Ray Interactor가 상속받아서 사용하고 있다.
XR Socket Interactor도 XR Base Interactor을 상속받아서 사용하고 있다.
Interaction Manager : Interactable과의 인터렉션을 주관할 Interaction Manager를 연결할 수 있다. 비어있을 경우 씬 어딘가에 있는 Interaction Manager를 자동으로 찾아서 연결한다.
Interaction Layer Mask : 기존의 유니티 레이어 마스크와는 별개의 마스크로 Interactor과 Interactable의 마스크가 서로 겹쳐야 인터렉션을 할 수 있다.
Attach Transform : Interactable을 Select할 때 Attach Transform의 포즈만큼 더해진다. 즉, Select 되어지는 기준 포즈를 설정할 수 있다. 일반적으로 Interactor 게임오브젝트의 자식으로 추가하여 연결하는데 그러면 Interactor의 포즈에서 Attach Transform의 Local Position, Local Rotation만큼 떨어진 위치와 방향에 Interactable이 위치한다. Interactor의 위치나 방향에 관계없이 Interactable이 위치하기를 원한다면 Interactor 게임오브젝트와는 별개로 Attach Transform을 생성해 연결하면 된다. Attach Transform을 설정하지 않을 경우 자동으로 자식으로 빈 게임오브젝트가 생성되어 연결된다.
Keep Selected Target Valid : 활성화하면 인터랙션 중인 대상이 유효해지지 않아도 인터랙션을 유지할 수 있다. 보통 텔레포테이션을 할 때 더이상 Ray Interactor가 Teleportation Anchor나 Area를 가리키지 않는 경우 인터랙션 되지 않도록 할 때 사용한다.
Starting Selected Interactable : 시작할때 Select 상태로 시작할 Interactable을 지정할 수 있다.
Interactor Events : Interactor에서 이벤트가 발생할 때 실행할 기능을 연결할 수 있는 Unity Event들
- Hover Entered : Interactable과 오버랩되는 경우 실행되는 이벤트
- Hover Exited : Interactable과 오버랩 되고 있는 상태에서 벗어날 때 실행되는 이벤트
- Select Entered : Interactable과 오버랩되고 있는 상태에서 Select Action을 시작할 때 실행되는 이벤트
- Select Exited : Select 상태에서 Select 액션을 종료할 때 실행되는 이벤트
XR Base Controller Interactor :
보통 컨트롤러에 추가해 사용하는 Interactor들의 공통 기능을 모아놓은 추상 클래스
XR Base Interactor의 자식 클래스이고 XR Direct Interactor와 XR Ray Interactor가 상속받아서 사용한다.
Select Action Trigger : Select 액션을 처리하는 방식을 설정할 수 있는 파라메터이다. - State : 버튼을 누르고 있는 동안만 Select 상태를 유지한다. 오버랩 전에 버튼을 누르고 있다가 오버랩을 해도 Select 상태로 처리한다. - State Change : 버튼을 누르고 있는 동안만 Select 상태를 유지한다. 오버랩 전에 버튼을 누르고 있다가 오버랩을 하면 처리하지 않고 무시한다. - Toggle : 오버랩 상태에서 버튼을 누를 때 Select되고 다시 버튼을 누를 때 Deselect된다. - Sticky : 오버랩 상태에서 버튼을 누를 때 Select되고 다시 버튼을 눌렀다 뗄 때 Deselect된다.
Hide Controller On Select : 활성화 되어있으면 Interactor가 Select 상태에 들어갈 경우 컨트롤러 모델을 비활성화한다.
Allow Hovered Activate : 활성화 되어있으면 오버랩 후에 Select 하지 않아도 Activate 할 수 있게 된다.
Audio Events : 각 이벤트에 맞춰 오디오를 재생하고 싶을 때 사용한다. Unity Event 타입은 아니며 재생할 Audio Clip을 연결할 수 있다. 하나라도 활성화 할 경우 실행할 때 Audio Source 컴포넌트가 자동으로 추가된다.
Haptic Events : 각 이벤트에 맞춰 진동을 주고 싶을 때 사용한다. Unity Event 타입은 아니며 재생할 진동의 강도와 지속 시간을 설정할 수 있다. 스크립트로도 진동을 줄 수 있으며 XR Base Controller 클래스에 있는 SendHapticImpulse()를 사용한다.
XR Direct Interactor :
직접적인 인터랙션을 시도해주는 컴포넌트, 컨트롤러를 대상에 가져다 대서 집거나 하는 등의 인터랙션을 시도할 수 있다.
Collider가 있어야 하며 Hover와 Select 등 상황에 맞는 유니티 이벤트를 연결할 수도 있다. XR Base Controller Interactor의 자식 클래스이며, 모든 파라메터가 XR Base Controller Interactor와 XR Base Interactor에 구현되어 있다.
XR Ray Interactor :
직선 또는 곡선의 광선을 발사하여 부딪히는 대상과 원거리에서 인터랙션을 시도하는 컴포넌트이다.
일반적으로 Line Renderer와 XR Interactor Line Visual 컴포넌트를 사용하여 광선을 시각화한다.
XR Base Controller의 자식 클래스로 대부분의 파라메터가 XR Base Controller Interactor와 XR Base Interactor에 구현되어 있다.
Enable Interaction with UI GameObjects : UI와 인터랙션을 할것인지
Force Grab : 체크하면 Interactable을 Select 할 때 Interactor의 Attach Point로 당겨온다. 비활성화 되어있을 경우 광선과 Select하는 그 위치로 유지된다.
Anchor Control : 활성화하면 Select 하고있는 Interactable을 앞뒤로 움직이거나 회전시킬 수 있다.
- Rotate Speed : 회전 속도
- Translate Speed : 이동 속도
- Rotate Reference Frame : 회전할 때의 기준 축
Ray Origin Transform : 광선이 발사되는 시작 지점의 위치와 방향을 변경할 수 있다.
Line Type : 광선의 타입
- Straight Line : 직선
- Max Raycast Distance : 광선의 길이
- Projectile Curve : 이 Ray Interactor가 속력과 중력으로 샘플링되는 곡선
- Reference Frame : 기준 축을 설정하여 광선의 시작 지점과 나가는 축을 변경할 수 있다.
- Velocity : 광선이 앞으로 나가는 속도
- Acceleration : 광선이 Y축 아래 방향으로 받는 가속도, 일반적으로는 중력 가속도 사용, Reference Frame 을 이용하여 축을 변경할 수도 있다.
- Additional Ground Height : 광선이 부딪힌 지점의 높이를 설정할 수 있다. 이 값을 높이면 광선의 끝점이 이 값만큼
아래로 내려간다.
- Additional Flight Time : 광선이 Ground Height에 도달한 후 추가적으로 이동할 거리이다. 이 값을 높이면 Ground Height에 광선이 부딪힌 후에 더 이동하게 되어 마찬가지로 끝 점이 낮아진다.
- Sample Frequency : 이 광선을 그려주는 점의 개수, 많을수록 부드럽다.
- Bezier Curve : 이 Ray Interactor가 Control Point와 End Point르 설정하여 베지어 커브로 그려지는 곡선을 사용하게 한다.
- Reference Frame : 기준 축을 설정하여 광선의 시작 지점과 나가는 축을 변경할 수 있다.
- End Point Distance와 End Point Height, Control Point Distance와 Control Point Height는 배지어 커브를 구성하기 위한 End Point와 Control Point의 거리와 높이이다. Interactor의 포즈 또는 Ray Origin Transform의 포즈를 기준으로 설정한다.
- Sample Frequency : 이 광선을 그려주는 점의 개수, 많을수록 부드럽다.
Raycast Mask : Interactor가 인터랙션할 유니티의 레이어를 선택할 수 있다.
Raycast Trigger Interaction : is Trigger가 체크되어 있는 Collider와 인터랙션을 할 지를 선택할 수 있는 파라메터이다.
- Use Global : 프로젝트의 Physics 설정에서 Querys Hit Triggers 파라메터의 설정을 따른다.
- Ignore : Trigger 모드인 Collider들은 무시한다.
- Collider : Trigger 모드인 Collider들도 레이캐스트를 시도한다.
Hit Detection Type : 부피가 없는 광선으로 레이캐스팅을 하거나 일정 크기의 구를 발사해 부딪히는 Collider들을 찾아내는 방식의 Sphere Casting을 할 지를 선택할 수 있다.
Hit Closest Only : 활성화하면 레이캐스트를 시도할 때 첫번째로 부딪히는 Collider만 찾아낸다. 비활성화하면 거리 안에 부딪히는 모든 Collider들을 찾아낸다.
Blend Visual Line Points : 활성화하면 VR 디바이스로 플레이할 때 시각적으로 보여지는 라인을 실제 컨트롤러의 포즈에 뒤쳐지지 않게 한다. 비활성화 되어있으면 컨트롤러를 빠르게 움직일 경우 라인이 조금 뒤늦게 따라가는 게 보일 수도 있다.
XR Socket Interactor :
일반적으로 컨트롤러와 같이 사용하지 않고 별도의 공간에 설치하는 식으로 사용하는 Interactable을 꽂았다가 뺐다가 할 수 있는 Interactor이다. 다른 Interactor로 Interactable을 Select하여 가까이 움직인 뒤에 Deselect 하면
XR Socket Interactor가 자동으로 Select 했다가 다시 다른 Interactor로 Select 해서 빼내면 XR Socket Interactor는 Deselect 되는 형태로 작동한다. 대부분의 파라메터가 XR Base Interactor에 구현되어 있다.
Show Interactable Hover Mesh : Interactable이 오버랩 되었을 때 시각적으로 표시한다. 시각화 해주는 모양은 Interactable의 모양으로 고정되어 있다. Material, 크기 바꿀 수 있다.
- Hover Mesh Material : XR Socket Interactor가 인터랙션 할 수 있는 상태일 때 Interactable이 오버랩되면 표시할 Material
- Can't Hover Mesh Material : XR Socket Interactor가 다른 Interactable을 Select 하고 있는 등 인터랙션 할 수 없는 상태일 때 Interactable이 오버랩 되면 표시할 Material
- Hover Scale : Hover Mesh Material이나 Can't Hover Mesh Material을 시각화할 때의 크기
Socket Active : 비활성화 되어있으면 XR Socket Interactor의 인터랙션 기능이 작동하지 않는다.
Recycle Delay Time : Select 상태의 Interactable이 Deselect 되는 순간부터 다시 인터랙션이 가능해지는 시간
'유니티 > VR' 카테고리의 다른 글
XR Interaction Toolkit 주요 컴포넌트의 기능과 파라메터 - 4. Locomotion (0) | 2022.11.21 |
---|---|
XR Interaction Toolkit 주요 컴포넌트의 기능과 파라메터 - 3. Interactable (0) | 2022.11.20 |
XR Interaction Toolkit 주요 컴포넌트의 기능과 파라메터 - 1. Core (0) | 2022.11.20 |
XR Interaction Toolkit 개념과 핵심 기능 - 9. XR Socket Interactor (0) | 2022.11.19 |
XR Interaction Toolkit 개념과 핵심 기능 - 8. Haptic (0) | 2022.11.19 |