본문 바로가기

대학교 게임 개발 포트폴리오/VR 게임 개발

유니티 오큘러스 VR 게임 개발 - (1) 그립

 

오늘 배울 것은 그립 잡기이다.

 


존경하는 Valem?님이 올려주신 아래의 영상을 보고 구현했다.

 

https://www.youtube.com/watch?v=8PCNNro7Rt0&list=PLpEoiloH-4eP-OKItF8XNJ8y8e1asOJud&index=4

 

 

 

오늘의 결과물 미리보기~

 

주먹질이 익숙하지 않아 엉성하다..ㅎㅎ

 

 

 

 

 

 

이번부터는 트리거를 이용해야하기 때문에 Valem님이 준 에셋의 프리펩을 사용했다.

에셋의 다운로드 링크는 상단의 영상 설명란에 있다.

 

 

 

 

 

에셋을 다운로드 한 후 저번 글에 사용했던 큐브를 삭제하고 왼손과 오른손 모델을 넣어준다.

 

 

 

 

다음으로 기본적으로 하얗던 손을 커스텀해준다.

내 최애색은 핑크이기 때문에 아래처럼 색상을 바꿔주었다.

 

 

 

 

 

 

 

 

 

 

이제 본격적으로 컨트롤러의 입력값을 받아와 애니메이션을 연결해줄 차례다.

 

먼저 AnimateHandOnIput 이라는 스크립트를 만들어준다.

 

다음과 같이 작성해준다.

 

 

 

 

 

먼저 InputActionProperty란?

 Unity의 새로운 Input System에서 사용되는 클래스입니다. 이 클래스는 특정 입력 액션을 관리하고, 이를 통해 입력 이벤트를 쉽게 처리할 수 있도록 도와줍니다. 라고 뤼튼이 알려줬다.

 

InputActionProperty통해 float형으로 값을 읽어와 변수에 넣어준다. 그 후 손의 애니메이터에 트리거 명과 함께 float값을 넣어주면 간단히 끝이난다.

 

 

 

 

여기서 triggerValue는 RawAxis1D.L/RIndex Trigger의 입력 값을 받아오고,

gripValue는 RawAxis1D.L/RHandTrigger의 입력값을 받아온다.

 

 

 

스크립트 작성이 끝났다면 이제 컴포넌트 상에서 연결해줄 것이다.

 

 

Reference는 XR Interaction Toolkit/2.5.4/Starter Assets/XRI Default Input Actions.inputactions을 펼치면 찾을 수 있다.

 

 

 

사진처럼 UseReference 체크, Reference에 XRI LeftHand Interaction/Activate Value
 UseReference 체크, Reference에 XRI LeftHand Interaction/Select Value

Animator를 연결해준다.

왼손과 오른손 각각 맞는 값을 찾아 넣어주면 끝이난다.

 

 

 

 

 

컨트롤러의 입력값이 애니메이터에 들어가면 위의 Grip 과 Trigger 값이 바뀌며 애니메이션이 실행된다.

 

영상을 보면 알수 있지만 버튼을 어느정도 눌렀는지에 따라 grip의 정도를 세밀하게 조정 가능하다.

 

 


이제 마지막으로 영상을 보여주고 끝내겠다.

 

 

 

 

 


에러 해결

vr 테스트 까지 마친 후 갑자기

null instance 에러가 떴다. 유튜브 댓글을 찾아봐도 나와 같은 에러가 뜨는 사람이 없어서

당황했는데

유니티 에디터를 다시 껐다 켜보았더니 에러가 해결되었다.