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



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

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

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

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

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

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

И удаляем их.

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

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

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

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

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



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

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

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

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

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

В чем именно здесь проблема навигации. Проблема в том, что если бот подойдет со стороны лестницы, то за ограждением он будет видеть площадку на которую можно спрыгнуть, перила, на которые можно залезть и будет уверен, что здесь можно пройти. В результате, мы получаем ловушку. Боты будут здесь скакать пока не начнут получать повреждений от атаки.
Начнем исправлять эти ошибки. Для этого, нам понадобятся следующие консольные команды:
- 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" - выбранные плитки свяжутся между собой. Выделяем ненужные нам плитки.

И удаляем их.

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

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

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

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

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