샘플용 초기 프로젝트 생성
언리얼 엔진 공식문서 - 네비게이션 메시 수정 준비 가이드
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 위에서 수정이 필요하면 새로 계산하게 됨

참고 홈페이지
- 언리얼 엔진 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
- https://dong-grae.tistory.com/211
- 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