미디어 콘텐츠 스터디
Part03. 잡기/이동 인터렉션(Grab&Translation Interaction) 본문
Part03. 잡기/이동 인터렉션(Grab&Translation Interaction)
danmujicat 2023. 4. 16. 15:49물체를 잡아서 위치를 이동한다.
1. XR-Origin 구성하기
① GameObject | XR | XR Origin(Action-Based) 메뉴를 선택하여 하이러키 창에 XR Origin를 추가하고 Main Camera는 삭제한다. 인스팩트 창에 XR Origin과 Input Action Manaager 컴포넌트가 추가되어 있다.
② 하이러키 창에 XR Origin를 선택하고 인스펙터 창에서 XR Origin 컴포넌트의 Tracking Origin Mode 속성값을 Floor로 설정한다.
2. 핸드 트래킹 구성하기
② 하이러키 창에 XR Origin->Camera Offset 하위에 GameObject|Create Empty 메뉴를 선택하여 빈 오브젝트를 추가하고 이름을 HandVisualizer로 변경한다.
② 하이러키 창에 XR Origin->Camera Offset-> HandVisualizer 를 선택하고 인스팩터 창에서 Add Component 버튼을 클릭하여 Hand Visualizer 컴포넌트를 추가한다.
② 하이러키 창에 XR Origin->Camera Offset-> HandVisualizer 를 선택하고 인스팩터 창에서 Hand Visualizer 컴포넌트에 각 속성값을 설정한다.
- Origin : 하이러키 창의 XR Orign 설정
-Left Hand Mesh : 프로젝트 창의 Samples->XR Hands->1.1.0-> HandVisualizer->Model에서 LeftHand를 설정
-Right Hand Mesh : 프로젝트 창의 Samples->XR Hands->1.1.0-> HandVisualizer->Model에서 RightHand를 설정
-Hand Mesh Material : 원하는 재질 설정
-Draw Meshes : 체크
- Debug Draw Prefab : 프로젝트 창의 Samples->XR Hands->1.1.0-> HandVisualizer->Prefab에서 Joint 프로팹 설정
- Velocity Prefab : 프로젝트 창의 Samples->XR Hands->1.1.0-> HandVisualizer->Prefab에서 VelocityPrefab 프로팹 설정
- Velocity Type : None 선택
3. 핸드 트래킹 입력 액션 설정하기
① 하이러키 창에서 LeftHand Controller를 선택하고 인스펙터 창에서 XR Controller(Action-Based)만 제외하고 XR Ray Interactor, Line Renderer, XR Interacter Line Visual, Sort Group 컴포넌트는 삭제하고 각 액션에 입력값을 다음과 같이 설정한다. RightHand Controller도 동일하게 한다.
4. 모델 만들기
① GameObject | 3D Object | Plane 메뉴를 선택하여 Plane 추가하고, 원하는 재질을 설정한다.
② GameObject | 3D Object | Cube 메뉴를 선택하여 Cube 추가하고, 이름을 Table로 변경하고 인스펙터 창에서 Position(-1.0, 0.0, 0.16), Scale(0.76, 0.76, 1.3)로 설정한다.
③ GameObject | 3D Object | Cylinder 메뉴를 선택하여 Cylinder 를 추가하고, 인스펙터 창에서 Transform을 설정하고, 원하는 재질을 설정한다.
- Scale(3.697217,16.29315,3.697217)
④ GameObject | 3D Object | Cylinder 메뉴를 선택하고, 인스펙터 창에 Capsule Colider를 삭제하고 Mesh Colider를 추가하고, Convex 속성을 선택하고, Mesh 속성에 pCylinder1 값을 설정한다
⑤ GameObject | 3D Object | Cylinder 메뉴를 선택하여 Cylinder 를 추가하고, 이름을 Cone으로 변경하고, 인스펙터 창에서 Transform을 설정하고, 원하는 재질을 설정한다.
- Scale(4.826501,4.826501,4.826501)
⑥ GameObject | 3D Object | Cone 메뉴를 선택하고, 인스펙터 창에 Capsule Colider를 삭제하고 Mesh Colider를 추가하고, Convex 속성을 선택하고, Mesh 속성에 pCone1 값을 설정한다
⑦ 하이러키 창에서 Cone을 선택하고 하위에 Cylinder모델을 추가하고, 인스펙터 창에서 Transform을 설정하고, 원하는 재질을 설정한다.
5. 물체 잡고 이동하기
① 하이러키 창에서 LeftHand Controller를 선택하고 인스펙터 창에서 [Add Component] 버튼을 클릭하여 Direct Interactor 컴포넌트를 추가한다. RightHand Controller도 동일하게 한다.
② 하이러키 창에서 LeftHand Controller를 선택하고 G인스펙터 창에서 [Add Component] 버튼을 클릭하여 Sphere Collider 컴포넌트를 추가하고, Is Trigger를 선택한다. RightHand Controller도 동일하게 한다.
③ 하이러키 창에서 Cylinder 오브젝트를 선택하고 인스펙터 창에 [Add Component] 버튼을 클릭하여 XR Grab Interactable 컴포넌트를 추가하고, Select Mode속성은 Multiple로 설정하고, Movement Type 속성은 Kinematic으로 설정하고, Throe On Detatch속성은 선택해제하고, Use Dynamic Attach 속성은 선택한다. Rigidbody 추가하고 Use Gravity속성은 해제한다.
④ 하이러키 창에서 Cylinder 오브젝트를 선택하고 인스펙터 창에 [Add Component] 버튼을 클릭하여 XR General Grab Tansformer 컴포넌트를 추가한다.
⑤ 하이러키 창에서 Cylinder 오브젝트를 선택하고 하위에 빈 오브젝트를 추가하고 이름을 InteractionAffordance로 변경하고, 인스펙터 창에 [Add Component] 버튼을 클릭하여 XR Interactable Affordance State Provider 컴포넌트를 추가하고, Interactable Source 속성에 하이러키창의 Cylinder 오브젝트를 드래그앤드룹하여 설정한다.
⑥ 하이러키 창에서 Cone 오브젝트를 선택하고 인스펙터 창에 [Add Component] 버튼을 클릭하여 XR Grab Interactable 컴포넌트를 추가하고, Select Mode속성은 Multiple로 설정하고, Movement Type 속성은 Kinematic으로 설정하고, Throe On Detatch속성은 선택해제하고, Use Dynamic Attach 속성은 선택한다. Rigidbody 추가하고 Use Gravity속성은 해제한다.
⑦ 하이러키 창에서 Cone오브젝트를 선택하고 인스펙터 창에 [Add Component] 버튼을 클릭하여 XR General Grab Tansformer 컴포넌트를 추가한다.
⑧ 하이러키 창에서 Cylinder 오브젝트를 선택하고 하위에 빈 오브젝트를 추가하고 이름을 InteractionAffordance로 변경하고, 인스펙터 창에 [Add Component] 버튼을 클릭하여 XR Interactable Affordance State Provider 컴포넌트를 추가하고, Interactable Source 속성에 하이러키창의 Cylinder 오브젝트를 드래그앤드룹하여 설정한다.
실행하기
'가상현실(Virtual Reality) > 핸드 트래킹 다루기 XR Hand v1.4.0 미만' 카테고리의 다른 글
Part05. UI 인터렉션 (0) | 2023.05.17 |
---|---|
Part04. 누르기 인터렉션(Poke Interaction) (0) | 2023.04.18 |
Part02. 잡기 인터렉션(Grab Interaction) (0) | 2023.04.16 |
Part01. 손 동작 구성 (0) | 2023.04.15 |
Part00. 핸드 트래킹 환경 설정 (0) | 2023.04.15 |