비플래너 표면에서 경로 찾기를 사용하는 방법에 대한 튜토리얼

일부 게임에서는 행성이나 고리와 같이 항상 '위' 방향이 일정하지 않은 표면에서 경로 찾기 및 로컬 회피를 사용해야 할 수 있습니다. 아래 이미지에서 몇 가지 세계 형태의 예를 볼 수 있습니다. 하지만 원하는 만큼 복잡하게 만들 수 있습니다(아래의 몇 가지 팁을 참조하세요).

참고
패키지에는 구형 세계에 대해 경로 찾기 및 로컬 회피를 구성하는 방법을 보여주는 "Spherical"이라는 예제 장면이 포함되어 있습니다.

 

Configuring a graph


네비메시 그래프와 포인트 그래프 모두 사용할 수 있습니다. 그러나 대부분의 경우 네비메시 그래프를 권장합니다. 설정 방법은 네비메시 튜토리얼(예:  Creating a navmesh manually )을 따르며, 평면 대신 구와 같은 모양을 만든다는 점만 다릅니다.
네비메시 그래프 설정에서 'Recalculate Normals'를 비활성화해야 합니다. 이를 활성화한 상태에서는 Y+ 축을 기준으로 노멀을 재계산하기 때문에, 구형 세계에서는 올바르지 않게 됩니다.



Movement scripts

곡면을 따라 캐릭터를 이동시키려면 사용자 정의 이동 스크립트를 사용하거나 포함된 AIPathAlignedToSurface 컴포넌트를 사용할 수 있습니다. AIPathAlignedToSurface 스크립트는 AIPath에서 상속받아 곡면에 더 적합하도록 몇 가지를 변경합니다. 첫째, 바닥 아래의 노멀을 사용하여 표면에 맞게 정렬합니다. 둘째, 중력을 세계의 위 방향이 아닌 캐릭터의 위 방향에 상대적으로 만듭니다. 예를 들어 중력을 (0, -10, 0)으로 설정하면 캐릭터가 구의 아래쪽에 있어도 표면 쪽으로 끌립니다.

네비메시 그래프에서 높은 경로 품질을 위해  funnel modifier 를 사용하는 것이 좋습니다. 그러나 곡면에서 올바르게 작동하려면 splitAtEveryPortal 이 활성화되어 있어야 합니다.

메시 콜라이더를 지면으로 사용하는 경우, AIPathAlignedToSurface 스크립트는 표면 노멀을 보간하여 이동을 더 부드럽게 만듭니다. 그러나 이는 콜라이더에 사용된 메시가 읽기 가능한 경우에만 작동합니다. 메시 자산 가져오기에서 'Read/Write Enabled' 체크박스를 확인하세요.

Local avoidance

로컬 회피는 기본적으로 곡면에서 지원됩니다. 장면에 RVOSimulator를 추가하고 에이전트에 RVOController를 추가한 다음(자세한 내용은  Local Avoidance 참조) RVOSimulator의  movement plane option을 'Arbitrary'로 설정하면 됩니다. AIPathAlignedToSurface 스크립트는 RVOController에 표면의 방향을 알려주는 작업을 처리합니다. 사용자 정의 이동 스크립트를 작성하는 경우  RVOController.movementPlane 속성을 설정하여 방향을 업데이트해야 합니다.

Tips for good non-planar navmeshes

좋은 네비메시는 대략적으로 동일한 크기의 삼각형으로 구성되어야 하며, 삼각형이 너무 작으면 경로 찾기가 불필요하게 느려지고, 너무 크면 정밀도가 너무 낮아집니다. 내장된 이동 스크립트를 사용하는 경우 매우 급격한 표면 변화를 피해야 합니다. 예를 들어, 일반 큐브 대신 둥근 큐브를 사용하십시오.

아래에는 좋은 네비메시와 나쁜 네비메시의 예가 있습니다. 이들은 매우 간단한 예제 네비메시이지만, 피해야 할 일반적인 아이디어를 전달하기를 바랍니다.

추천하지 않음.
이 네비메시는 날카로운 모서리(이동하기 어려움)와 매우 큰 삼각형(좋은 경로를 찾기에는 너무 큼)이 포함되어 있습니다. 경로는 노드별로 검색됩니다.
추천하지 않음.
이 네비메시는 노드 크기가 더 적절하게 세분화되었지만 여전히 매우 날카로운 모서리가 있습니다.
추천하지 않음.
이 네비메시는 날카로운 모서리가 없지만 삼각형 크기가 매우 달라서 일반적으로 경로 품질에 좋지 않습니다.
추천.
이 네비메시는 좋습니다.
추천.
이 네비메시는 좋습니다.
추천하지 않음.
이 네비메시는 삼각형 크기가 매우 다릅니다(특히 극지방 근처). 일반적으로 경로 품질에 좋지 않습니다.
추천.
이 네비메시는 좋습니다.

'유니티 에셋 > A* Pathfinding project pro' 카테고리의 다른 글

Optimization  (0) 2024.05.28
Deploying  (0) 2024.05.28
Editing graph connections manually  (0) 2024.05.28
Extending The System > Writing Modifiers  (0) 2024.05.28
Extending The System > Writing Graph Generators  (0) 2024.05.28

+ Recent posts