Navigation Mesh альтернатива NodeGraph

Vit_ amin

Добрая душа
Сообщения
1,512
Реакции
673
Введение :
Всем привет сегодня я вам расскажу об Navigation Mesh.
Наверное у вас будет вопрос : Почему я указал в названии статьи NodeGraph
Ответ : NodeGraph система используется в HalfLife 2 и подобных играх. Для дополнения (игры CS : Source) разработанна система Navigation Mesh.
Система Navigation Mesh это навигационная сетка на .bsp карте. Navigation Mesh использует собственный файл по такому шаблону.
C-подобный:
<название карты>.nav
В Navigation Mesh файле используется код для создание на World геометрии BSP навигационных путей по которому ходят AI игроки CS : Source. А также NPC игроки Hostages (Заложники). Также на Navigation Mesh может быть наложена система опознавания радио чата и радара. О чем я говорю, спросите вы? Когда вы посылаете какую-то радио-команду в чат вы видите текст такого шаблона
C-подобный:
<имя игрока> @ <имя местности> (RADIO) : текст радио
Но бывают такие случаи, что карта не имеет Навигацию местности.Навигация местности это названия мест наложенные на навигационные системы. Именно в этом уроке я покажу вам как их создавать (так как это самая простая работа). Это только введение дальше вы поймете о чем идёт речь.
Описание статьи (Создание навигации местности) :
Навигация местности чаще всего используется картостроителями. И конечно имеет некоторые плюсы для создателя:

  1. Показывает добросовестное отношение к проделанной работе (Создание Навигационной сетки, Навигации местности, OverView, и подобное)
  2. Показывает сам профессионализм картостроителя.
Но это не означает, что простой пользователь не может подкорректировать карту.
Итак давайте начнем.
Для создание Навигации местности нужно знания 3 консольных переменных:

  1. nav_edit
  2. nav_use_place
  3. nav_place_replace
И 6 консольных команд:

  1. nav_toggle_place_mode
  2. nav_place_pick
  3. nav_toggle_place_pick
  4. nav_place_floodfill
  5. nav_place_list
  6. nav_place_set
Внимание : Переменная nav_edit (с которой все и будет начинаться) имеет консольный флаг CHEAT, поэтому для ей включения требуется sv_cheats, а также nav_edit работает только на локальном сервере.
Итак давайте по порядку:
nav_edit <0/1> - Включает режим редактирования Navigation Mesh системы.
nav_use_place <название места> - Используется для обозначения того, какое именно название местности вы будете использовать.

  • Например : База Террористов : nav_use_place TSpawn
  • Например : Зигзаг : nav_use_place Middle
  • Подсказка : Для отображения всех доступно возможных местностей используйте nav_use_place без аргументов
  • Подсказка : Если вы хотите переведённые названия местностей пройдите по данному пути
    C-подобный:
    Ваша папка Steam/SteamApps/common/Counter-Cstrike Source/cstrike/resource
    Найдите там файл cstrike_russian.txt и там вы найдёте русский/английский вариант названия местностей. Lанный файл очень интерактивный поэтому вы не запутаетесь там, либо вы можете использовать список из доступных названий местностей из данного сообщения
  • Внимание : Вы не можете использовать свои собственные названия местностей используйте только тот набор, который указан в nav_use_place.
nav_place_replace <старое имя местности> <новое имя местности> - Переименовывает все название старых местностей на названия новых местностей.

  • Например : nav_place_replace CTSpawn TSpawn - мы переименовали все местности с именем База Спецназа на название местностей с именем База Террористов
nav_toggle_place_mode - Переключение с режима редактирования Navigation Mesh на редактирование Местности.
nav_place_pick - При наведении на навигационную область команда nav_place_pick сохраняет название местности в консольную переменную nav_use_place после чего вы можете использовать это для консольных команд nav_toggle_place_pick и nav_place_set.
nav_toggle_place_pick - Переключения в режим отмечать/запретить отмечать местности (то есть, если вы напишите в консоль данную команду, то при наведении на навигационную область вы дадите этой зоне имя).

  • Внимание : Команда может использоваться по двум типам.

  1. Используется nav_use_place <имя местности> и потом пишется nav_toggle_place_paiting.
  2. Если у вас есть хотя бы 1 навигационная зона, которое имеет имя то наведите на неё курсор. Это соханит название местности в консольную переменную nav_use_place после чего введите nav_toggle_place_paiting.
  • Подсказка : Если к примеру вы случайно отметили навигационную область неправильным именем то используйте данный метод.
nav_place_floodfill - Данная консольная команда позволяет вам все безымянные зоны превратить с названиями, которое отображено в nav_use_place.

  • Внимание : метод с nav_place_pick в данной команде не работает.
nav_place_list - Данная консольная команда позволяет вам вывести список и количество используемых навигационных местностей в текущей карте.
nav_place_set - Данная консольная команда альтернатива консольной команде nav_toggle_place_paiting, отличие данной команды в том, что сначала отмечаются все навигационные области и только.Использовать данную команду надо так:

  1. Укажите в консольной переменной nav_use_place имя местности, которым вы будите раскрашивать навигационные области.
  2. С помощью консольной команды nav_toggle_selecting (данная команда будет рассмотрена на следующих уроках) укажите те навигационные области, которые вы будете использовать.
  3. Напишите консольную команду nav_toggle_selecting еще раз, чтобы отключить режим выделения навигационных зон.
  4. Напишите nav_place_set

  • Внимание : Вы также можете использовать nav_place_pick вместо nav_use_place (Шаг 1).
  • Подсказка : Вы также можете использовать консольную команду nav_add_to_selected_set. Дело ваше. Консольные команды nav_add_to_selected_set и nav_toggle_selecting абсолютно идентичны в своем использовании.
Все консольные команды и переменные рассмотрены.
После того, как вы все сделали с Navigation Mesh. Наберите в консоль nav_analyze (Данный процесс наверняка вам знаком).
После карта перезагрузиться и проверьте работоспособность своей Navigation Mesh.
На этом всё, спасибо за внимание.
 
Последнее редактирование:

Vit_ amin

Добрая душа
Сообщения
1,512
Реакции
673
Re: Navigation Mesh альтернатива NodeGraph (часть 1)

Название местностей для консольной переменной nav_use_place:
C-подобный:
BombsiteA - Место закладки A
BombsiteB - Место закладки B
BombsiteC - Место закладки C
Hostages - Заложники
HostageRescueZone - Зона спасения заложников
VipRescueZone - Зона спасения VIP
CTSpawn - База спецназа
TSpawn - База террористов
Bridge - Мост
Middle - Зигзаг
House - Дом
Apartment - Комната
Apartments - Квартира
Market - Рынок
Sewers - Коллектор
Tunnel - Туннель
Ducts - Канал
Village - Деревня
Roof - Крыша
Upstairs - Верхний этаж
Downstairs - Нижний этаж
Basement - Подвал
Crawlspace - Погреб
Kitchen - Кухня
Inside - В - помещении
Outside - На - улице
Tower - Башня
WineCellar - Винный погреб
Garage - Гараж
Courtyard - Внутренний двор
Water - Вода
FrontDoor - Парадная дверь
BackDoor - Черный ход
SideDoor - Боковая дверь
BackWay - Обходной путь
FrontYard - Палисадник
BackYard - Задний двор
SideYard - Боковой двор
Lobby - Холл
Vault - Подземелье
Elevator - Лифт
DoubleDoors - Двухстворчатая дверь
SecurityDoors - Защитная дверь
LongHall - Длинный коридор
SideHall - Боковой коридор
FrontHall - Центральный коридор
BackHall - Дальний коридор
MainHall - Основной коридор
FarSide - Дальняя сторона
Windows - Окна
Window - Окно
Attic - Мансарда
StorageRoom - Складское помещение
ProjectorRoom - Проекционное помещение
MeetingRoom - Зал заседаний
ConferenceRoom - Конференц зал
ComputerRoom - Компьютерный зал
BigOffice - Большой офис
LittleOffice - Маленький офис
Dumpster - Мусорный контейнер
Airplane - Самолет
Underground - Метро
Bunker - Бункер
Mines - Мины
Front - Спереди
Back - Сзади
Rear - С тылу
Side - Сбоку
Ramp - Уклон
Underpass - Переход
Overpass - Эстакада
Stairs - Ступеньки
Ladder - Лестница
Gate - КПП
GateHouse - КПП
LoadingDock - Грузовой помост
GuardHouse - Караульное помещение
Entrance - Вход
VendingMachines - Торговые автоматы
Loft - Чердак
Balcony - Балкон
Alley - Аллея
BackAlley - Узкий переулок
SideAlley - Узкая улица
FrontRoom - Гостиная
BackRoom - Подсобное помещение
SideRoom - Боковая комната
Crates - Ящики
Truck - Открытая платформа
Bedroom - Спальня
FamilyRoom - Общая комната
Bathroom - Ванная
LivingRoom - Гостиная
Den - Рабочий - кабинет
Office - Офис
Atrium - Атриум
Entryway - Вход
Foyer - Вестибюль
Stairwell - Пролет лестницы
Fence - Забор
Deck - Палуба
Porch - Подъезд
Patio - Патио
Wall - Стена
 
Последнее редактирование:

selax

Добрая душа
Сообщения
1,172
Реакции
521
Статья не полная. ;(
Допортировал карту сегодня, делал обозначения для радара, без ботов, для карты.

Понадобились такие инструменты, думаю их тоже бы в тутор включить надо:
  • nav_begin_area
  • nav_end_area
  • nav_corner_place_on_ground

Сама ксго не полностью генерит зоны. ;(
Еле справился. :)
 

Vit_ amin

Добрая душа
Сообщения
1,512
Реакции
673
Всё никак не могу добраться до написания 2ой части.
Думаю скоро сделаю.
 

Zakhar Revin

Участник
Сообщения
218
Реакции
28
А вот скажите лучше, как потом это дело сохранить после пересборки карты? Если добавить ресурсов в bsp или перекомпилить, движок люто-бешено предупреждает о старом нав файле. А такой кропотливой и работой занимать каждый раз никто не будет естественно. Наверняка есть команда, анализирующая новую крату и обновляющая старый нав.
 
Последнее редактирование:

Sasha7

Добрая душа
Сообщения
124
Реакции
50
Наверняка есть команда, анализирующая новую крату и обновляющая старый нав.
Используйте nav_analyze
Название местностей для консольной переменной nav_use_place CS:GO:
C-подобный:
BombsiteA - Точка закладки A
BombsiteB - Точка закладки B
BombsiteC - Точка закладки C
Hostages - Заложники
HostageRescueZone - Зона эвакуации
VipRescueZone - Зона эвакуации VIP
CTSpawn - База спецназа
TSpawn - База террористов
Bridge - Мост
Middle - Центр
House - Дом
Apartment - Комната
Apartments - Апартаменты
Market - Рынок
Sewers - Канализация
Tunnel - Туннель
Ducts - Вентиляция
Village - Деревня
Roof - Крыша
Upstairs - Верхний этаж
Downstairs - Нижний этаж
Basement - Подвал
Crawlspace - Канал
Kitchen - Кухня
Inside - В помещении
Outside - Улица
Tower - Башня
WineCellar - Винный погреб
Garage - Гараж
Courtyard - Внутренний двор
Water - Вода
FrontDoor - Парадная дверь
BackDoor - Черный ход
SideDoor - Боковая дверь
BackWay - Обходной путь
FrontYard - Палисадник
BackYard - Задний двор
SideYard - Боковой двор
Lobby - Холл
Vault - Хранилище
Elevator - Лифт
DoubleDoors - Двухстворчатая дверь
SecurityDoors - Защитная дверь
LongHall - Длинный коридор
SideHall - Боковой коридор
FrontHall - Front Hall 
BackHall - Дальний коридор
MainHall - Основной коридор
FarSide - Дальняя сторона
Windows - Окна
Window - Окно
Attic - Мансарда
StorageRoom - Складское помещение
ProjectorRoom - Проекционное помещение
MeetingRoom - Конференц-комната
ConferenceRoom - Конференц-зал
ComputerRoom - Компьютерный зал
BigOffice - Большой офис
LittleOffice - Малый офис
Dumpster - Мусорный контейнер
Airplane - Самолет
Underground - Подземный этаж
Bunker - Бункер
Mines - Мины
Front - Передняя часть
Back - Сзади
Rear - Задняя часть
Side - Боковая часть
Ramp - Склон
Underpass - Нижний переход
Overpass - Эстакада
Stairs - Лестница
Ladder - Лестница
Gate - КПП
GateHouse - Помещение КПП
LoadingDock - Грузовой помост
GuardHouse - Караульное помещение
Entrance - Вход
VendingMachines - Торговые автоматы
Loft - Чердак
Balcony - Балкон
Alley - Аллея
BackAlley - Переулок
SideAlley - Боковой переулок
FrontRoom - Гостиная
BackRoom - Подсобное помещение
SideRoom - Боковая комната
Crates - Ящики
Truck - Грузовик
Bedroom - Спальня
FamilyRoom - Гостинная
Bathroom - Ванная
LivingRoom - Гостиная
Den - Рабочий кабинет
Office - Офис
Atrium - Атриум
Entryway - Вход
Foyer - Вестибюль
Stairwell - Пролет лестницы
Fence - Забор
Deck - Терраса
Porch - Подъезд
Patio - Патио
Wall - Стена
BoatBar - Лодочная
BoatStorage - Хранилище лодок
CTBar - Бар спецназа
UpperCatwalks - Верхний помост
LowerCatwalks - Нижний помост
GroundLevel - Первый этаж
LockerRoom - Раздевалка
BackEntrance - Черный вход
FrontEntrance - Парадный вход
SnipersNest - Снайперская позиция
BodyShop - Автомастерская
BankInterior - В банке
BombSite - Точка закладки бомбы
BankExterior - Вне банка
Street - Улица
GasStation - Заправка
SideEntrance - Боковой вход
PalaceInterior - Дворец
BackAlleys - Переулки
CTSideUpper - Верх. проход спецназа
CTSideLower - Низ стороны Сп
TSideUpper - Верх. проход террористов
TSideLower - Низ стороны Т
UpperCarousel - Верхний конвейер
MidCarousel - Средний конвейер
LowerCarousel - Нижний конвейер
CTCorridorDown - Коридор спецназа внизу
CTCorridorUp - Коридор спецназа вверху
TCorridorDown - Коридор террористов внизу
TCorridorUp - Коридор террористов вверху
LeftAlley - Левый переулок
RightAlley - Правая аллея
BackCourtyard - Задний двор
FrontCourtyard - Передний двор
MidArch - Средняя арка
OutsideLong - Проход на «длину»
LongDoors - Двери «длины»
AbovePit - Над ямой
Pit - Яма
APlatform - Платформа на точке A
LongA - «Длина» точки А
ARamp - Склон точки А
BackofA - Задняя часть A
Bricks - Кирпичи
ShortStairs - Короткий подъем
Short - Короткий проход
Catwalk - Уступ
Mid - Mid 
TopofMid - Верхняя часть центра
MidDoors - Двери в центре
ExtendedA - Рядом с точкой A
BDoors - Двери точки B
Hole - Проем
BPlatform - Платформа на точке B
BackofB - Задняя часть B
UpperTunnel - Верхний туннель
TunnelStairs - Лестница в туннеле
LowerTunnel - Нижний туннель
OutsideTunnel - Снаружи туннеля
UnderA - Под точкой A
TRamp - Склон террористов
SniperBox - Точка снайпера
Radio - Радио
Hut - Будка
Crows - Вороны
Squeaky - Дверь | «Скрип»
Yellow - Желтый
Main - Главный проход
CTRed - Красный Сп
Red - Красный
Warehouse - Склад
BackStairs - Задняя лестница
Rafters - Стропила
Forklift - Погрузчик
Garden - Сад
Ruins - Руины
Banana - Дуга
Logs - Поленница
TStairs - Лестница террористов
SecondMid - Второй центральный ход
Hay - Сено
Quad - Угол
Arch - Арка
Library - Библиотека
Graveyard - Кладбище
LowerMid - Нижняя часть центра
Актуальные обозначения находятся по адресу: csgo\resource\csgo_russian.txt
 
Последнее редактирование:
Сверху Снизу