게임 개발 공부/Unreal Engine

AI - Navigation Invoker 와 RVO

Vetenir 2025. 4. 25. 20:49

Navigation Invoker (내비게이션 인보커)

맵 전체에 NavMesh를 두고 Invoker를 캐릭터에 적용하여 원하는 범위 만큼만 NavMesh가 생성됩니다.

  • Project Settings - Engine - Generate Navigation Only Around Navigation Invokers ✅

 

목적:
동적으로 내비게이션 메쉬(NavMesh)를 생성하기 위한 시스템입니다.

 

기본 배경:
언리얼 엔진에서 AI가 이동하려면 NavMesh가 필요합니다. 하지만 월드 전체에 NavMesh를 미리 생성해 놓으면 퍼포먼스에 큰 영향을 미치고, 메모리도 많이 사용됩니다. 이를 해결하기 위해 필요한 위치에서만 NavMesh를 실시간으로 생성해주는 게 Navigation Invoker입니다.

 

작동 방식:

  • Actor에 Navigation Invoker 컴포넌트를 추가하면, 해당 Actor 주변의 일정 범위 내에서만 NavMesh가 동적으로 생성됩니다.
  • 이 방식은 오픈 월드, 랜덤 생성 맵, 크고 복잡한 맵에서 특히 유용합니다.

사용법:

  1. Actor에 NavigationInvokerComponent 추가.
  2. Project Settings > Navigation System에서 Generate Navigation Only Around Invokers 옵션 활성화.
  3. 필요 시 생성 반경 조정 가능.

장점:

  • 큰 맵에서도 퍼포먼스 최적화.
  • 필요한 곳에서만 NavMesh 생성 가능.
  • 동적 맵 생성에 적합.

RVO (Reciprocal Velocity Obstacles)

AI가 지나가는 경로를 좁게 만들어 RVO를 테스트 했습니다. RVO가 없다면 중간 지점에서 서로를 막아서 움직이지 않습니다.

목적:
AI 간 충돌 회피(Avoidance)를 위한 알고리즘입니다.

 

기본 배경:
AI 유닛들이 동시에 움직일 때, 서로 충돌하지 않도록 부드럽게 피해서 움직이게 하기 위한 기능입니다.

 

작동 방식:

  • 각 AI는 자신의 속도와 방향, 주변 유닛들의 상태를 고려해 충돌 가능성을 예측하고 회피 방향을 계산합니다.
  • "Reciprocal" 이라는 말은 서로가 동시에 회피를 시도해 부드러운 움직임을 만든다는 뜻입니다.

사용 조건:

  • AI 캐릭터에 CharacterMovementComponent가 있어야 하며, Use RVO Avoidance 옵션을 활성화해야 합니다.
  • Avoidance Group, Groups to Avoid, Groups to Ignore 등을 통해 그룹 간 회피 설정 가능.

장점:

  • 부드럽고 현실감 있는 AI 군중 행동.
  • RTS나 대규모 AI 이동에서 자연스러운 회피 가능.

'게임 개발 공부 > Unreal Engine' 카테고리의 다른 글

UObject 클래스  (0) 2025.03.24
Blueprint Function Library  (0) 2025.03.14
AI Perception 사용 시 같은 AI 공격 문제 해결 확실한 방법  (0) 2025.03.10
GameInstance  (0) 2025.03.05
메타사운드  (0) 2025.03.04