언리얼 엔진의 내비게이션 링크
내비게이션 링크(Navigation Links) 는 직접 연결되어 있지 않은 레벨 내 두 개의 탐색 가능 영역을 연결하는 방법입니다. 예시로는 높은 발판과 지면, 직접 연결되어 있지 않은 두 개의 발판 등이 있습니다.
개발자는 레벨에 내비 링크 프록시(NavLink Proxy) 액터 를 배치하고 탐색 가능 영역 간의 연결 포인트를 정의하여 수동으로 내비게이션 링크를 추가할 수 있습니다.
내비 링크 프록시 액터 에 대해 자세히 알아보려면 내비게이션 메시 수정 하우투 문서를 참조하세요.
자동 내비게이션 링크 생성
언리얼 엔진 5.5에서는 내비게이션 메시(Navigation Mesh) 세팅 내에 내비게이션 링크 자동 생성 기능이 도입되었습니다.
자동 생성을 활성화하는 단계는 다음과 같습니다.
-
내비게이션 메시 바운드 볼륨(Navigation Mesh Bounds Volume) 액터를 레벨에 배치하고 필요에 따라 스케일 조절합니다.
- 아웃라이너(Outliner) 에서 RecastNavMesh-Default 액터를 선택합니다.
- 디테일(Details) 패널로 이동하고 생성(Generation) 섹션까지 스크롤하여 내려가 내비 링크 생성(Generate Nav Links) 체크박스를 활성화 합니다.

-
언리얼 엔진에서 내비게이션 링크가 자동으로 생성됩니다.
내비게이션 링크 생성 환경설정하기
언리얼 엔진에서는 내비 링크 점프 다운 환경설정(Nav Link Jump Down Config) 세팅을 기반으로 내비게이션 링크를 생성합니다. 이러한 링크는 주로 AI 에이전트(NPC)의 점프 또는 낙하를 활성화하는 데 사용됩니다.
세팅은 다음과 같습니다.
| 세팅 | 설명 |
|---|---|
| 점프 길이(Jump Length) | 점프의 수평 길이입니다. |
| 에지에서의 점프 거리(Jump Distance from Edge) | 내비메시 에지와 점프가 시작되는 위치 사이의 거리입니다. |
| 최대 점프 깊이(Jump Max Depth) | 시작 높이로부터 착지 지면을 찾을 깊이입니다. |
| 점프 높이(Jump Height) | 시작 지점 높이를 기준으로 한 최대 높이입니다. |
| 점프 끝 높이 허용치(Jump Ends Height Tolerance) | 점프의 양 끝에서 지면을 찾기 위한 허용치입니다. |
| 샘플링 분리 인수(Sampling Separation Factor) | 이 값과 셀 크기를 곱해 샘플링 궤적 간 거리를 찾습니다. 디폴트 값은 1입니다. 값이 크면 생성 속도가 빨라지지만 샘플링 오류가 발생할 수 있습니다. |
| 필터 거리 한계치(Filter Distance Threshold) | 비슷한 링크를 필터링할 때 비슷한 링크를 매칭하기 위해 세그먼트 끝점들을 비교하는 데 사용되는 거리입니다. |
| 영역 클래스(Area Class) | 이 환경설정에 의해 생성된 링크의 영역 클래스입니다. |
| 링크 프록시 클래스(Link Proxy Class) | 이 환경설정에 의해 생성된 링크를 처리하는 데 사용되는 클래스입니다. 이 클래스를 사용해 개발자가 내비게이션 링크를 사용할 때 커스텀 비헤이비어를 구현할 수 있습니다. |
여기서 세팅의 예시를 볼 수 있습니다.
퍼포먼스 고려사항
타일 생성 도중 내비게이션 링크를 생성하고 유효성을 검사하는 프로세스에는 추가 CPU 사이클이 소모되며, 이는 타일 생성 시간에 영향을 미칠 수 있습니다. 아래 권장 사항을 따르면 이 비용을 최소화할 수 있습니다.
점프 길이(Jump Length)
이 값은 생성 비용에 가장 큰 영향을 미칩니다. 길이 값이 충분히 크면 내비게이션 메시 타일의 래스터화 크기가 증가할 수 있습니다. 퍼포먼스를 높이려면 점프 길이를 적당한 값으로 유지하세요.
샘플링 분리 인수(Sampling Separation Factor)
디폴트 값은 1(영향 없음)이지만, 이 값을 높여서 수직 궤적 샘플링 간의 거리를 늘릴 수 있습니다. 이렇게 하면 쉽게 최적화할 수 있지만 샘플링 정확도가 낮아지기 때문에 일부 내비게이션 링크에서 콜리전이 발생할 수 있습니다.
내비메시 에지 수(Number of NavMesh Edges)
내비게이션 링크 생성 및 유효성 검사 프로세스는 내비게이션 메시 경계 에지마다 실행됩니다. 즉, 보다 복잡한 내비게이션 메시 타일에서 내비게이션 링크를 생성할 경우 더 큰 비용이 발생합니다.
내비게이션 링크 생성 시간(Navigation Link generation time)
다음 단계에 따라 조정한 사항이 내비게이션 링크 생성 시간에 미치는 영향을 볼 수 있습니다.
-
아웃라이너(Outliner) 에서 RecastNavMesh-Default 액터를 선택하고 디테일(Details) 패널로 이동합니다.
-
디스플레이(Display) 섹션까지 아래로 스크롤하여 타일 빌드 시간 그리기(Draw Tile Build Times) 체크박스를 활성화 합니다.
-
이제 평균 링크 빌드 시간(average link build time) 이 화면에 표시됩니다.
내비게이션 링크에 커스텀 비헤이비어 추가하기
생성된 내비게이션 링크는 레벨에 수동으로 추가할 수 있는 내비게이션 링크 프록시(Navigation Link Proxy) 액터와 같습니다. 즉, 링크에 링크 프록시 클래스(Link Proxy Class) 를 할당하여 커스텀 비헤이비어를 추가할 수 있습니다.
다음 단계에 따라 내비게이션 링크에 점프 능력 을 추가합니다.
- 콘텐츠 브라우저(Content Browser) 에서 우클릭하고 블루프린트 클래스(Blueprint Class) 를 선택하여 부모 클래스 선택(Pick Parent Class) 창을 엽니다.
- 모든 클래스(All Classes) 카테고리를 펼친 다음 GeneratedNavLinksProxy 를 검색하여 선택합니다.
- 선택(Select) 을 클릭하고 에셋의 이름을 지정합니다.

- 콘텐츠 브라우저 에서 에셋을 더블클릭하여 엽니다.
- 아래에 나온 블루프린트 코드를 추가합니다.
- 컴파일(Compile) 및 저장(Save) 합니다.

- 아웃라이너(Outliner) 에서 RecastNavMesh-Default 액터를 선택합니다.
- 디테일(Details) 패널로 이동하여 내비 링크 점프 다운 환경설정(Nav Link Jump Down Config) 섹션까지 아래로 스크롤한 다음 드롭다운에서 생성한 링크 프록시 클래스(Link Proxy Class) 를 추가합니다.

내비게이션 링크 비헤이비어 테스트하기
커스텀 비헤이비어를 테스트하려면 내비게이션 링크를 사용하여 랜덤 목적지로 이동하는 AI 에이전트를 생성합니다.
이 가이드에서는 구성을 보여주지만 단계별로 설명하지는 않습니다. AI 에이전트 생성에 대해 자세히 알아보려면 인공 지능 문서를 참조하세요.
AI 에이전트를 생성하는 단계는 다음과 같습니다.
-
AI 에이전트의 목적지가 될 액터(Actor) 타입의 새 블루프린트를 생성하고 BP_Target 으로 명명합니다. 아래 예시에서는 스피어 메시(Sphere mesh) 가 있는 스태틱 메시 컴포넌트(Static Mesh component) 가 시각적 표현으로 추가되었습니다.
-
언리얼 엔진 삼인칭 템플릿에 포함된 BP_ThirdPersonCharacter 블루프린트를 복제하고 BP_NPC 로 명명합니다.
아니면 추가(Add)+ > 피처 또는 콘텐츠 팩 추가(Add Feature or Content Pack) 를 클릭하고 삼인칭(Third Person) 템플릿을 선택하여 프로젝트에 추가할 수 있습니다.
- 이벤트 그래프(Event Graph) 에서 기존 코드를 모두 제거하고 아래 이미지의 코드를 추가합니다.
- 컴파일(Compile) 및 저장(Save) 합니다.

-
AI 에이전트(AI Agent) 및 BP_Target 액터 몇 개를 레벨에 배치합니다.
- 시뮬레이션(Simulate) 을 눌러 AI 에이전트가 목적지 사이를 이동하는 것을 봅니다.
- 아래 예시는 다수의 AI 에이전트가 랜덤 목적지로 이동하는 것을 보여줍니다.