Unity 2022.3.5f1 + Oculus Integration 56.0 (Create Ghost Reticles)

VR/Oculus Integration 2023. 9. 26. 12:43
반응형

1단계 

핸드트래킹+컨트롤러핸드 

 

새 씬을 만들고 MainCamera를 제거하고 OVRCameraRig를 하이어라키에 드레그

 

Tracking Origin Type을 Floor Level로 변경

 

Quest Features의 Hand Tracking Support, Hand Tracking Frequency, Hand Tracking Version을 다음과 같이 설정

 

OVRHandPrefab을 LeftHandAnchor와 RightHandAnchor에 각각 넣고 unpack

 

 

두 OVRHandPrefab 게임 오브젝트를 선택후 OVRHand, OVRSkeleton을 제외한 나머지 컴포넌트 제거 

 

 

오른쪽 OVRHandPrefab 게임 오브젝트를 선택후 Hand Type을 Hand Right로 변경

 

 

OVRInteraction프리팹 찾아 OVRCameraRig에 드레그

 

OVRHands프리팹 찾아서 OVRInteraction에 드레그

 

OVRControllerHands프리팹 찾아 OVRInteraction에 드레그

 

 

빌드

컨트롤러 없으면 핸드 트래킹,  컨트롤러 있으면 손으로 컨트롤 가능 하면 성공 

 

 


Grab

Cube만들기
Rigidboy 부착 하고 Use Gravity 끄기
Grabbable부착

 

HandGrabInteractable 부착

 

 

 

HandGrabInteractor 프리팹 찾아서 HandInteractorsLeft에 드래그

 

HandInteractorsLeft선택하고 Interactors + 버튼 눌러 필드에 HandGrabInteractor 넣기 

 

오른쪽도 동일하게 

 

OVRCcontrollerHands도 동일하게

 

빌드후 결과 확인

핸드트래킹과 컨트롤러(핸드)를 사용해 물체를 잡을수 있음 

 

 

Cube에 DistanceHandGrabInteractable컴포넌트 추가

 

DistanceHandGrabInteractor프리팹을 HandInteractorsLeft에 넣고 + 버튼 눌러서 필드에 할당

 

오른손도 동일하게 진행

 

OVRControllerHands도 동일하게 진행

 

 

빌드후 결과를 확인

 

간혹 Hmd Ref가 빠지니 주의 할것 

OVRHmd를 넣어주면 댐
OVRControllerHand도 확인 하자

 

빌드후 결과 확인 

 

핸드트래킹과 컨트롤러(핸드)로 그랩 할수 있고 멀리 있는물체를 땡겨올수 있음 

 

 

 

 

래티클 

빈 오브젝트 ReticleRight 만들기

 

빈오브젝트 ReticleLeft만들기

 

ReticleIcon프리팹 차자 ReticleLeft, ReticleRight에 각각 넣어준다

 

 

ReticleRight를 선택해 Distance Interactor 필드에 RightHand에 있는 DistanceHandGrabInteractor를 넣어 주고 Center Eye필드에 CenterEyeAnchor를 넣어준다

 

 

 

ReticleLeft도 동일하게 

 

 

Cube를 선택 하고  Reticle Data Icon컴포넌트를 부착 하고 Optionals의 Renderer에 Cube를 Custom Icon에 Reticle-Circle를 찾아 넣는다 

 

핸드트래킹에서는 아이콘이 보이는데 컨트롤러(핸드)를 사용하면 안보인다면 ReticleIcon을 복사해 이전 과정을 반복한다 

 

빌드후 실행 

래티클 포인트가 핸드트래킹, 컨트롤러(핸드)에서 잘 보이면 성공

 

 

 


 

Create Ghost Mesh Reticle

 

 

ReticleMesh를 찾아 ReticleLeft, ReticleRight에 넣어준다

 

 

Cube를 선택해 Reticle Data Mesh컴포넌트를 부착 하고 Fillter에 Cube를 넣어 준다

 

ControllerHands도 동일하게 작업 한다

빌드후 결과를 확인 하자 

 

 

 

 


 

Ghost Line Reticle

ReticleLine프리팹을 ReticleRight에 드래그

 

Distance Interactor필드에 RightHand아래 있는 DistanceHandGrabInteractor를 넣어준다

ReticleRight 도 동일하게 설정

 

ControllerHand도 동일하게 설정한다

 

 

거리가 너무 가까우면 라인이 안보이거나 이상한데 생김 

 

빌드후 실행 결과를 확인 하자 

 

 


Ghost Hand Reticle

 

고스트 핸드 레티클은 OVRLeftHandReticle 또는 OVRRightHandReticle 프리팹을 사용합니다.

 

프로젝트에서 OVRLeftHandReticle을 검색하고 프리팹을 ReticleLeft로 드래그합니다.

 

Hierarchy에서 방금 추가한 OVRLeftHandReticle 프리팹을 선택합니다.

 

Inspector 아래 Reticle Ghost Drawer 구성 요소에서 Hand Grab Interactor를 왼손의 DistanceHandGrabInteractor로 설정합니다.

 

OVRLeftHandReticle > LeftHandSynthetic에서 Hand Visual을 OVRLeftHandVisual로 설정합니다. 왼손의 OVRLeftHandVisual을 사용하지 마십시오.

 

 

활성 상태 추적기 구성 요소에서 활성 상태를 LeftHand로 설정합니다.

 

계층 구조에서 OVRLeftHandReticle > LeftHandSynthetic을 선택합니다.

Inspector 아래의 Synthetic Hand 구성 요소에서 I Modified Data From Source Mono를 LeftHand로 설정합니다.

 

 

OVRRightHandReticle 프리팹을 사용하여 ReticleRight에 대해 이 모든 단계를 반복합니다.

 

 

계층 아래에서 큐브(거리 측정 튜토리얼에서 만든 개체)를 선택합니다.

 

Inspector에서 Add Component 버튼을 클릭하고 Reticle Data Ghost를 검색하여 Reticle Data Ghost 구성 요소를 추가합니다.

 

Reticle Data Ghost 구성 요소에서 Target Point를 Cube로 설정합니다.

 

 

파일 > 빌드 및 실행을 선택하거나 Oculus Link가 연결된 경우 재생을 클릭합니다.

 

양손으로 큐브 위로 마우스를 가져가면 개체 위에 유령 손이 나타납니다.

유령 손이 개체를 잡는 방법을 조정하려면 손 잡기 포즈 만들기(PC) 또는 손 잡기 포즈 만들기(Mac)를 참조하세요.

 

When you hover over the Cube with either hand, a ghost hand appears over the object. To adjust how the ghost hand grabs the object, see either Create a Hand Grab Pose (PC) or Create a Hand Grab Pose (Mac).

 

ControllerHand도 동일하게 설정 한다

빌드후 결과를 확인 하자 

 

 

 

반응형
: