최종 프로젝트 - 기술적 의사결정(AI 이동방식)

정혜창·2025년 6월 28일

내일배움캠프

목록 보기
61/64
post-thumbnail

프로젝트 초기에는 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 이동의 현실감과 다양성,
    • 개발 및 유지보수의 효율성,
    • 향후 확장성 등 다방면에서 프로젝트의 완성도를 높일 수 있었음.

profile
Unreal 1기

0개의 댓글