[UE5 : 3D(BP) - 캐릭터] Chapter 03. PlayerController
GitHub : https://github.com/developeSHG/UE5-3D_BP/commit/e33fe59fa091a43103260fce28c2831e3eef96d8
1인칭 슈팅을 만들거고 TPS 형식으로 만들어 볼 것.
그러기 위해선 마우스의 좌표를 받아서 회전하게끔 수정.
edit에서 회전을 담당할 Mouse X, Y를 설정
만약 Use Controller Rotation Pitch를 활성화하면 아래와 같이, 플레이어가 이상하게 회전한다.
일반적인 TPS게임이면 회전하는 것은 맞는데 위로 볼 때, 캐릭터가 저런식으로 회전하는 것이 아니라 카메라가 그 쪽을 주시하고, 조준하는 총만 위로 올리는 개념이여야 한다. 플레이어 자체가 움직이진 않는다.
그럼 다시 Pawn의 Use Controller Rotation Pitch를 비활성화하고,
Spring Arm을 보면 Pawn Control Rotation을 사용하겠다는 옵션이 있다.
활성화를 해주고, 그럼 플레이어 자체가 회전하는 것이 아니라, 카메라가 플레이어의 회전 값에 맞춰 회전하게 된다.
아래의 코드를 Player 안에다 입력 코드를 작성했는데, 틀린 방법은 아니다. 하지만 만약 플레이어의 코드량이 많아진다거나 아니면 특정 상황에 따라서 행동이 바뀌기를 원하면 플레이어에서 제어하기 보다는 플레이어의 입력을 케어하는 코드이기 때문에, Player Controller에다 넣는 것도 하나의 방법이다.
Player Controller로 이전한 코드
그리고, Jump를 구현해야 한다고 하면 다른 엔진의 경우는 물리공식을 이용하는 등 직접 구현해야 되겠지만, 이 Movement Component에 다양한 기능이 들어가 있다. 언리얼 엔진의 슈팅 게임에 맞춰져있는 엔진이라서 Jump라던지 기어가는 거라던지 기본적인 동작에 대한 함수가 미리 만들어져있다.