미디어 콘텐츠 스터디
Part06. 문(Door), 서랍(Drawer), 레버(Lever) 조작 본문
Part06. 문(Door), 서랍(Drawer), 레버(Lever) 조작
danmujicat 2022. 8. 9. 18:371. 문 열고 닫기
1.1 문 잡기 설정하기
ⓛ Cabinet 프리팹 임포트하여 하이러키 창에 추가하고 Transform 컴포넌트를 재설정한다.
Position(-0.161, 0, -1.18)
Rotation(0, -180, 0)
② 하이러키 창의 Cabinet하위의 Door를 선택하고 인스펙터 창에 [Add Component] 버튼을 클릭하여 Rigidbody, XR Grab Interactable 컴포넌트 추가한다.
③ 하이러키 창의 Cabinet하위의 Door를 선택하고 인스펙터 창에 XR Grab Interactable에서 Movement Type을 Kinematic 설정한다.
④ 하이러키 창의 Cabinet하위의 Door를 선택하고 인스펙터 창에 XR Grab Interactable 컴포넌트에서 Colliders 속성에 1을 입력한 후 Element0에 하이러키 창의 Cabinet->Door->Door handle을 드래그앤 드롭하여 설정한다.
④ 실행하기
1.2 문 손잡이 잡기 설정하기
ⓛ 인스펙터 창에 Layer->Add Layer 선택하여 Grab Ignore Ray 추가한다.
Layer-> Add Layer 선택하여 Body도 추가되어 있어야 함
② 하이러키창에 Door 선택하여 인스펙터 창에서 Layer에 Grab Ignore Ray 설정한다.
③하이러키창에 Drawer선택하여 인스펙터 창에서 Layer에 Grab Ignore Ray 설정한다.
④ Edit | Project Settings 메뉴를 선택하여 Physics 항목을 선택하고 Body와 Grab Ignore Ray 서로 언체크한다.
1.3 문 열기 범위 설정하기
ⓛ 하이러키창에 Door 선택하고 인스펙터 창에서 XR Grab Interactable의 Movement Type을 Velocity Tracking으로 변경한다.
② 하이러키창에 Door선택하고 인스펙터 창에서 [Add Component]클릭하여 Hinge Joint 컴포넌트 추가한다.
③ Hinge Joint 컴포넌트의 Edit Angular Limits 버튼을 클릭한다.
④ Use Limits 체크하고 씬 창에서 문을 열릴 만큼 드래그한다.
⑤ 실행하기
1.4 문 열기 범위 자동 제한하기
ⓛ 하이러키창에 Door 선택하고 Hinge Joint 컴포넌트의 Use Spring 체크한다.
② Spring -> Damper를 1로 설정한다.
③ 실행하기(문이 활짝 열리지 않고 열리기 제한됨)
2. 서랍 열고 닫기
2.1 수동적 열고 닫기
ⓛ 하이러키 창에서 Cabinet->Drawer를 선택하고 인스펙터 창에서 [Add Component ]버튼을 클릭하여 Rigidbody, XR Grab Interactable 컴포넌트 추가한다.
② 하이러키 창에서 Cabinet-> Drawer를 선택하고 인스펙터 창에서 Layer에 Grab Ignore Ray 설정되어 있는지 확인한다.
③ 하이러키 창에서 Cabinet-> Drawer를 선택하고 인스펙터 창에서 XR Grab Interactable컴포넌트의InteractionLayer Mask을 Everything 설정한다.
④ 하이러키 창에서 Cabinet-> Drawer를 선택하고 인스펙터 창에서 XR Grab Interactable 컴폰넌트의 Movement Type을 Velocity Tracking 설정한다.
⑤ 하이러키 창에서 Cabinet-> Drawer 를 선택하고 인스펙터 창에서 XR Grab Interactable 컴포넌트의 Colliders 속성에 1을 입력한 후 Element0에 하이러키 창의 Cabinet-> Drawer 을 드래그앤 드롭하여 설정한다.
⑥ 하이러키 창에서 Cabinet->Drawer를 선택하고 인스펙터 창에서 [Add Component]버튼을 클릭하여 Configurable Joint컴포넌트 추가한다.
Configurable Joint의 속성을 다음과 같이 설정한다.
Axis(0,0,-1)
X Motion : limited, Y Motion : Locked , Z Motion : Locked
Angular X Motion : Locked, Angular Y Motion : Locked, Angular Z Motion : Locked
Linear Limit -> Limit : 0.4 , X Drive -> Position Damper : 2
⑦ 실행하기
2.2 부드럽게 닫히기
ⓛ 하이러키 창의 Cabinet->Drawer를 선택하고 인스펙터 창에 XR Grab Interactable 컴포넌트에 Attach Transform에 Cabinet->Drawer를 드래그앤드롭 설정하기
② 실행하기
3. 레버 밀고 당기기
3.1 레버 만들기
ⓛ GameObject | 3D Object |Cube 메뉴 선택하여 하이러키 창에 Cube 추가하고 이름을 Lever로 변경, Transform 재설정한다.
Position(-0.407, 1.188, -0.934)
Scale(0.032, 0.31, 0.032)
② GameObject | 3D Object | Cube 메뉴 선택하여 하이러키 창에 Lever하위에 Cube 추가, Transform 재설정한다.
Position(0, 0.607,0)
Scale(1.47, 0.24, 1.47)
3.2 레버 잡기
ⓛ 하이러키 창에서 Lever를 선택하고 인스펙터 창에서 [Add Component]버튼을 클릭하여 Rigidbody, XR Grab Interactable 컴포넌트 추가한다.
② 하이러키창에서 Lever 선택하여 인스펙터 창에서 Layer의 Grab Ignore Ray 설정한다.
③ 하이러키 창의 Lever를 선택하고 인스펙터 창에서 XR Grab Interactable 컴포넌트의 Colliders 속성에 1을 입력한 후
Element0에 하이러키 창의 Lever->Cube을 드래그앤 드롭하여 설정한다.
3.3 레버 움직임 범위 설정하기
ⓛ하이러키 창의 Lever를 선택하고 인스펙터 창에서 XR Grab Interactable 컴포넌트의 Movement Type을 Velocity Tracking 설정한다.
② 하이러키 창의 Lever를 선택하고 인스펙터 창에 [Add Component] 버튼을 클릭하여 Hinge Joint 추가하고 Hinge Joint 컴포넌트의 Edit Angular Limits 버튼을 클릭하고 Achor (0, -0.43, 0) Axiz(0,0,1) 설정한다.
③ Use Limits 체크하고 씬창에서 Lever을 열릴 만큼 드래그한다.
④ 인스펙터 창에서 Hinge Joint 컴포넌트의 Use Spring 체크, Spring -> Damper를 2로 설정한다.
⑤ 실행하기
Rigidbody에 Use Gravity 언체크 => 레버가 움직이면 제자리로 돌아가지 않고 움직임 만큼 고정
'가상현실(Virtual Reality) > 가상현실 기초 다루기' 카테고리의 다른 글
Part08. 양손 잡기 상호작용(Two Hand Grab Interation) (0) | 2022.08.11 |
---|---|
Part07. 스냅 존(Snap Zone) (0) | 2022.08.10 |
Part05. 광선 상호작용(Ray Interaction) (0) | 2022.08.09 |
Part04. 잡기 인터렉션(Grab Interaction) (0) | 2022.06.07 |
Part03. 순간 이동(Teleportation) (0) | 2022.05.22 |