Описание энтити scripted_sequence - Маппинг - Каталог статей - Официальный сайт Hell494
Приветствую Вас 1-класс | RSS Главная | Каталог статей | Регистрация | Вход
Меню сайта

Категории раздела
Программирование [7]
Моделирование [8]
Маппинг [67]
Текстурирование [10]

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Мини чат
200

Главная » Статьи » Маппинг

Описание энтити scripted_sequence
Описание энтити scripted_sequence
scripted_sequence (энтити)

Предназначена для управления NPC – заставляет их выполнять определенные анимации. NPC можно заставить сначала переместиться в позицию scripted_sequence, а потом выполнить нужную анимацию, либо NPC выполнит анимацию, не подходя к scripted_sequence.
Во время действия данной энтити искусственный интеллект подконтрольного NPC подавляется.
Если нескольким scripted_sequence задать одно и то же имя, это вынудит подконтрольных NPC одновременно начать выполнять свои анимации, как только все они подойдут к соответствующим scripted_sequence. Эту особенность можно использовать для изображения сцен с взаимодействующими NPC. При этом не забудьте задать атрибут Pre Action Idle Animation (иначе NPC во время ожидания могут выполнять произвольные бессмысленные анимации).

Порядок работы энтити (действий подконтрольного NPC):

1) переместиться в позицию scripted_sequence, используя заданную анимацию движения и разворачиваясь в том же направлении, что и данная энтити. Если атрибут Move to Position равен None, пропустить этот пункт и перейти к п.2
2) если подконтрольный NPC должен ждать других NPC для одновременного начала действий (см. выше), во время ожидания проигрывать анимацию, заданную атрибутом Pre Action Idle Animation, иначе пропустить этот пункт и перейти к п.3. В случае ожидания, если указанный атрибут не задан, будет проигрываться анимация ACT_IDLE.
3) сгенерировать событие OnBeginSequence.
4) выполнить анимацию, заданную атрибутом Action Animation. Если анимация не задана, пропустить данный пункт и перейти к п.5
5) выполнить анимацию, заданную атрибутом Post Action Idle Animation. Если атрибут не задан, пропустить данный пункт и перейти к п.6. Если установлен флаг Loop in Post Idle, указанная анимация будет выполняться бесконечно, пока активна энтити (т.е. пока к ней не применена команда CancelSequence или Kill). Если флаг установлен, а атрибут не задан, будет проигрываться анимация ACT_IDLE.
6) сгенерировать событие OnEndSequence.
7) если задан атрибут Next Script, NPC начинает выполнять тот же порядок действий для следующей энтити scripted_sequence.

Замечание: некоторые анимации начинаются (или заканчиваются) с задержкой (около 1 сек), когда подконтрольный NPC должен подойти к scripted_sequence. Однако те же анимации выполняются без задержки, когда назначаются в Post Action Idle Animation. Если Вас не устраивает данная особенность энтити scripted_sequence, придется отказаться от ее использования в пользу logic_choreographed_scene и редактора Face Poser (в редакторе можно более тонко настроить анимацию NPC).

Атрибуты (Keyvalues)

Name – имя, используемое для ссылки на данный объект.

Parent <имя энтити> - имя родительской энтити (параметр Name), с которой данная энтити будет «связана». При этом движение, ориентация в пространстве и жизнь данной энтити (дочерней) будут зависеть от родительской энтити.

Pitch Yaw Roll (Y Z X) - ориентация энтити в пространстве (параметры означают соответствующие углы поворота относительно осей Y, Z и X).
Обратите внимание: подконтрольный NPC будет разворачиваться в том же направлении.

Target NPC <список энтити> - имя подконтрольного NPC или класса NPC (например, npc_citizen).

Pre Action Idle Animation <строка> - имя анимации (например “idle01”) или активности (например “ACT_IDLE”), проигрываемой до начала активизации энтити, если NPC вынужден ждать события OnBeginSequence (см. выше). Атрибут используется, если установлен флаг Start on Spawn, либо энтити дана управляющая команда MoveToPosition, либо подконтрольный NPC будет ожидать других (см. выше).

Entry Animation <строка> - имя анимации (например “reload02”) или активности (например “ACT_RELOAD”), проигрываемой в начале активизации энтити, до перехода к основной анимации (см. ниже). Добавлено в Half-Life 2: Episode 1.
На данный момент условия выполнения этой анимации неизвестны. По-видимому, не работает в Half-Life 2.

Action Animation <строка> - имя основной анимации (например “reload02”) или активности (например “ACT_RELOAD”). Если NPC должен выполнить только одну анимацию, она задается именно этим атрибутом.

Post Action Idle Animation <строка> - имя анимации (например “idle01”) или активности (например “ACT_IDLE”), проигрываемой после основной анимации. Атрибут используется, если задать одинаковое имя нескольким scripted_sequence (см. выше про одновременное выполнение анимаций).

Custom Move Animation <строка> - используется совместно с установленным значением Custom movement атрибута Move to Position и определяет анимацию (например “crouch_run01”) или активность (например “ACT_RUN”), которая будет использоваться во время передвижения подконтрольного NPC к энтити scripted_sequence.

Loop Action Animation? <список значений Yes/No> - определяет зацикливание основной анимации (см. выше). Добавлено в Half-Life 2: Episode 1.
По-видимому, не работает в Half-Life 2.

Synch Post Idles? <список значений Yes/No> - предположительно определяет одновременное завершение анимаций Post Action Idle Animation несколькими NPC и используется в сценах взаимодействия NPC (см. выше описание и порядок работы scripted_sequence). Добавлено в Half-Life 2: Episode 1.
По-видимому, не работает в Half-Life 2.

Search Radius (0=everywhere) <число с п.точкой> - радиус для поиска подконтрольных NPC (в основном используется, если атрибут Target NPC задает класс NPC). Значение 0 задает поиск NPC на всей карте.

Repeat Rate ms <число с п.точкой> - назначение неизвестно. По-видимому, должен задавать время, в течение которого подконтрольный NPC будет циклически проигрывать анимацию, и используется совместно с флагом Repeatable (см. ниже). На данный момент изменение параметра не оказывает видимого влияния на работу энтити.

Move to Position <список значений> - задает способ передвижения подконтрольного NPC к энтити scripted_sequence.
Принимаемые значения:

Значение Описание
0 Движения нет (выполнить анимацию, стоя на месте)
1 Идти шагом
2 Бежать
3 Движение задается отдельно (см. выше Custom Move Animation)
4 Переместиться мгновенно
5 Движения нет, только повернуться лицом к scripted_sequence

Next Script <список энтити> - имя следующей энтити scripted_sequence, которая будет активизирована сразу после окончания действия текущей. Между этими двумя энтити контроль над целевым NPC не утрачивается (т.е. NPC «не отвлекается» от выполнения действий).

Minimum DX Level <список> - минимальная версия DirectX на компьютере пользователя, при которой энтити будет работать.
Принимаемые значения:

Значение Описание
0 По-умолчанию (наименьшая версия)
70 Версия DirectX 7.0

Maximum DX Level <список> - максимальная версия DirectX на компьютере пользователя, при которой энтити будет работать.
Принимаемые значения:

Значение Описание
0 По-умолчанию (последняя версия)
60 Версия DirectX 6.0

On player death <список> - что происходит, когда игрок погибает.
Принимаемые значения:

Значение Описание
Do Nothing энтити продолжает быть активной, NPC продолжает выполнять действия
Cancel Script and return to AI энтити перестает быть активной, NPC возвращается в нормальное состояние (в котором поведение определяет заданный для NPC искусственный интеллект)

Управляющие команды (Inputs)

Kill – удаляет entity из игры.

KillHierarchy – удаляет энтити и все ее дочерние энтити из игры (связанные через атрибут Parent).

AddOutput <строка> – добавляет Input/Output-связку с другой энтити в формате:
<имя события> <имя цели>:<управляющая команда>:<параметр>:<задержка>:<максимальное число срабатываний (-1 == не ограничено)>
Будьте аккуратны при использовании этой команды, т.к. она является потенциально опасной.

FireUser1…FireUser4 – вызывает срабатывание соответствующих событий OnUser1…OnUser4 для этой энтити.

SetParent <строка> - изменяет родительскую энтити для данной.

SetParentAttachment <строка> - изменяет способ «связывания» данной энтити с родительской. Предварительно необходимо определить значение Parent для данной энтити (задав атрибут Parent в редакторе или командой SetParent в игре). Передаваемый параметр определяет тип привязки.

SetParentAttachmentMaintainOffset <строка> - команда аналогична предыдущей, за исключением того, что данная энтити будет поддерживать положение относительно родительской во время привязки.

ClearParent – убирает привязку данной энтити к родительской.

BeginSequence – заставляет подконтрольного NPC начать выполнение анимации.

MoveToPosition – заставляет подконтрольного NPC идти к позиции scripted_sequence. Во время передвижения NPC выполняет заданную анимацию (см. выше атрибут Move to Position), если анимация не задана – выполняется активность NPC ACT_IDLE. Анимация выполняется до начала основной анимации (событие OnBeginSequence).

CancelSequence – останавливает выполнение scripted_sequence (и анимации). Если команда дана после начала основной анимации, она игнорируется до тех пор, пока основная анимация не закончится (до события OnEndSequence).

События, происходящие с энтити (Outputs)

OnUser1…OnUser4 – вызываются управляющими командами FireUser1…FireUser4, соответственно.

OnBeginSequence – происходит в начале выполнения основной анимации (Action Animation)

OnEndSequence – происходит в конце выполнения основной анимации.

OnScriptEvent01…OnScriptEvent08 – происходят во время выполнения scripted_sequence, если случается событие 'trigger' anim. Используйте event 1003 framenum 1…8 в QC. На данный момент более подробное описание отсутствует.

Флаги (Flags)

Repeatable – назначение флага неизвестно. По-видимому, должен использоваться совместно с атрибутом Repeat Rate ms (см. выше).

Leave Corpse – назначение флага неизвестно. По-видимому, должен задавать исчезновение убитого NPC в игре.

Start on Spawn – энтити активизируется сразу после создания в игре.

No Interruptions – запрещает прерывание анимации подконтрольного NPC (вызванное, например, стрельбой по нему). Если флаг не установлен, scripted_sequence прекращает свое действие в случае «вмешательства» в ее выполнение.

Override AI – назначение флага неизвестно.

No Script Movement – назначение флага неизвестно.

Loop in Post Idle – анимация Post Action Idle Animation будет повторяться бесконечно (соответственно, активность энтити длится до тех пор, пока ей не будет дана команда сброса).

Priority Script – назначение флага неизвестно.

Источник: http://bbs.nashalife.ru/showthread.php?s=&postid=569690#post569690
Категория: Маппинг | Добавил: HellMapper (01.10.2009)
Просмотров: 956 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Имя *:
Email *:
Код *:
Форма входа

Группа Steam

Наша кнопка

Поиск

Друзья сайта


  • Официальный блог


  • YIIbIpu-TEAM


  • DETLER-TEAM



  • Copyright WEDGe © 2016