Sidebar

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

  • Рекомендуется задавать вопросы только относительно темы с уроком. Для остальных вопросов существует раздел [url=http://cs-mapping.com.ua/forum/forumdisplay.php?f=12]«Помощь»[/url].

    Темы с просьбами помощи будут удаляться без предупреждения и без объяснения причины.

    Запрещается поднятие старой темы оффтопом. Ваше сообщение будет удалено, а в профиль будет выписано замечание.

Midnight

Game designer
29.04.2007
3 225
28
  • Золотая медаль 145
[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 часа непрерывной работы).
Скидку на возраст делать не буду (неприлично).

Ну вот и всё. Юзайте на здоровье :drink: :drink: :drink: .
 

Вложения

Последнее редактирование:

FuLL_NuLL

Guest
F
не читал весь, но вроде неплохо перведен, автору +1. все бы так писали туторы, как этот...
 

burtec

Member
20.11.2006
479
0
16
2 Midnight:
а кто автор? и почему картинки не работают?
 

Midnight

Game designer
29.04.2007
3 225
28
  • Золотая медаль 145
2 NE0n:
Ну можно сказать, что автор-это тот, кто написал тутор,
А можно и меня автором назвать в данном случае...

Что с картинками - не знаю, просто нажми пкм и выбери показать рисунок...

ЗЫ: У меня картинки работают!
 

burtec

Member
20.11.2006
479
0
16
у когонибудь картинки не работают? кто из россии :agy:
 

burtec

Member
20.11.2006
479
0
16
Error 404: NOT FOUND!
Your browser cannot find the document corresponding to the URL you typed in

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

Midnight

Game designer
29.04.2007
3 225
28
  • Золотая медаль 145
Та-а-а-ак! :cat:
Я залил эти картинки себе на эФТэПэ... :hammer:
Вроде должно работать... :img:

:csm_mem:
ya ya! йа тут мембер! :rock:........ :offtop2:!.........


я добавил (такова-то, такова-то, такова-то года)
ЗЫ: Отзывы ещё будут??? :agy:
 
Последнее редактирование:

Roliks

New member
31.10.2006
525
30
1
0
RU/38/Br
Ну коль ты шаришь в этом, объсни мне тогда еще вот что:
когда сделаешь вэйпоинты и анализ навигации, в некоторых углах или нычках появляются цветные вертикальные палочки (линии высотой с человека), судя по всему обозначения для ботов, которые появляются после анализа карты (к примеру (пример взят от балды) синий значит кемпериться со снайперками, красный, там охранять бомбу в этом месте, после её установки и т.п.). Но к сожалению анализ порой делает нычки довольно глупо (небольшой выступ и бот уже пытается за ним спрятаться со снайперкой, в комнате размером с туалет в хрущёвке. Естественно у него торчит кусок жопы, а то и больше. Глупо? Глупо.). Так вот объясни мне как можно, да и вообще можно ли самостоятельно натыкать этих палок, какая из них что значит и можно ли их убрать не убивая нав-зону (к тому же даже если удалишь нав зону вместе с палкой и создашь новую, после анализа она как правило создается по новой, и повезет, если не хуже чем было).

Ну и еще я не заметил описания того, как обучить бота запрыгнуть на объект. например запрыгнуть на подоконник (это совсем не одно и то же, что перепрыгнуть на следующую нав-зону). Ну и добавь как сделать так, чтобы при переговорах по микрфоону или одачи команд клавишами высвечивалось местонахождение игрока (например - "холл", "база кт" и прочее). насколько я помню эо делается тожже с помочщью нав. зон. Правда как точно - уже не помню.
Вот тогда можно будет твердые пять баллов поставить теме.
 
Последнее редактирование:

Midnight

Game designer
29.04.2007
3 225
28
  • Золотая медаль 145
2 Roliks:
Всё, что ты спросил написать отдельным тутором, иль в этот дописать?
 

Roliks

New member
31.10.2006
525
30
1
0
RU/38/Br
2 Midnight:
допиши прямо в это, все равно одно с другим связано. Навроде "отсебятины" после перевода или вроде того.
 

Yuriy

New member
23.09.2007
73
31
Все вопросы, которые задал Roliks, также и меня интересуют. Но тутор не был дописан. Расскажите здесь простыми ответами кто-нить!

Кстати, делаю для лестницы нав-зону - не получается ничего. Начинаю с верхнего левого края и заканчиваю правым нижним. В итоге нав-зона получается выкручена буквой Z. В другом туторе (на другом сайте) предлагали делать нав-зону для лестницы командой nav_load_ladder (вроде так) - в консоли такой команды нет. Так как правильно для лестницы делать? Вот бы кто снял для лестницы видео-тутор с помощью Fraps - вообще круто будет (и чтобы было видно набираемые команды в консоли, а не через бинды)!
 

OneManArmy

lolwut?
15.07.2007
1 429
30
0
0
Оффтоп
 

predA

всё уже не то
15.09.2007
1 050
29
OneManArmy ну просто процент похвалы на форуме низок) я позитифф, а так...
То ты реально подметил, буду серьёзнейсудить, хотя согласен со всем что досихпор писал... ;)
 

MOHCTP

New member
04.11.2006
210
nav_clear_walkable_marks
Удалить все ранее установленные проходимые позиции

nav_corner_lower
Опустить выбранный угол выделенной области

nav_corner_raise
Поднять выбранный угол выделенной области
(также можно опускать или поднимать выделенную область полностю. Соединённые, с выделенной, области будут изменять угол наклона )

nav_corner_select
Выбрать угол выделенной области. Используйте несколько раз, чтобы выбрать все 4 угла
(точнее все углы поочерёдно)

nav_corner_place_on_ground
Располагает выбранный угол выделенной области на земле
(очень удобно для создания навигации на закруглённых лестницах, как в туннеле на даст2 )

nav_splice
Для состыковки двух областей выберите первую область, пометьте вторую и запустите команду splice для создания новой соединяющей области между ними
(удобно для создания навигации на длинных спусках , как на ацтеке на одном из плантов. создаёте одну зону в начале спуска вторую в конце, выбираете одну область вторую активируете курсором и вводите команду в консоль . . . вуаля)

nav_strip
Удаляет все точки укрытия, столкновения и приближения из выбранной области

nav_area_bgcolor
Цвет в формате RGBA для использования в качестве заднего фона в областях навигации при редактировании

nav_show_area_info
Длительность отображения ID и атрибутов навигационных областей при редактировании в секундах

nav_compress_id
Пересортирует ID областей и лестниц по порядку

nav_check_floor
Обновляет статус заблокировано/разблокировано для каждой области навигации

nav_ladder_flip
Меняет направление выделенной лестницы

nav_mark_walkable
Отмечает текущее положение проходимой позиции. Эти позиции используются в качестве начальной позиции при оценке карты для создания навигационной сетки

nav_snap_to_grid
Стыковать с сеткой при создании новых навигационных областей

nav_split_place_on_ground
При значении TRUE области навигации будут расположены на одном уровне с землей при разделении

nav_transient
Включает/выключает флаг 'area is transient and may become blocked' используемый системой AI

nav_dont_hide
Включает/выключает флаг 'area is not suitable for hiding spots' используемый системой AI

nav_run
Включает/выключает флаг 'traverse this area by running' используемый системой AI.

nav_walk
Включает/выключает флаг 'traverse this area by walking' используемый системой AI.

nav_stand
Включает/выключает флаг 'stand while hiding' используемый системой AI.

nav_warp_to_mark
Создает игрока в отмеченной области
 
Последнее редактирование:

Донат - Хостинг

Итого
200.00 $
Цель
600.00 $

Доноры Красавчики

Пользователи онлайн