키 입력으로 캐릭터 움직이기

1000·2021년 5월 16일
0

1. 사용할 Input Mapping 확인하기

언리얼에서 Input Mapping을 몇가지 기본적으로 제공해줍니다.
이 중 축 매핑에 정의되어 있는 MoveForward와 MoveRight를 이용하여 캐릭터를 움직여보자!

2. 사용할 Input Mapping 확인하기

MoveForward와 MoveRight는 매 틱마다 호출됩니다.
그리고 Axis Value로 키 입력에 따라 값이 반환되는데,
아무 키도 누르고 있지 않다면 0, 매핑된 키가 눌리면 정의된 Scale값이 반환됩니다.

예를 들어 키보드의 W키를 누르면 MoveForward의 Axis Value로 1이 반환되며,
S키를 누르면 -1이 반환됩니다.

Add Movement Input은 Scale Value와 World Direction을 계산하여 Pawn을 이동시킵니다.
Scale Value는 얼마나 이동할지 크기에 해당하므로,
MoveForward와 MoveRight의 Axis Value를 연결합니다.

World Direction은 이동할 방향 벡터를 넣어줘야 하는데,
액터가 바라보는 방향으로 이동해야 하므로,
바라보는 방향을 가져올 수 있는 컨트롤러의 회전값을 가져와 연산합니다.

컨트롤러의 Forward Vector와 Right Vector를 가져와 사용해도 되지만,
회전값을 분리(Break Rotator)하여 처리하는 이유는
카메라가 땅을 보고 있을 때 Forward Vector를 가져오면 땅으로 파고는 벡터가 나오게 됩니다.
이렇게 되면 캐릭터가 앞으로 이동하지 못하므로,
회전값을 분리하여 Z축 회전인 Yaw값만 활용하도록 합니다.

이렇게 작업하면 W, A, S, D 키로 캐릭터를 이동시킬 수 있습니다.

profile
Game Programming

0개의 댓글