내비메시를 이용해 AI 이동하기
이제 AI가 플레이어를 향해 쫓아오게 만들어보자.
AI가 장애물을 피해 플레이어에게 올 경로를 찾을 수 있어야 하는데, 이는 Nav Mesh통해 하게 된다.
Nav Mesh는 레벨에서 걸어 다닐 수 있는 공간인 메시로 A* Pathfinding 알고리즘을 사용한다.
해당 메시 구역 내 경로를 계획하면 AI가 그 경로를 따라 움직이게 된다.
이를 위해 우선 Nav Mesh를 배치해주자.
Nav Mesh를 보이도록 하기 위해서는 좌측 상단의 Show 항목에서 Navigation 항목을 활성화 해주어야 한다.
그리고 전에 생성했던 BP_ShooterAIController가 가진 컴포넌트 중에 다음과 같은 컴포넌트가 존재한다.
해당 컴포넌트는 FMesh를 찾아서 우리로 하여금 경로를 생성하게 해주고, 경로를 따라 자동으로 움직이게 해준다.
따라서 이런 기능을 직접 구현할 필요 없이, AIController가 제공하는 함수만 사용해도 간단히 구현이 가능하다.
우리가 사용할 함수는 MoveToActor 함수이다.
해당 함수가 가지는 인자중 우리가 할당할 값은 첫 번째 값과 두 번째 값이다.
첫 번째 값은 이동할 목표 지점이고, 두 번째 값은 접근거리 값이다.
우리는 적 캐릭터가 우리 캐릭터 바로 앞까지 오는 것을 원하지 않기에, 2m의 값을 할당해주었다.
그리고 Nav Mesh의 범위를 수정해보았다.
이제 컴파일을 해보면 캐릭터가 따라오긴 하나, 한번 따라온 이후에 계속에서 따라오지는 않는다.
이는 BeinPlay에서 해당 함수를 작성해서 생긴 현상으로, Tick 함수에서 다시 작성해줄 필요가 있다.
ShooterAIcontroller 클래스에는 Tick 함수가 없으므로 해당 함수도 구현해주자.
이제 컴파일을 해보면 Nav Mesh 범위 내에서는 계속하여 따라오는 것을 볼 수 있다.
다만 시선은 제대로 따라오지 않으며, 이는 다음 강의에 이어서 개선해 나가게 된다.
레벨 전체에서 AI가 플레이어를 따라오도록 만들기 위해 Nav Mesh의 범위를 레벨 전체로 확대해주자.
'Unreal > Udemy 강의' 카테고리의 다른 글
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 6-29 (0) | 2024.05.07 |
---|---|
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 6-28 (0) | 2024.05.07 |
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 6-26 (0) | 2024.05.06 |
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 6-25 (0) | 2024.05.06 |
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 6-24 (0) | 2024.05.06 |