Показать сообщение отдельно
Старый 24.06.2007, 23:41  #1
Midnight
Midnight
Game designer
Регистрация: 29.04.2007
Адрес: Одесса
Возраст: 32
Сообщения: 3,225
Замечания: 4


Желтая звезда [CSS] Вейпоинтинг для Ботов/Заложников.

Вейпоинтинг для Ботов/Заложников CS:S

Данный тутор написан и переведён, чтобы повысить ваше мастерство вейпоинтинга для маппинга в Counter-Strike:Source

Здесь я покажу как учить ботов делать их первые шаги в огромном мире Counter-Strike:Source.

Я собираюсь начать с разрушения популярного мифа о том, что вейпоинтинг не нужен в Source. Это не правда. Хотя Source автоматически генерирует nav. файл и технически вы можете играть с ботами, но от этого вы не получите много удовольствия. Например: сделайте, или скачайте какую-нибудь карту (не iceworld – даже боты понимают, как на ней играть =-), что-нибудь по сложнее) и поиграйте с ботами. Если маппер не тратит время на отладку nav. файла боты не будут пользоваться лестницами, будут везде застревать, падать со второго этажа, и не будут использовать некоторые пути по карте. Теперь запустите de_dust2 с ботами в Hard режиме, и вы поймёте, зачем вам нужно совершенствовать nav. файл.

Приготовление к редактированию Nav.
Nav. тюнинг происходит полностью в игре. Это значит, что вы создаёте сервер, и вводите команды в консоли. Чтобы облегчить это я предлагаю создать свой собственный config.cfg (файл, который содержит вашу конфигурацию клавиатуры). Он находится в папке C:\Games\Steam\SteamApps\***\counter-strike source\cstrike\cfg. Просто скопируйте старый файл, и поместите его в любую временную папку. Теперь запустите Counter-Strike:Source, откройте консоль, и введите:

bind "1" nav_mark
bind "2" nav_connect
bind "j" nav_jump
bind "p" nav_precise
bind "Mouse1" nav_begin_area
bind "Mouse2" nav_end_area
bind "\" nav_split
bind "del" nav_delete
bind "c" nav_crouch
bind "n" nav_no_jump
bind "=" nav_disconnect
bind "0" nav_make_sniping_spot
bind "m" nav_merge

(этим вы создали горячие клавиши для наиболее используемых команд редактирования nav.)

Так, теперь всё готово к работе. Давайте же приступим!
Откройте карту, nav. которой вы хотите изменить. Включите читы (sv_cheats 1) (nav. тюнинг считается читерством :-0). Введите nav_quicksave 1 в консоли, когда карта загружена. Далее введите nav_generate, и подождите, пока движок обрабатывает вашу карту. Если вы знакомы с процессом, то заметите разницу. С nav_quicksave движок пропустит весь процесс анализа (поиск снайперских позиций, зон доступа, укрытий, и т. д.), вместо этого он просто просканирует проходимую область. Это сэкономит вам довольно много времени, потому что вы должны будите проанализировать вашу карту после окончания работ по тюнингу в любом случае, таким образом, вам не понадобится делать это дважды. =-)

Основы редактирования Nav. (Создание зон)
Введите nav_edit 1 в консоли. Если вы всё сделали правильно, то вы увидите второй (белый) курсор, следующий за стандартным, и несколько ярких прямоугольников на земле.

Область, указываемая курсором, станет жёлтой. А соседние области станут красными.

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

Укажите курсором туда, где вы хотите начать рисовать прямоугольник, и нажмите левую кнопку мыши (или введите nav_begin_area в консоли). И начните двигать курсор в противоположный угол предполагаемого прямоугольника.

Нажмите правую кнопку мыши (или введите nav_end_area в консоли), чтоб закончить область.



Соединение зон

Чтобы боты могли нормально проходить от одной зоны к другой, между зонами должно быть соединение. Есть 2 типа соединений: одностороннее и двухстороннее. В одностороннем соединении боты смогут пройти только в одном направлении, а двухстороннем – в обоих направлениях. Давайте сделаем две зоны, и соединим их с помощью двухстороннего соединения.

После того, как вы создали две зоны, которые находятся довольно близко друг к другу, вы должны «отметить» одну из них. Чтобы сделать это: укажите на нужную зону курсором и нажмите 1(или введите nav_mark в консоли). Область станет голубого цвета. И она останется выделенной даже если вы уберёте курсор на другую зону.

Теперь наведите курсор на зону, которую вы хотите соединить с выделенной, как показано на рисунке ниже. И нажмите 2 (nav_connect в консоли). Теперь сделайте то же самое в обратном направлении – выделите вторую зону и соедините её с первой. У вас получится что-то вроде этого:


Теперь ваши зоны удачно соединены.

*Примечание:
Одностороннее соединение указывается тёмно-синей линией между двумя зонами. Двустороннее соединение – голубой линией между зонами.

Советы для улучшения соединений зон

Есть несколько вещей, которые надо знать про поведение ботов.

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

Ещё боты склонны использовать короткие пути. Вот пример:

В данном случае боты вероятнее пойдут по красной стрелке, чем по зелёной стрелке. Но следование по красной стрелке заканчивается их падением, тогда как зелёный путь безопасен. Чтоб решить эту проблему вам понадобится разделить зону назначения на две. Чтобы сделать так, передвиньте курсор так, чтоб белая линия показывала - где следует разрезать зону как на скриншоте внизу:


Нажмите \ или введите nav_split в консоли. Зона разделится в том месте, где была белая линия. Между двумя новыми зонами автоматически создастся двустороннее соединение. В результате вы получите что-то вроде этого, и боты, пробегая красной линией, не упадут. ;D


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


Делаем лестницы

Лестницы не всегда правильно распознаются ботами. Поэтому неплохо было бы сделать их самостоятельно. Вы можете сделать это так же, как и обычную зону, только в данном случае это будет вертикально. Просто нажмите лкм или nav_begin_area в консоли, растяните зону до противоположного угла лестницы, и нажмите пкм (nav_end_area).
У вас должно получиться что-то наподобие этого:

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

Использование других Nav. команд

nav_jump
Выделите зону, и введите nav_jump в консоли или нажмите j. Эта команда не заставляет ботов всё время прыгать, она просто говорит им, переходить на следующую зону – прыжком. Такие зоны будут обозначатся с двумя диагоналями.

nav_crouch
В отличии от nav_jump эта команда ЗАСТАВЛЯЕТ ботов присесть. Выделите зону, и введите nav_crouch в консоли или нажмите c. Используйте её везде, где вы хотите чтоб боты приседали. Такие зоны обозначаются с голубой диагональю.

nav_precise
Это говорит ботам ходить более точно. Она не имеет 100% эффекта потому, что боты до сих пор игнорируют всё, когда они включены в боевом режиме, Но на такой зоне боты будет ходить осторожнее. Выделите зону, и введите nav_precise в консоли или нажмите p.

nav_no_jump
Это заставляет ботов прекратить прыгать. Когда боты находятся в этой зоне, они не будет прыгать. Это очень полезно при создании обычных лестниц. Если вы не будите использовать это, боты будут продолжать прыгать, и будут смотреться глупо и нереалистично. Так отметьте каждую ступеньку nav_no_jump’ом, выделив её и нажав n (nav_no_jump вм консоли).

nav_delete
Используется чтобы удалить nav. зоны. Отметьте зону, и нажмите "delete" чтобы удалить её. Или вы можете просто набрать "nav_delete" в консоли!

nav_disconnect
Используется чтоб рассоединить 2 зоны. Помете первую зону затем укажите на вторую и нажмите = или введите nav_disconnect в консоли. Помните: если у вас 2 стороннее соединение вам придется сделать то же самое и в обратном направлении.

nav_merge
Используется чтоб объединить 2 зоны. Помете первую зону и укажите курсором на вторую. Нажмите m или введите nav_merge в консоли.


nav_make_sniping_spot

Используется чтобы создать снайперские точки. Эта команда разделит зону на много меньших. Это не заставляет ботов доставать слоновку, и стрелять в кого попало, это скорее говорит о возможности sniping’а там.

Тестирование своей работы

Перед сохранением, и реанализом карты я рекомендую сначала тестирование её с одним ботом. Введите bot_add_ct чтобы добавить бота в ct команду, и bot_add_t чтобы добавить бота в t команду. Я предлагаю добавить бота в свою команду, чтобы раунд нет закончился при окончании времени раунда. Дальше введите bot_zombie 1.Это сделает бота пассивным в игре. Отметьте зону, и введите bot_goto_mark в консоли. Бот пойдёт в намеченную точку кротчайшим путём. Это очень полезный способ тестирования вашей nav. работы.


Сохраняем свою работу

Вы должны регулярно сохранять свои достижения, как и любую другую работу. Чтобы сделать это - введите nav_save в консоли. После того, как вы удовлетворены своей работой - введите nav_quicksave 0 в консоли, а потом nav_analyze. Ваша карта будет реанализирована, используя ваш nav. тюнинг. Когда процесс завершится, карта должна перезагрузиться автоматически. Если этого не произошло, вы должны сделать это вручную. Карта ДОЛЖНА быть перезапущена, чтобы предотвратить ошибки.
Поздравляем!
Вы только что успешно завершили свой первый(а может быть и не первый) проект по nav. тюнингу.

От себя (переводчика)

В принципе у меня это всё работает и без включения читов, так что я решил не тратить на это времени.

В туторе сказано, что сначала надо ввести nav_quicksave, но когда у меня есть время, я делаю полный анализ (если что движок сделает не так – можно сразу исправить).

Данный метод был проверен мной, и является работоспособным.

Если вы делаете карту только для сетевой игры, то незачем тратить время на «вымащивание» дорог белым мрамором для ботов, которые ходить по ним не будут!

Если вы играете по сети, и у вас нет нава, но если нав есть на сервере игры – боты будут работать т.к. боты просчитываются на машине, создавшей игру. Там же (на сервере) боты видят вас (сначала ваши координаты расположения на карте передаются на сервер).
Примечание: если игра по сети тормозит, то пусть лучше сервером будет комп посильнее.

Данный туториал не для новичков, поэтому я решил не менять стиль на разговорный.
Тутор предполагает, что у вас есть определённые навыки в мапперстве.

Оригинал тутора: http://www.gamebanana.com/tuts/1661
Автор – aleksandr

Перевод с английского осуществлен Midnight’ом
PS: Я решил попробовать себя в этом нелёгком деле.
Перевёл я это за день (4 часа непрерывной работы).
Скидку на возраст делать не буду (неприлично).

Ну вот и всё. Юзайте на здоровье .
[ Миниатюры ]
navigation1.jpg Просмотров: 2672 Размер:  37.1 Кбайт  navigation2.jpg Просмотров: 2775 Размер:  40.2 Кбайт  navigation3.jpg Просмотров: 2676 Размер:  39.2 Кбайт  navigation4.jpg Просмотров: 2662 Размер:  37.9 Кбайт  navigation5.jpg Просмотров: 2569 Размер:  37.6 Кбайт  navigation6.jpg Просмотров: 2511 Размер:  36.7 Кбайт  

navigation7.jpg Просмотров: 2868 Размер:  64.0 Кбайт  navigation8.jpg Просмотров: 2921 Размер:  59.1 Кбайт  navigation9.jpg Просмотров: 3247 Размер:  62.8 Кбайт  navigation10.jpg Просмотров: 2677 Размер:  73.6 Кбайт  navigation11.jpg Просмотров: 2544 Размер:  69.6 Кбайт  
Midnight вне форума Ответить с цитированием