티스토리 뷰
Gameplay Ability System - Top Down RPG / Section 9-11
Just Move 2026. 7. 14. 04:00Implementing Auto Running
현재까지는 목적지와 경로만 생성했으므로, 이제 매 프레임마다 캐릭터를 목적지 방향으로 이동시키는 작업을 수행한다.
해당 내용은 따로 함수를 만들어서 관리할 것이다.

먼저 현재 플레이어가 조종하고 있는 Pawn을 가져온다.
이후 캐릭터는 항상 Spline 위에 정확히 위치하는 것이 아니므로, Pawn의 현재 위치를 그대로 사용하는 대신 Spline에서 Pawn의 월드 위치와 가장 가까운 지점을 구한다.
이때 FindLocationClosestToWorldLocation() 함수를 사용하며, Pawn의 현재 위치를 입력하고 월드 좌표계를 기준으로 가장 가까운 Spline 상의 위치를 얻을 수 있다.
또한 Spline이 어느 방향으로 이어지는지도 알아야 한다.
이번에는 FindDirectionClosestToWorldLocation() 함수를 통해서 방금 구한 Spline 위치를 토대로 방향을 구할 것이다.
이러한 방향을 토대로 전에 사용했던 AddMovementInput 함수를 통해 캐릭터를 움직인다.
마지막으로 자동 실행을 종료할 시점을 계산해야 한다.
목적지와 현재 위치(Spline 위치)를 통해 거리를 계산하고, 허용 반경값과 비교하여 자동 이동을 멈출 때가 되었는지 판단한다.

이제 짧은 클릭 시에도 해당 위치를 통해 자동 이동을 수행하는 것을 볼 수 있다.

하지만 멀티플레이 테스트 시, 클라이언트에서 클릭 후 놓으면 아무 일도 발생하지 않는다.
이를 고치기 위해서는 프로젝트 세팅에서 Navigatio System의 옵션 Allow Client Side Navigation을 활성화하여야 한다.
클라이언트에서도 당연히 Navigation Path를 생헝하지만, 기본적으로는 클라이언트에서 Path 생성이 비활성화되어있기 때문에 이를 직접 활성화시켜줄 필요가 있다.

또 다른 문제로 가끔 캐릭터가 계속해서 멀리 달려가는 경우가 있다.
특히 특정 오브젝트 반대편을 클릭하면 끝없이 달리는 경우가 발생한다.
이에 대한 원인은 맵의 바닥보다 기둥의 충돌 메시(Collision)에 Line Trace가 먼저 충돌하기 때문이다.
예를 들어 맵에 배치된 기둥을 클릭하면, Line Trace는 바닥이 아니라 기둥의 Collision Volume에 Hit하게 된다.
이로 인해 바닥이 아닌 충돌체의 위치를 기준으로 목적지가 설정되어 의도하지 않은 이동이 발생할 수 있다.
이를 해결하기 위해서는 기둥의 Visibility Collsion을 Ignore로 변경하면 Line Trace가 기둥을 통과하며 뒤쪽 바닥에 충돌한다.
이를 통해 기둥을 클릭하더라도 바닥을 클린한 것과 동일하게 이동하는 것이 가능해진다.

두 번째로 NavMesh 밖을 클릭했을 때 발생하는 문제도 있다.
경로 탐색은 NavMesh 내부의 마지막 지점까지만 생성되지만, CachedDestination에는 클릭한 위치가 그대로 저장된다.
따라서 캐릭터는 경로의 마지막 지점까지는 이동하지만, 실제 목적지(CachedDestination)에는 도달할 수 없기 때문에 자동 실행 종료 조건을 만족하지 못하고 계속 이동하려고 한다.
이를 해결하기 위해 경로 생성 후 경로의 마지막 지점을 CachedDestination으로 갱신하여, 실제로 도달 가능한 위치를 목적지로 사용하도록 수정한다.

'Study > [Unreal] Udemy 강의' 카테고리의 다른 글
| Gameplay Ability System - Top Down RPG / Section 9-13 (0) | 2026.07.16 |
|---|---|
| Gameplay Ability System - Top Down RPG / Section 9-12 (0) | 2026.07.15 |
| Gameplay Ability System - Top Down RPG / Section 9-10 (0) | 2026.07.13 |
| Gameplay Ability System - Top Down RPG / Section 9-9 (0) | 2026.07.12 |
| Gameplay Ability System - Top Down RPG / Section 9-8 (0) | 2026.07.11 |
