Create Snap Interactions

VR/Oculus Integration 2023. 12. 12. 17:20
반응형

https://youtube.com/playlist?list=PLTFRwWXfOIYB9hru6EjeVS0E-4jNiOuQQ&si=zoJ3NoYX6YrGnpg1

Unity VR with Oculus Integration 57.0

Unity VR with Oculus Integration

www.youtube.com



스냅 상호 작용을 통해 개체를 손, 컨트롤러 및 위치에 스냅할 수 있습니다. 스냅 상호 작용을 생성하려면 스냅 가능한 개체와 개체가 스냅될 수 있는 위치를 만듭니다. 사전 구축된 장면에서 스냅 상호 작용을 시도하려면 SnapExamples 장면을 참조하세요.
 

 
 

Before you Begin

 
핸드 그랩 기본형 만들기

 
 

Add Snappable Object

 

This snappable object responds to hands, controllers as hands, and controllers.

  1. Open the Unity scene where you completed the Create Grab Interactions tutorial.
  2. Under Hierarchy, select your Cube GameObject from the tutorial.
  3. Under Hierarchy, select Cube and create an empty child named SnapInteractor by right-clicking in the Hierarchy panel and then clicking Create Empty.
  4. Your hierarchy should look like this.

 
그랩되는 큐브 하나 만들기 

 
 
 
큐브를 선택 하고 SnapInteractor 빈오브젝트를 생성 

 
 

  1. Select the SnapInteractor GameObject.
  2. Under Inspector, add a Snap Interactor component.

 
 
이제 개체 근처를 잡으면 개체가 손이나 컨트롤러에 맞춰질 수 있습니다.
 
 
문서대로 하면 동작 안함 
예제를 까봄 
 

 
특이사항 : 최상위에 Box Collider가 있음 (이게 스냅 영역임)

 
 
 
 
 
예제처럼 최상위에 Box Collider를 추가 

 
 
 
몬가 느낌이 약간 다름 
 

 

예제

 
 
 
핸드 포즈 때문에 그렇게 느껴지는듯 

 
 
 
핸드 포즈를 넣어보기로함 

오른손은 미러

영역을 좀 키우고 

 
 
다시 테스트 
포즈 때문에 그렇게 보이는거였음 

 
 
 
 
문제점 : 한손으로 잡고 있는 상태에서 다른 손으로 잡으면 겹쳐서 보여짐 

 
 
예제도 그런가 테스트 
 

 
 
 
예제는 정상 동작함 
 
 
내껀 왜 문제임?
영역이 커서?
 

 
 
 
그럼 예제의 모델을 사용하고 크기고 똑같이 하고 테스트 

 
재 어디가냐 
 

 
그냥 처음부터 다시 만들어 봄 
 
빈오브젝트를 만들고 

 

 
 
Grabbable
Rigidbody (Is Kinematic 체크)
BoxCollider (스냅영역)
컴포넌트를 추가 


아 찾은듯 
이전에 만든 Cube 

 
 
예제 Moon 


 
 
이게 맞는지 검증 (아니였음...)
 

잡으면 멀리 날라가버림 

 


다시 아까 컴포넌트 붙이던거 이어서 

 
 
Transfer On Second Selection을 선택  (아마 이거 때문에 아까 두손으로 잡았을때 이상하게 보였던거일듯)

 
Moon을 선택하고 SnapInteractor 빈오브젝트를 만들고 Snap Interactor 컴포넌트를 부착함 

 
 
프로젝트 창에서 HandGrabInteractable를 찾아서 Moon 자식으로 넣음 

 
그랩 타입을 Pinch만 허용 
 

 
Visuals 빈오브젝트에 Cube를 만들고 스케일을 0.1로 조절 
 

 
포즈 레코드 하고 

 
 
 
불러와서 설정한다 

 
 
결과는 잘동작함 
 

 
 
근데 이건 그냥 스냅이 아니라 뭐랄까 핸드 포즈 그랩 느낌인데 
스냅 컴포넌트가 궂이 필요한가?
 
다시 테스트 (스냅 컴포넌트 제거 하고)
 

 

 
아니 잘 동작 하잖아 -_-;; 뭐가 다른겨 
 
 
 
사실 이부분을 빼먹음 

 
 
 
다시 Snap Interactor 키고 실행 
아니 뭐가 다른지 모르겠음 
그냥 핸드 포즈 그랩이랑 똑같이 동작함 -_-;;;;
일단 패스 

 
 
이번에는 Snap Interactor 제거 하고 다시 시도 

 
 
똑같음 이건 스냅처럼 보이지만 사실 아님 예제에 보면 집어서 놓았을경우 제자리로 가거나 동그란 원에 달라 붙는 용도로 쓰는게 맞는듯 
 
 

 
 
하지만 잡는 부분을 스냅이라고 하기에는.....음 
 

 
 
암튼 집어서 넣는 부분을 해부 한다 
 

 

 
 
요 Ring은 그냥 비주얼적인 요소인듯 

 
 
SnapInteractable 오브젝트에서 MoveToward 컴포넌트가 이동 시키고 있음 

 

 
 
 
 
 
돌아가는 애는 

그냥 돌리는 컴포넌트가 붙어 있음 다른거 동일함 

 
 
 
 
정리 
Snap Interactable, Move Towards Target Provider 가 있으면 댐 

 
 
 
 
그럼 이제 만들어 보자 
 
빈오브젝트를 만들고 (Orbits)

 
여기까지만 해도 되는데 링 모양으로 그릴라면 아래 2개가 필요함 

 
 
 
 
 
빈 오브젝트를 생성하고 (SnapInteractable)

 
Snap Interactable과 
Move Toward Target Provider 컴포넌트를 붙여 준다 

 
 
 
 
영역에 해당하는 큰 박스 콜러이더를 가진 게임 오브젝트를 하나 만들고 

 
Snap Interactable 컴포넌트의 Rigidbody프로퍼티에 넣어준다 

 
Options를 열어서 Movement Provider에 Move Towards Target Provider컴포넌트를 넣어준다 

 
 
 
테스트 
잘 동작은 하나 위치가 원의 중앙에 안붙음 
 

 
 
 
예제와 비교 해보기 
 

 
 
 
 
원본에 Snap Interactable 게임 오브젝트의 Rotation X가 왜 90이징

 
 
나도 바꿔본다 

왼 (Rotation 0, 0, 0),     우 (Rotation 90, 0, 0)

 
 
잘동작 한다 
또 문제 
예제에서는 링에 하나만 들어감 
나는 여러개 들어가짐 
 

 
 
어떻게 한개만 들어가게 막고 있는가?
 
예제 

 
 
내꺼 

 
 
 
 
설정해본다 

 
 
 
잘동작함 
 

 
 
 
요녀석이였음 

 
 
끗 


참고 
https://developer.oculus.com/documentation/unity/unity-isdk-create-snap-interactions/

반응형

'VR > Oculus Integration' 카테고리의 다른 글

FingerFeatureStateThresholds  (0) 2023.12.14
Unity VR Build a Custom Hand Pose (Oculus Integration SDK)  (0) 2023.12.14
One/Two Grab Free Transformer  (0) 2023.12.11
Oculus Integration SDK (R&D 리스트)  (0) 2023.12.11
Use Active State  (0) 2023.12.11
: