AI_NavMesh

김혁·2025년 9월 27일

기술연구

목록 보기
3/10

샘플용 초기 프로젝트 생성

언리얼 엔진 공식문서 - 네비게이션 메시 수정 준비 가이드
https://dev.epicgames.com/documentation/ko-kr/unreal-engine/modifying-the-navigation-mesh-preparation-guide-in-unreal-engine?application_version=5.5

  • 위의 공식문서를 활용해서 초기 프로젝트를 생성했다.
  • 새로 알게 된 점
    • CollisionEnabled에서 Query가 추가되면, 내비게이션 메시 볼륨 데이터 생성에서 제거가 됨


내비게이션 모디파이어 볼륨

  • NavMesh 빌드 과정에서 해당 볼륨 안의 영역을 NavMesh에서 제외하거나 수정함
  • AI가 지나가지 못하게 막거나, 특정 영역의 비용을 올려서 우회하게 만들 수 있음
  • 문, 벽, 위험지대, 점프 금지 구역 등 상황에서 유용

Area Class

  • 내비게이션 메시에 가해지는 이펙트 결정
  • NavArea_Obstacle
    • 문서에서는 높은 내비게이션 비용을 할당한다고 되어있으나 실제로는 막혀있는 구역으로 취급
    • 비용 자체를 무한대에 가깝게 해서, 아예 탐색하지 않게 설정함
    • 실제로 비용이 높은 지역으로 처리하고 싶다면, UNavArea 파생 클래스를 만들어서 사용해야 함
    • NavArea_Obstacle로 설정된 지역으로 둘러쌓인 경우에는 최단 거리로 진행하게 됨
  • NavArea_LowHeight
    • NavMesh가 빌드될 때, 낮은 영역(천장이 낮아서 캐릭터가 못 지나가는 영역)을 필터링할 때 사용
    • 이 볼륨 내에 내비게이션 데이터를 생성하지 않게 됨
    • 이동 비용과는 관계 없고, NavMesh 생성 시점에서 "볼륨의 높이가 캐릭터 캡슐보다 낮으면 막힌 공간으로 간주한다"는 기준값임


내비게이션 링크 프록시

  • 내비게이션 경로가 직접적으로 이어지지 않은 두 내비게이션 메시 영역을 연결
  • 분리된 내비게이션 메시를 연결하는 다리를 생성하거나, 점프하거나 내려가야 하는 절벽 등을 만들 때 사용함

스마트 링크

  • 스마트 링크를 켜면 커스터마이징이 가능함
  • bSmartLinkIsRelevant = true 활성화
  • AI가 이 링크를 사용하려고 하면, ReceiveSmartLinkReached() 이벤트가 호출됨
    • 특정 애니메이션을 재생시키거나,
    • 캐릭터를 점프하게 만들 수도 있고,
    • 텔레포트 시킬 수도 있음


런타임 내비게이션 메시

  • 내비게이션 데이터 런타임 생성 옵션
  • 설정 방법 : 프로젝트 세팅 -> Navigation Mesh -> Runtime -> Runtime Generation

Dynamic Modifiers Only

  • Static과 Dynamic 옵션을 섞은 것
  • 새로운 내비게이션 메시를 생성하는 것이 아닌 기존 내비게이션 메시를 수정하는 것임
  • 붉게 출력되는 영역은 런타임에 계산되는 네비 메시 영역
  • 사용법 : 액터에 Nav Modifier Component를 추가

Dynamic

  • 런타임에서 내비게이션 메시가 사용하는 내비게이션 관련 데이터가 업데이트됨
  • 런타임에서 계속 계산을 해야 되기 때문에 비용이 상당히 많이 들게 됨
  • Dynamic Modifiers Only와 다르게, Nav Modifier 여부와 관계없이 Nav Mesh 위에서 수정이 필요하면 새로 계산하게 됨




참고 홈페이지

  1. 언리얼 엔진 5.5 공식 문서 : https://dev.epicgames.com/documentation/ko-kr/unreal-engine/overview-of-how-to-modify-the-navigation-mesh-in-unreal-engine?application_version=5.5
  2. https://dong-grae.tistory.com/211
  3. https://velog.io/@sotakqmf01/%EC%96%B8%EB%A6%AC%EC%96%BC-%EC%97%94%EC%A7%84-%EB%B3%B8%EC%BA%A0%ED%94%84-19%EC%A3%BC%EC%B0%A8-5-%EC%96%B8%EB%A6%AC%EC%96%BC-%EC%97%94%EC%A7%84-C-AIAdvanced-%EB%84%A4%EB%B9%84%EA%B2%8C%EC%9D%B4%EC%85%98-%EB%A9%94%EC%8B%9C-%EC%83%9D%EC%84%B1-%EB%B0%8F-%EA%B2%BD%EB%A1%9C-%ED%83%90
profile
게임 개발자를 향해..

0개의 댓글