Пути для ИИ-солдат на ваших локациях

Продолжаем работу над совершенствованием редактора модов Enlisted. В недавнем обновлении мы выпустили большой список исправлений и улучшений редактора, об одном из которых расскажем отдельно.

NavMesh

Это навигационная сетка на локации, благодаря которой ИИ-солдаты могут ориентироваться на местности и находить оптимальные маршруты. Без NavMesh поведение управляемых компьютером юнитов будет довольно прямолинейным, или они вовсе могут застревать.

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

Генерация патча NavMesh

Мы рассмотрим пример, когда вы изменяете существующую локацию и вам нужно актуализировать навигационную сетку.

  1. Убедитесь, что NavMesh на карте уже существует. Включите в Toolbox кнопку NavMesh. Если его нет, то следует задать battle area — зону, в которой проходит миссия, — поскольку NavMesh загружается и генерируется только для мест внутри battle area.
  2. В Toolbox откройте вкладку Build commands и нажмите Rebuild NavMesh, после чего дождитесь завершения операции до 100%.
  3. Сгенерированный патч NavMesh сразу доступен в игре, однако необходимо сохранить сцену (Save), чтобы сохранилась запись в энтити level о подключении патча NavMesh. Рекомендуем также сделать Restart, чтобы убедиться, что патч корректно применяется на загрузке сцены.
  4. Убедившись, что NavMesh скорректирован созданным вами патчем (через включение Toolbox/NavMesh), а ИИ-солдаты теперь передвигаются правильно, можно собрать пакетный файл (vromfs.bin), который будет включать в себя не только сцену (scene.blk), но и патч навигационной сетки (patchnavmesh.bin).
  5. Для этого в Toolbox/Build commands нужно нажать вторую кнопку Build Mod VROM, которая запустит внешнюю программу-упаковщик мода (modsPacker.bat) в отдельном окне, результат (status) по завершении должен быть 0 (штатно без ошибок).
    Также этот упаковщик можно запускать вручную через командную строку, указав при запуске: modsPacker.bat modname (здесь modname — это название папки с модом в userGameMods/).

В результате упаковки в userGameMods/ будет создан пакетный файл modname.vromfs.bin с именем мода modname и расширением vromfs.bin, который можно загружать на портал модов (sandbox.enlisted.net) так же, как и scene.blk.

В текущей реализации для сгенерированных квадрантов NavMesh пока не генерируется информация об укрытиях (covers) и местах, где можно залезть или спрыгнуть (jump links), имейте это ввиду, создавая свою миссию.

8 лайков

Спасибо! Очень ощутима разница без него и с ним на картах с большим кол-во новых объектов.

А новые Vromfs работают только в рамках сервера?
То есть… Некоторые данные (изображения или профиль отрядов для игроков) не передаются клиентам?
Заметил, что если поставить свой профиль отрядов ботам - у них все будет.
Если поставить игрокам, то будет печатать ошибки.
А так же то, что изображения не работают.
Однако в локальной сети профили и изображения работают.

Что по поводу patchNavMesh.bin
Как по мне он должен быть без заглавных букв (то есть patchnavmesh.bin).
Из-за этого он cейчас НЕ Работает в мультиплеере/локальной игре.
Если вручную убрать заглавные буквы, то будет работать.

3 лайка

А это уже интересно.

Судя как все работает… Похоже, что данные не передаются игрокам.
Данные про изображения и про изменённые отряды для игроков.
Однако в локальной сети все нормально.

Ну это вполне логично. Но если с ботами работает - уже хорошо.

В той же теме, где пинговал Хелпер, после нашли проблему с поиском путей и решили её.

И так как %ugm, оказывается, работает…
То я решил закинуть профиль ботам, не трогая профиль игрока.
После этого глянуть на результат (предпоследний пост с скришотом).
Ugm directory cannot be applied to custom_botprofile - English speaking section

В общем… Да. Ботам можно дать профили.
В локальной сети можно ботам и игрокам.
Теперь можно делать нормальные пве миссии в духе первых COD или RTCW.
(берешь невидимую точку - открывается новый сектор с спавном для другой команды и т.п.).
Жаль, что боты водить не умеют.
И стрелять из техники.

Огромное спасибо! Поправил в гайде.

3 лайка

Выпустим фикс, который будет называть файл иначе. И решим проблему “&”

1 лайк