ai_goal_assault

Атака
Цель атаки - сделать одного или более NPC тактически продвигающимся вперёд по заранее запланированному пути, соблюдая тактические моменты на протяжении пути. Это гораздо более гибко, чем использование path_corner’ов.

Атака состоит из двух или трёх  энтитей :

ai_goal_assault (одна на атаку, необязательно)
assault_rallypoint (одна на NPC)
assault_assaultpoint (любое количество)

Эта статья покажет вам общую картину того, как настроить атаку.

Содержание:
1 Структура
2 Основные настройки
3 Примеры
3.1 Карта-пример
3.2 Префабы
4 Примечания



Структура

Атака состоит из цели ИИ ( энтити  ai_goal_assault), направляющей одного или нескольких NPC (так называемых актёров) и одной или более точек "rally point” ( энтити  assault_rallypoint), где они обычно ждут команды к началу атаки. По этому сигналу они направляются на первую "assault point” ( энтити assault_assaultpoint) для того, чтобы охранять или «зачищать» её, и потом двигаться к следующей assault point (если их несколько), зачищать её, затем двигаться к следующей, и так далее. Зачистка assault point, по дефолту, состоит из нахождения NPC на этой точке и убеждения, что врагов нет в течение определённого времени (timeout period), но всё это полностью конфигурируем.

(Image 1)

Атаки могут быть активированы одним из двух путей:

1. Когда  энтити  ai_goal_assault активирована, она посылает актёров(актёра) к их личным assault_rallypoint’ам, где они ждут команды к началу атаки. Это наиболее распространённое использование.  Энтити  ai_goal_assault может быть активирована либо инпутом Activate, либо в значении параметра Start Active должно стоять Yes, тогда атака начнётся сразу после загрузки карты.
2. Combine Soldiers могут быть сразу ассоциированы с rally point без использования
 энтити  ai_goal_assault. Используя систему инпутов/аутпутов вы можете активировать инпут Assault в солдате, указывая в параметрах инпута имя  энтити  assault_rallypoint для этого солдата. Когда Combine Soldier получает этот инпут, он начинает искать свою assault_rallypoint, перемещается туда, и потом сразу же начинает двигаться к первой assault_assaultpoint. Пожалуйста учтите, что также инпут Asault может быть послан любому NPC, но данное обращение поддерживают только Combine Soldier’ы. Вы можете использовать имена(маски), когда обозначаете rally point в параметрах аутпута. Также вы можете использовать значение Priority (приоритет) в  энтити  assault_rallypoint, если имеется более чем одна assault_rallypoint  энтити .


Основные опции

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

ai_goal_assault
Значение AssaultCue: определяет, что будет причиной для NPC для покидания rally point и начала атаки.
assault_rallypoint
Значение priority: определяет, насколько привлекательной эта rally point будет для NPC, если он имеет несколько rally point’ов для выбора.
Значение assaultdelay: время задержки NPC на rally point пред началом атаки, после поступления команды к её началу.
assault_assaultpoint
Значение assaultgroup: сдерживает передвижение NPC в рамках этой группы хинтов.
Значение assaulttimeout: если в течение этого времени врагов не будет замечено, то
точка будет считаться зачищенной.
Значение nevertimeout: если установлено на Yes, то точка никогда не будет считаться 
Зачищенной. Используется для форсирования отступления NPC на эту точку.
Значение allowdiversion: если установлено на Yes, то NPC будет преследовать 
противника, либо пока он не будет уничтожен, либо пока не истечёт время, указанное 
в assaulttimeout. Если установлено на No, то NPC побежит, не останавливаясь, к 
следующей точке, атакуя врагов, которых видит, но не преследуя их.
Флаг Clear point upon arrival, unconditionally: перейти к следующей точке сразу по
прибытии на эту, не обращая внимания на разнообразные влияния (врагов и тд).


Примеры

Карта-пример
Эта карта содержит одного NPC на линейной цепи, используя основные опции, 
доступные для дизайнеров при движении NPC от одной assault point до другой. Есть
четыре точки, и каждая настроена по-разному.

1. Значение clearoncontact поставлено на Yes. Когда NPC видит противника, точка считается зачищеной и он идет ко второй assault point.
2. Поставлен флаг на Clear point upon arrival, unconditionally. Когда NPC достигает этой точки, она автоматически считается зачищенной, и не смотря на то, что вокруг ещё есть враги, движется в точку 3.
3. Значение allowdiversion поставлено на No. NPC проследует к этой точке без остановки или преследования, также он будет атаковать врагов в поле зрения.
4. Значение allowdiversion поставлено на Yes. NPC будет отвлекаться от продвижения к этой точке, пока не исчезнут все враги в его поле зрения.

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


Примечания

1. Если clearoncontact стоит на Yes, то единичный NPC может очистить не только текущую assault point, но и следующую(ие). Вследствие этого, если NPC встречает врага на пути к assaultpoint с установленной clearoncontact на Yes, то NPC может никогда не перейти на следующую assaultpoint. Это происходит независимо от последующих assaulpoint’ов с настройками clearoncontact и allowdiversion, поставленными на Yes.
2. Если allowdiversion установлено на Yes, и NPC встречает врага, атакующий NPC замираетна некоторое время после убийства противника перед продолжением пути. В статье указывается, что длина этой паузы есть число в настройке assaulttimeout, но в моих испытаниях несколько раз было дольше.
3. Если NPC встречает врага на пути к assaultpoint’у с allowdiversion поставленным на Yes, но без флага Clear point upon arrival, unconditionally, атакующий NPC остановится дважды. Мапперам придётся принять во внимание этот момент, если время им важно.
4. Assaultpoint с clearoncontact и allowdiversion поставленными на Yes вызывает некоторые странности: если на пути к этой assaultpoint встречается враг, NPC убьёт его, но потом по достижении assaultpoint’а не будет преследовать других врагов или вести ответный огонь, пока не достигнет следующего assaultpoint’а. Фактически, атакующий NPC вообще не изменяет направление, чтобы открыть огонь. Это случается, несмотря на установленный флаг Clear point upon arrival, unconditionally и nevertimeout, поставленный на Yes.
5. Я не наблюдал никакого эффекта от настройки nevertimeout, поставленной на Yes. Однако все перестрелки были довольно короткими, таким образом, возможно, это не имело шанса войти в силу.
6. Полностью выключенные параметры настроек идеальны для создания NPC, направляющегося к точке, несмотря на вражеский огонь, и затем атакующего всех с этой очки.
7. Если включить только Clear point upon arrival, unconditionally, то это идеально для создания NPC направляющегося от точки к точке без остановок, несмотря на вражеский огонь.
8. Аутпут OnAssaultClear работает только для последней assault point в цепи. Зато у всех assaultpoint’ов работает аутпут OnArival.
9. Задержка после прорыва (diversion) при поставленной на Yes allowdiversion примерно 18 секунд для 3-х секундного времени timeout’а.
10. Прорыв (diversion) вызывает другую такую же задержку сразу же после пересечения assault point, и потом аутпут OnArrival срабатывает снова. Если NPC снова прорывается в течение времени timeout’а, аутпут OnArrive снова сработает, и так до бесконечности. Поэтому на споуньте врагов в течение времени timeout’а.
11. Если на первой assault point clearoncontact установлено на Yes и враг появляется перед пересечением её, NPC никогда её не пересечёт. Если последующая точка имеет allowdiversion поставленной на No, это станет причиной того, что эта assaultpoint создаст аутпут OnArrival – несмотря на атакующего NPC, находящегося в стороне от неё и никогда не приходившему на первую assault point и не смотря на незакончившеюся схватку с врагами. Если, напротив, на второй assault point allowdiversion поставлено на Yes, то никаких аутпутов не будет послано.
12.Rally point’ы плохо работают с респавненными солдатами, потому что когда первая их партия отправляется с этих rally point’ов, то они считаются очищенными (удалёнными). Последующие солдаты не смогут найти эту rally point. При использовании режима developer 2 в игре, появится сообщение о том, что невозможно найти нужную rally point.



Оригинальная статья http://developer.valvesoftware.com/wiki/Assaults



Комментарии

Оставьте комментарий

Опрос

Чаще всего я делаю карты для...

Категории раздела

info_ [16]
item_ [7]
light_ [4]
logic_ [8]
filter_ [5]
phys_ [5]
player_ [0]
point_ [2]
prop_ [11]
trigger_ [8]
math_ [3]
path_ [0]
Прочее [10]
Ai_ [2]
env_ [45]
game_ [5]
func_ [39]

МИНИ-ЧАТ

Друзья сайта

HL2 & Source Games

Mapper720.Ru - сайт о маппинге Half-life 2

 

Статистика


Онлайн всего: 1
Прохожих: 1
Пользователей: 0


Сегодня нас посетили:

Приветствуем нового пользователя:
Noug4at

Новое в AgnesTeam

Теги

smd expotrer smd importer smd плагин 3ds max тутор запор запорожец модель для чайников ленивых Displacement 3ds Max Hammer source создание модели 3D Ripper 3D Ripper DX 3d ripper dx туториал 3D Ripper DX уроки 3D ripper урок 3dr риппер Combine HUD Suit Туториал refract понтовый эффект преломление текстуры Source sdk SkyBox небо скайбокс создание skybox создание скайбокса маппинг portal 2 Portal 2 панели панели веры портал 2 Portal gel source sdk урок гель гель отталкивающий гель туторы source sdk мосты плотного света тутор туторы portal 2 уроки портал 2 строим карту portal 2 hammer editor кейв джонсон туториал portal 2 панели урок source sdk вспышки от выстрелов game_ Ui кодинг облагораживание мода покачивание камеры коддинг создание кода prop_static prop_physics_override энтити prop_ prop_dynamic_ornament физика phys_pulleyconstraint phys_ballsocket Phys_ физика Source phys_motor Left4Dead2: ep2 Episode 2 маппинг машина радар