Навигация в CS:GO

Наболевший для многих вопрос, как построить карту навигации в CS:GO. Все дело в том, что в отличие от LEFT4DEAD, игра строит эту карту самостоятельно и не всегда корректно. И зачастую толпа ботов, вместо того, что бы сломя голову ринуться в атаку, беспомощно крутятся на месте или пытаются запрыгнуть на стенку.
Львиная доля справочных материалов по файлам навигации в интернете, так же относится к LEFT4DEAD, а оставшиеся материалы, как правило, крайне скудны и неполны. Мы попытаемся исправить эту ситуацию в данном уроке.

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

Карта-тест


Карта-тест - 2


Карта-тест - 3


Скомпилируйте файл проекта карты-теста. Игра автоматически построит файл навигации и перезапустит карту. Откройте консоль и наберите следующие команды:

  • sv_cheats 1
  • noclip
  • nav_edit 1
  • bot_kick

Данный набор команд позволит вам "летать" по карте, включит режим отображения навигационной сети в виде полупрозрачных плиток покрывающих все доступные поверхности и отключит ботов, чтобы не путались под ногами.
Если вы все сделали правильно, то должны увидеть что-то вроде этого:

Сеть навигации


Подойдем к лестнице. Тут первая из классических проблем ошибки автоматической генерации навигационной сетки. Крест на панели, обозначает, что путь возможен и вверх, на перила и вниз. Однако высота перил не позволит ботам запрыгнуть на них и если бот подойдет с этой стороны, то он может стать легкой жертвой, так как прочно застрянет здесь пытаясь запрыгнуть на перила.

Сеть навигации - 2


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

Сеть навигации - 3


Теперь перемещаемся с к зоне спауна террористов на лестничную площадку. Здесь мы специально создали ограждение вокруг которого автоматическая генерация навигации создала настоящую "ловушку для ботов". На самой площадке были сгенерированы зоны навигации на которые можно спрыгнуть, они маркированы вертикальными пурпурными маркерами.

Сеть навигации - 4


С обратной стороны, с лестницы уже знакомая проблема.

Сеть навигации - 5


В чем именно здесь проблема навигации. Проблема в том, что если бот подойдет со стороны лестницы, то за ограждением он будет видеть площадку на которую можно спрыгнуть, перила, на которые можно залезть и будет уверен, что здесь можно пройти. В результате, мы получаем ловушку. Боты будут здесь скакать пока не начнут получать повреждений от атаки.

Начнем исправлять эти ошибки. Для этого, нам понадобятся следующие консольные команды:

  • nav_toggle_in_selected_set
  • nav_delete
  • nav_connect

Первая команда, позволяет выделить ту плитку навигационной сети, что находится под курсором, можно выделять несколько плиток одновременно. Вторая - удаляет активные (выделенные) плитки. Третья - связывает две выделенные плитки между собой. Рекомендуется привязать эти команды к определенным клавишам для ускорения работы. На пример так:

  • bind "p" nav_toggle_in_selected_set
  • bind "o" nav_delete
  • bind "i" nav_connect

Теперь при нажатии на клавишу "Р" - будет выделяться плитка под курсором. При нажатии на "О" - активные плитки будут удалены. При нажатии на "I" - выбранные плитки свяжутся между собой. Выделяем ненужные нам плитки.

Редактирование сети навигации


И удаляем их.

Редактирование сети навигации - 2


Пройдите по всей карте и проверьте, все ли проблемные зоны вами удалены. Если на данном этапе подключить к игре ботов, то вы увидите, что они перестали застревать в проблемный местах, но и не спрыгивают с ограждения, так как мы разорвали связь навигационных плиток по ограждению и по поверхности земли и боты вынуждены оббегать эту зону вокруг. Исправим это, дадим ботам возможность спрыгивать. Для начала, создадим плитку навигации на поверхности ограждения.

Редактирование сети навигации - 3


Для этого, нам понадобятся еще две консольные команды

  • nav_begin_area
  • nav_end_area

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

Редактирование сети навигации - 4


Выделяем попарно свежесозданную плитку навигации на ограждении с плитками на поверхности земли и жмем "I", это создаст связь между навигационными плитками.

Редактирование сети навигации - 5


Теперь необходимо проверить навигационный поток на нашей тест-карте, все ли мы сделали правильно. Делается это выполнением команды nav_analyze. Введите ее в консоли и дождитесь завершения работы анализатора. По окончании анализа, исправленная карта навигации будет автоматически сохранена и пройдет перезапуск карты. Проверяем, как перемещаются боты.

Редактирование сети навигации - 6


Как видим, проблем с перемещением боты не испытывают, значит карта навигации корректна.


Внимание! У Вас нет прав для просмотра скрытого текста.

Похожие новости

Комментариев 0

Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.