2026.06.15

홍종우·2026년 6월 15일

캐릭터의 움직임을 구현했다.
강의 영상에는 Character클래스로 만들었으나 과제에는 Pawn클래스로 구현하라고 되어있어서 다양한 문제들이 발생했다.

<문제점>
1. 이동로직을 하나부터 열까지 다 구현해야함.
2. 물리법칙들이 적용이 안되어 있어서 해결해야함.
3. 카메라가 자연스럽게 따라오지 않음
4. 점프 로직 없음
5. IMC와 축방향 충돌

카메라가 보고있는 방향과 입력값을 바탕으로 이동과 회전을 구현하려고 했으나 영상을 보며 설정해둔 IMC의 방향이 충돌을 일으켜 버그가 생겼고 원하는 방향대로 바뀌지 않았다. IMC에 설정되어있는 값을 코드에 설정한 방향(World 방향)에 다 맞춰서 바꾸어주었다. 문제점들을 다음과 같이 해결하였다.

<해결방법>
1. AddActorLocalOffset(),AddActorLocalRotation()을 통해 현재의 위치에서 변화하는 값으로 이동, 회전을 구현하였음
2. 중력/충돌 등 라인트레이서 기반 원리로 물리법칙 해결하였음
3. SpringArm이 마우스 회전 값에 따라오도록 설정하였음. 그런데 회전이 너무 강하게 되서 뒤집히거나 휙휙 돌아가는 현상이 발생해서 이를 각도제한을 통해 해결하였음. 다만 아직도 마우스를 움직일 때 카메라 움직임이 불편한 감이 있음.
4. 점프로직은 Z축의 값을 계산하는 형태로 만들었음

현재 남은 문제점은 크게 3가지임
1. WASD를 누르면 원하는 방향을 바라보기는 하나 연속적으로 눌리지 않음. 예를 들면 D키를 누르면 World기준으로 오른쪽만 바라보고 있을 뿐 내가 원하는대로 Local에서 휙휙 돌지 않음.
->코드를 수정하면서 LocalLocation이 아닌 WorldLocation으로 바꾼 것이 있는데 이것 때문에 World에서 절대적인 값을 갖고 있어서 이동/회전하지 않는 듯함
2. 이동을 안함. 점프해서 이동을하면 이동이 되는데, 바닥에 붙은 채로는 이동이 안됨.
3. 회전시에 부드럽게 움직이지 않고 순간이동으로 움직임

내일은 이 3가지를 중점적으로 수정할 예정.

profile
홍종우

0개의 댓글