핵심 2가지
HurricaneVR 에셋을 사용하기 위해서는 Scene에 반드시 2가지가 존재해야 합니다.
- XR Rigs : HurricaneVR에셋에는 이미 제작된 두 개의 XR Rig가 포함되어 있습니다. (XR Rig 위치: /HurricaneVR/TechDemo/Prefabs/)
TechDemoXRRig: Oculus / SteamVR 플러그인과 함께 사용할 때 사용하는 Rig입니다.
TechDemoXRRigOpenXR: OpenXR 플러그인과 함께 사용할 때 사용하는 Rig입니다. - HVRGlobal : 프레임워크가 기능을 수행하는 데 필요한 여러 컴포넌트가 포함되어 있습니다. 예를 들어, Input Manager, Time Manager 등의 역할을 수행합니다.
XR Rigs과 HVRGlobal이 포함된 Scene은 /HurricaneVR/TechDemo/Scenes/scenes_barebones에서 찾아볼 수 있습니다.
Grabbable 세팅
빈오브젝트를 생성 후 자식으로 Cube를 생성해줍니다.
자식 큐브에는 HVR Grabbable Child 컴포넌트를 생성해줍니다.
윈도우 상단 Tools - HurricaneVR - Posing을 선택해줍니다. 그러면 우측 사진처럼 윈도우 창이 새로 생깁니다.
Grabbable을 선택한 상태에서 Setup버튼을 누르면 자동으로 컴포넌트들이 추가됩니다.
Preview 버튼을 누르면 손이 생겨서 미리볼 수 있습니다.
노란색 박스 기즈모를 누르면 구가 되고 회전할 수 있습니다. 두 가지 옵션을 통해 손을 컨트롤할 수 있습니다.
우측 사진처럼 Auto Pose를 선택하시면 손이 Mesh에 알아서 자동으로 붙습니다. 좀 더 편하게 작업할 수 있습니다.
이때 주의할 점은 GrabPoint는 (0,0,0) 이여야 합니다.
Mirror 버튼을 누르면 반대 손을 설정한 손에 대칭되듯 세팅할 수 있습니다.
세팅이 다 끝났다면 Save As 버튼을 통해 폴더에 저장한 후 Preview 기능들을 꺼줍니다.
LOD Model도 해봤는데 LOD 모델에는 Grabbable이 적용이 안되는 문제가 있었습니다.
제가 세팅을 잘못한걸까요? 흠...
Physics Door 세팅
- 먼저, Door의 Pivot이 사진처럼 Side에 배치되어 있는지 확인하셔야 합니다.
- 두 번째로, Rigidbody, HVRPhysicsDoor and HVRRotationTracker컴포넌트를 붙여줍니다.
- HVRPhysicsDoor 컴포넌트에서 Option들을 본인 프로젝트에 맞게 세팅해줍니다.
- Grabbable 세팅에서 배운대로 손잡이 부분을 세팅해주면 됩니다.
HVR Object Collision Disabler에 등록된 객체들은 서로를 무시하게 됩니다. 즉, 충돌처리가 되지 않는다고 생각하면 됩니다.
문의 구조는 반드시 저거를 지킬 필요는 없습니다.
손잡이의 경우 반드시 3가지의 컴포넌트를 가질 필요는 없고, 상황에 맞게 할당해주시면 됩니다.
하지만 Grabbable 컴포넌트는 필수로 가지고 있어야 합니다. (Rotation Tracker와 Physics Dial은 필수는 아닌 것 같습니다)
응용을 한다면 손잡이가 따로 분리되어 있지 않는 객체에도 따로 손잡이를 만든 다음 Hand Pose를 설정하시면 됩니다.
이때 주의하실 점은 Rotation Tracker가 없다면 플레이어가 문과 충돌할 때 문이 혼자 열립니다.
따라서 rigidbody를 키네메틱으로 설정한 다음, 우측 사진과 같이 Grabbable 컴포넌트에서 잡을 때와 놓을 때 키네메틱을 컨트롤하면 될 것 같습니다.