프로젝트 초기에는 Spline 기반 커스텀 경로 탐색(FlyingAIPathfinding)을 활용했으나, 3D NavMesh 플러그인 도입 이후 Unreal Engine의 MoveTo 등 기본 네비게이션 시스템을 적극적으로 활용하게 되었습니다. 이를 통해 AI가 환경에 따라 자유롭게, 더욱 현실적인 방식으로 이동할 수 있게 되었고, 유지보수성과 확장성이 크게 향상되었습니다.
📌 문제 인지
1️⃣ 기존 접근 방식
- Spline 기반 경로 이동
- AI가 지정된 Spline을 따라 움직이는 방식.
- Custom FlyingAIPathfinding 에 구현되어있는 MoveTo를 활용해 Navmesh 없이 SetActorLocation을 이용한 이동.
- Spline Index를 이용해서 움직이는 방식

2️⃣ 한계점
-
경로의 다양성 부족
-
Spline 경로를 직접 작성하고 관리해야 하는 번거로움
-
복잡한 환경/장애물에서 현실감 있는 네비게이션 어려움
- 맵이 수정 될 때마다 Spline도 조정해야 함.
👉 기존의 Spline을 이용한 AI 이동방식은 확장성도 좋지 않고 리얼한 AI를 구현하는데 많은 어려움이 있을거라 생각함
기존의 Spline 이동 방식을 고수할지, 새로운 해결방안을 생각해서 선택할지 기술적 의사결정이 필요.
📌 해결 과정
1️⃣ 새로운 접근 & 의사 결정: 3D NavMesh + Unreal 기본 MoveTo
- 3D NavMesh 플러그인 도입하기로 결정
- UE의 기본 MoveTo, AIController, EQS 등 네이티브 시스템 활용 가능
- NavMesh가 3차원 공간 전체를 커버 → 물속, 공중 등 자유로운 AI 이동 지원
📌 효과
1️⃣ 기술적/디자인적 효과
- Spline 의존성 제거
- 다양한 레벨 디자인, 환경 변화에도 AI 이동 로직 재사용
- AI가 상황에 따라 목적지를 동적으로 탐색/이동 (ex. EQS, 랜덤 이동)
- 복잡한 장애물 회피, 플레이어 추적 등 행동 패턴 강화
- 개발 및 디버깅 효율 증가 (Unreal 기본 도구 및 디버깅 기능 활용)
- 유지보수 및 확장성 대폭 향상
2️⃣ 요약
- Spline 기반 커스텀 이동에서 3D NavMesh + MoveTo 등 Unreal 네이티브 기능 활용으로 전환함으로써,
- AI 이동의 현실감과 다양성,
- 개발 및 유지보수의 효율성,
- 향후 확장성 등 다방면에서 프로젝트의 완성도를 높일 수 있었음.