네비메쉬


네비게이션은 고도엔진에서 캐릭터를 목적지 좌표로 이동 시킬 때 사용하는 이동 방식입니다
네비게이션 관련한 노드는 아래와 같이 구성되어 있습니다
| 노드 이름 | 사용 용도 |
| navigation agent | 노드 이동 |
| navigation link | 메쉬 이동 경로 이어주기 |
| navigation obstacle | 장애물 |
| navigation region | 네비메쉬 만들기 |
유니티 네비메쉬와의 차이점

유니티에서 SetDesitionation(vecter3 targetposition)을 사용하면
해당 목적지로 이동하게 되는데
고도엔진에서 이동을 하려면 navigation agent노드의
tartgetposition()을 사용하여 목적지를 설정하고
GetNextPathPosition();으로 계산된 백터 경로를 받아
그곳으로 이동하는 방법을 개발자가 구현해야 합니다
NavigationRegion 노드


네비리전 노드는 캐릭터가 이동하는 땅인 네비 메쉬를 만드는 노드입니다
네비리전 노드를 클릭하여 왼쪽 상단에 있는
굽기와 비우기를 사용하면 네비 메쉬를 생성 혹은 제거를 할 수 있는데
인스펙터에 있는 geometry 속성 설정으로
그 메쉬가 되는 대상을 설정할 수 있습니다
Navigation Region 인스펙터

인스펙터에는 여러 속성들을 가지고 있으며
리소스를 제외한 것들을 설명합니다
sampling

sampling의 파티션 타입은 메쉬 베이킹의 정밀도를 설정합니다
watershed가 기본적으로 설정되어있고, 주로 그것을 사용합니다
| 속성 이름 | 메쉬 생성의 정확도, 품질 | 메쉬 생성 속도 |
| watershed | 높음 | 느림 |
| monotone | 보통 | 중간 |
| layers | 낮음 | 빠름 |
Geometry

지오메트리의 소스 지오메트리 모드는
어떤 노드의 메쉬를 참고해서
네비 메쉬를 만들지 설정하는 속성입니다
| 속성 이름 | 기능 설명 |
| Root node children | 선택 네비리전의 자식 메쉬를 사용하여 네비메쉬 생성 |
| group with children | 특정 그룹 노드와 그 노드의 자식을 사용하여 메쉬 생성 |
| group Explicte | 특정 그룹노드만 사용하여 메쉬 생성 (자식x) |



기본적으로 root node children으로 설정되어 있고
네비 리전의 모든 자식 메쉬를 참고하여 네비 메쉬를 생성합니다
외의 2개는 그룹에 속해있는 노드를 참고하게 되는데
사용하고 싶은 노드를 그룹에 속하게 만든 후
그 그룹 이름을 넣고 베이킹하게 되면
그룹에 속해있는 노드를 통해 네비메쉬를 만들게 됩니다
cells


네비 메쉬를 만드는데 n 간격의 복셀화를 시켜 스캔을 한 후
메쉬를 만들고 그걸 합쳐 폴리곤으로 만듭니다
cell size는 그 복셀 크기 간격을 설정합니다
0.25가 기본이며 가장 낮고 정확합니다

cell height는 지오메트리 메쉬와 네비메쉬의 간격을 의미합니다
캐릭터가 네비 메쉬를 사용하여 이동할 때 지오메트리 메쉬의 콜리전에 닫게 되면
어떤 결과가 나올지 모르기 때문에 바닥과 약간의 차를 둬 오류를 예방하게됩니다
Agents

agents는 네비 메쉬를 이용하는 에이전트의 크기와 올라갈 수 있는 높이를 정합니다
| height | 키 높이 입니다. 캐릭터의 크기에 맞춰 설정합니다 |
| radius | 반경입니다. 캐릭터의 반경에 맞춰 설정합니다 |
| max climb | 오를 수 있는 높이입니다. |
| max slope | 오를 수 있는 경사입니다 |

height와 radius를 캐릭터의 크기에 맞춰 생성하여
벽에 너무 붙던가 천장이 낮은 곳인데
뚫고 지나가는 경우를 사전에 막습니다
regions


min size는 생성될 때 설정한 사이즈 이하의 메쉬는 제거합니다

merge size는 메쉬의 선들이 설정한 값 이하로 가까히 붙어 있으면 선을 병합 시켜 하나의 메쉬로 만든다는데
수치를 바꿔봐도 살짝 살짝 몇 개 병합 하는 것 말고는 규칙을 잘 모르겠다
Edges

max length는 선을 줄여 단순화를 시켜줍니다
기존 설정인 0으로 해놓으면 최대로 줄여주고
그 이상이라면 수치에 해당하는 선이 생겨 정밀도는 높혀주지만
성능 문제가 발생할 수 있습니다
polygones
vertices per polygon은 폴리곤으로 만들어질 때 버텍스 수를 제한합니다
filters

baking aabb를 설정하여 일부 지역에서만 네비 메쉬를 생성 하게 합니다
xyz는 기준 좌표이며
whd는 그 영역의 폭입니다