FadedProto:Navmesh

From Bakery GPU Lightmapper: Wiki
Jump to navigation Jump to search

Навмеш даёт информацию для поиска пути персонажам, а также позволяет пометить разные зоны мира разными флажками по смыслу. Используется особый допиленный плагин для навмеша, не встроенный. При любом изменении статичной части сцены, стоит его пересчитывать.

Как сгенерировать

Визуализация корректного навмеша
  • Пометить объекты, по которым можно ходить как static.
  • (только в первый раз) CritterAI->Create Nav Asset->Baked Navmesh
  • (только в первый раз) Созданный файл положить в папку Resources и назвать имяcценыCAIBakedNavmesh
  • Найти и выделить ассет NavmeshBuild
  • Сунуть в Bake Target ему новый созданный ассет
  • Нажать Build & Bake
  • Убедиться, что он выглядит как надо, нажав Show Mesh и оценив.

Типы зон

Визуализация зон разным цветом

Разным частям навмеша можно назначать разные логические пометки. Если в Navmesh Build включить Show Mesh и Color by area, то разные типы зон будут визуализированы разными цветами. Зоны можно задавать двумя способами:

  • С помощью тэгов на статических объектах (навмеш на этом объекте будет целиком указанной зоной).
  • С помощью Box Area Marker. Маркеры в виде невидимых боксов можно создать через CritterAI -> Create NMGen -> Area Marker: Box. Маркеру можно задать тип зоны. Боксы вырезают прямоугольные куски в навмеше. Маркеры должны быть помечены как Static.

Доступные тэги/типы зон:

  • Нет тэга/Default: свободная для всех территория.
  • sectorRestricted/Restricted: места, где могут находиться только персонажи с Behaviour=staff или guard. Остальные считаются нарушителями. NPC с Behaviour=civil будут избегать поиска пути через такие места. Пример: подсобные помещения заведений.
  • sectorPass/Guarded: помечает территорию как guarded. Если NPC имеет Behaviour=guard и галочку Notice Guarded Tresspassers, то любой увиденный им, кто на их глазах проник на эту территорию (не был там изначально и не пришёл незаметно), считается нарушителем. NPC с Behaviour=civil будут избегать поиска пути через такие места. Пример: место, куда надо получить пропуск.
  • navPrivate/Private: чья-то приватная территория. На практике используется только при поиске потерянного нарушителя - сначала охранник будет искать вокруг таких мест, а потом уже в них самих. Пример: квартира.
  • navDoor/Door: проём открывающейся двери.
  • notNav/Not Walkable: игнорировать этот объект при построении навмеша.