Эта статья относится к игре "Dota 2". Нажмите для получения дополнительной информации.
Эта статья относится к среде разработки/инструментарию для "Инструментарий Dota 2". Нажмите для получения дополнительной информации.
This article's documentation is for Source 2. Click here for more information.

Навигационный граф

From Valve Developer Community
Jump to navigation Jump to search

English (en)Русский (ru)中文 (zh)Translate (Translate)

Навигационный граф необходим для того, чтобы позволить игровым персонажам(юнитам) перемещаться на новой карте. Он должен создаваться каждый раз, когда в карту вносятся изменения, которые повлияют на перемещение персонажей по рельефу на карте. Навигационный граф определяет возможность перемещения в Dota 2, то есть указывает куда юнитам можно или нельзя перемещаться.

Навигационный граф в Dota 2 представляет собой поклеточную проекцию общей плоскости, накладываемую на рельеф карты сверху вниз. Это подразумевает определенные ограничения, такие как выступы и мосты, под которыми нельзя пройти снизу. Граф состоит из ячеек размером 64х64, которые покрывают всю карту. Чтобы были созданы ячейки-клетки навигационного графа, поверхности карты по которым можно перемещаться, должны быть покрыты материалом. Все "blend" материалы имеют этот атрибут. У самодельных материалов необходимо указывать значение "dota.nav.walkable 1" для атрибута "User Material Attribute", чтобы поверх него создавались ячейки-клетки навигационного графа.

Note.pngПримечание:В Dota у таких объектов реквизита как камни и знаки нет габаритов столкновений. В большинстве случаев это предпочтительный вариант, однако для камней значительного размера, желательно ограничить пространство, для предотвращения перемещения персонажей сквозь него.

Просмотр навигационного графа в Hammer

Navmesh button preview.png
Просмотр навигационного графа в редакторе Hammer.

Сетка областей позволяет просматривать статусы областей. Чтобы её открыть, нажмите на кнопку navigation preview, которая находится на верхней панели инструментов. В игре сетку областей можно отобразить, если ввести "dota_gridnav_show 1" в консоль.

Значение цветовой визуализации

  • Зеленый: Открытая область - Любой юнит может передвигаться по этой области.
  • Красный: Закрытая область- Наземные юниты не могут передвигаться в этой зоне. Кроме летающих юнитов (Пример: Winter Wiwern под 1 скилом "Arctic burn" может пройти в этой зоне).
  • Фиолетовый (непосредственно в редакторе Hammer): Пока не сломают деревья в самой игре пройти тут нельзя.
  • Синий: Hero Clip - Персонажи игрока не могут войти в эту область.
  • Желтый: Creature Clip - Персонажи существ контролируемых ИИ не могут войти в эту область. Это не относится к персонажам игрока, которых контролирует ИИ, они подчиняются тем же правилам, что и персонажи управляемые игроками.

Создание навигационного графа

Навигационный граф создается автоматически при компиляции карты.

  • Нажмите кнопку Run Map в верхней панели инструментов или нажмите F9
  • Должно быть включено Build Physics (создать физические объекты)
  • Должно быть включено Build Grid Nav (создать навигационный граф)

Разбивка

Пример блокирования области для персонажей.

В отличие от других игр Source, где служебные текстуры используются для указания габаритов столкновений с поверхностью, в Dota 2 служебные текстуры имеют влияние исключительно на клетки-ячейки навигационного графа. Наложение одной из служебных текстур разбивки на элемент/объект карты повлияет только на ячейки-клетки графа, которые касаются объёма этого элемента/объекта карты. Сеточные объекты или элементы карты покрытые служебными текстурами разбивки будут невидимы в игре, а сами текстуры не отображаются.

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

Типы материалов разбивки

Материалы могут быть применены для создания навигационного графа, чтобы при компиляции карты движок мог создать навигацию по миру. Чтобы узнать о создании сеточных объектов и какой материал нужно наносить на сетку, посмотрите руководства основы создания карт(en) .

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

Skip
Блокирует зону для передвижения наземных юнитов. Для летающих юнитов данное пространство остается доступным для передвижения.
Clip
Этот материал позволяет пройти персонажу допустим через канаву или ров в игре. (Если загрузить модель моста в редактор, то в игре персонаж не может по нему пройти. Тогда чуть ниже модели размещаете данный Clip и все).
Hero Clip
Персонаж игрока не может пройти в эту зону. Этот параметр влияет как на наземных юнитов, так и летающих (Примечание: в данную зону нельзя телепортироваться ни способностями героев, ни артефактами Blink dagger, force staff).
Creature Clip
Подобно Hero Clip, но блокирует юнитов существ под контролем ИИ.


Tip.pngСовет:В качестве тестирования на различных местах рельефа используйте малые размеры ячеек графа, для точной компиляции в редакторе желательно 32х32.

Консольные команды

dota_gridnav_show
  • "0" - Не показывать
  • "1" - Basic Clip (Все ячейки-клетки)
  • "2" - Hero Clip (Только клетки игрока)
  • "3" - Creature Clip (Только клетки существ)