[UE4] 모션컨트롤러로 이동 구현

왕윤성·2021년 2월 16일
0

졸업프로젝트로 VR을 선택했기 때문에 가장 기본이 되는 컨트롤러를 통한 플레이어 폰(PAWN)이동을 구현해봤다.

왼쪽 컨트롤러의 조이스틱으로 플레이어 폰의 Location중 x, y를 변화시키고(점프, 호버 기능은 추후 추가 예정.) 오른쪽 컨트롤러의 조이스틱으로 플레이어 폰의 Yaw를 변화시킨다.


이미지 출처 : https://www.researchgate.net/figure/xyz-and-pitch-roll-and-yaw-systems_fig4_253569466

왼쪽 컨트롤러


가장 왼쪽 빨간색 블럭은 언리얼 프로젝트를 가상현실 프로젝트로 열었을 때 언리얼에서 기본으로 제공해주는 input 값 중 하나로 모션 컨트롤러의 버튼 중 왼쪽 조이스틱의 값을 나타낸다. 자세히 보면 오른쪽 빨간 블럭이 X로 끝나는 것이 있고, Y로 끝나는 것이 있는데 X로 끝나는 것을 플레이어의 좌우 이동으로 매칭하고, Y로 끝나는 것을 플레이어의 앞뒤 이동으로 매칭하면 된다.

해보니까 앞뒤 매칭이 거꾸로 되어있어서 두 사진 중 아래 사진을 보면 -1.0을 곱해준 것을 알 수 있다.

Add Movement Input을 통해 플레이어 폰 움직인다.

InRange( float)함수에 대하여.

위의 함수는 어떤 float값(Value)가 들어오면 그 값이 내가 지정한 Min~Max사이에 존재하는지 확인해주어서, 그에 맞는 bool값을 리턴한다.
위의 함수를 넣은 이유는 컨트롤러가 오래되서 그런지 모르겠지만 아무 것도 누르지 않은 상태에서도 조이스틱의 값이 0.03정도의 값을 유지하고 있어서 플레이어 폰이 마음대로 움직였기 때문.

오른쪽 컨트롤러


마찬가지로 컨트롤러 입력을 받아서 InRange로 아주 작은 값들을 무시해주고, Add Controller Yaw Input을 통해 사용자의 좌우 시야를 변경시켜준다.

profile
개발자 입니다.

0개의 댓글