Управление актерами в Oblivion на The Elder Scrolls Gameplay Modding: Туториалы по CS
Главная » Файлы » Oblivion Туториалы » Туториалы по CS
Управление актерами в Oblivion
01.11.2012, 20:26

TES4 Construction Set


~ Управление актерами в Oblivion ~

Настоящий материал посвящен т.н. актерам (существам и NPC) в мире Oblivion и описанию управления их поведением с помощью выдачи им заданий (пакетов).


Включены разделы :

Актеры

Существа

Кнопка AI

Пакеты

-- Флажки

-- 12 типов пакетов

Актеры

Актеры являются классом объектов, которые работают с программами ИИ. Они перемещаются в мире, могут вступать в схватки, взаимодействовать с объектами в мире, например, открывать двери, брать вещи и т. д.


Имеется два вида актеров, creatures (создания - животные, монстры) и NPCs (персонажи). Многие настройки для этих двух классов идентичны, но есть и серьезные различия.


Reference Fields (Поля ссылок на другие объекты)

Считается, что все ссылки будут неизменны, то есть по ходу игры не будут изменяться.


Ownership Tab (Собственность):

Имеет смысл только для лошадей, используется для того, что бы была возможность отследить случаи конокрадства. Доступ к этому окну можно получить, поместив лошадь в игровой мир. Для этого можно в окне Рендеринга дважды кликнуть на лошади мышкой (или в списке объектов, выбрав в контекстном меню пункт Edit).
Появится окно, показанное на рисунке ниже, в нем можно будет выбрать хозяина лошади, или фракцию, которой принадлежит лошадь.


Merchant Container Tab (сундук торговца):

Имеет смысл только для NPC - торговцев. Указываются контейнеры, в которых лежат купленные ими товары. Это сделано для того, что бы не Игрок не мог перегрузить торговца, мешая ему перемещаться. Как правило, эти контейнеры помещаются за пределами игрового пространства, что бы Игрок не мог их активировать. Так же эти контейнеры могут требовать ключ для открытия. Для того, что бы избежать конфликтов в плагине добавляйте вещи торговцу в отдельный контейнер.


Travel Horse Tab (лошадь для путешествий):

Если NPC путешествует по Тамриелю, и находится поблизости от этой лошади, он попытается использовать её для путешествий. Для этого еще необходимо установить в пакете ИИ флаг Use Horse.


Источник: http://cs.elderscrolls.com/constwiki/index.php/Category:Actors




Creatures (существа)


Существа (Creatures) это актеры, которые не могут разговаривать, совершать преступления, носить броню и одежду, совершать карманные кражи. Основное их предназначение - это сражения.


  • ID: Идентификатор объекта.
  • Name: Отображаемое имя объекта.
  • Script: Активный скрипт для всех копий этого объекта. Выбрав кнопку помеченную - (…), можно просмотреть и (или) изменить текст скрипта.
  • Type: Типы Creatures подробней можно посмотреть в таблице








CreatureУстановки по умолчанию, нет специальных свойств
DaedraНе используется
GiantСпециально для неподвижных созданий
HorseМожно активировать и поехать
Humanoid Не используется
UndeadИспользуется для Undead, существо не теряет Fatigue (усталость)


  • Weapon & Shield: Флаг для того, что бы указать использует Creatures оружие и (или) защиту (шит). Например, скелеты - они используют оружие и щиты…
  • Level: Уровень существа, используется, для расчета сопротивления, некоторым заклинаниям иллюзий. Если установлен флаг PC Level Offset, тогда Level заменяется на offest, то есть указывается не конкретный уровень, а смешение (отрицательное или положительное значение) по сравнению с уровнем игрока.
  • PC Level Offset: Используется для выравнивания уровня созданий. Активизирует поля Calc Min и Calc Max. При использовании изменяются основные показатели с закладки Stats.
  • Calc Min: Минимальный уровень существа, если активирован флаг PC Level Offset. Уровень не может принять значение меньше чем указанное.
  • Calc Max: максимальный уровень существа, если активирован флаг PC Level Offset. Установка нуля означает, что никаких ограничений на максимальный уровень существа не накладывается.
  • Combat Style: Выбор стиля битвы.
  • Death Item: Когда существо умирает, этот объект добавляется существу.
  • Nif file: Скелет, используемый данным существом.
  • Movement: Вид перемещения, который может использовать существо. Должна иметься соответствующая анимация.

Другие флаги


  • Quest Item: Существо обновляется чаше. Труп не исчезает при обновлении ячейки.
  • No Head: Нет головы, используется для Headless Zombies (безголовых зомби).
  • No Left Arm: Предотвращает проблемы с анимацией боя, для однорукого зомби.
  • No Right Arm: Предотвращает проблемы с анимацией боя, для однорукого зомби.
  • No Combat in Water: Запрещает битву в воде для существ, у которых есть анимация плавания, но нет анимации водного боя.
  • No Low Level Processing: Существо не обновляет пакеты ИИ, пока игрок в других ячейках..
  • Respawn: Копия существа появится в мире через три дня.
  • Can Check Corpse: Разрешает существу останавливаться у трупа.
  • Essential: Существо не может быть убито. Использовать для существ не рекомендуется.
  • No Shadow: Не отображает тень для существа.

Примечание

Отношение существ к игроку не учитывает такие параметры, как слава и штрафы, в отличие от отношений с NPC. Для расчета расположения существ используются атрибут игрока "Привлекательность" и фракция игрока.


Источник: http://cs.elderscrolls.com/constwiki/index.php/Category:Creatures

Кнопка AI

Отображает экран настроек ИИ для этого животного или персонажа


Aggression
Если расположение актера по отношению к другому актеру падает ниже этого уровня, начинается бой. Если установить значение 5 или ниже, бой не начнется ни при каких обстоятельствах, кроме прямой атаки. Установка значения "ноль" приводит к тому, что актер не начнет бой, даже если будет атакован.


Confidence
Вероятность того, будет ли актер атаковать или убегать в бою (мера храбрости или трусости). Эта величина не определяется "броском кубика", а является основой для сложных расчетов. (Выявлено, что при установке значения 5 NPC начинает драться в том случае, если значительно сильнее противника - прим. перев.) Если будет установлено значение 100, актер никогда не убежит.


Energy Level
Определяет, как часто актер перемещается на новую позицию, выполняя пакет Wander.


Responsibility
Определяет "добропорядочность" актера. Установка значения ниже 30 означает, что актер совершит преступление (то есть украдет пищу, если задан пакет Eat (питаться)). Установка значения 100 означает, что актер может сам "сообщить" о преступлении и добавить штраф (bounty) игроку без присутствия стражника. Но при этом актер не может сам задержать нарушителя (то есть не стражник, а "добровольный помощник", права задержать нет, но настучит с удовольствием).


Buys/Sells
Используется только для NPC. Актер покупает или продает эти типы предметов.


Barter Gold
Сумма, на которую NPC может купить товаров у игрока.


Recharge
Флажок, который разрешает NPC оказывать услуги по подзарядке магических вещей.


Repair
Флажок, который разрешает NPC оказывать услуги по ремонту вещей.


Training
Флажок, который разрешает NPC оказывать услуги тренера (давать уроки навыка). В выпадающем списке выбирается умение, а в поле ввода максимальная величина навыка, до которой может тренировать данный NPC.


AI Package List
Это - список пакетов (packages), которые использует данный актер.


Источник: http://cs.elderscrolls.com/constwiki/index.php/AI_Button

Packages (Пакеты)
Packages являются пакетами инструкций ИИ с условиями, когда и как их использовать.

Когда актеру нужно выбрать новый пакет, список просматривается сверху вниз. К выполнению принимается первый пакет с подходящими условиями.


Package Type
Устанавливает основной тип поведения.


Flags
Набор флагов, которые модифицируют поведение для данного пакета.


Door Flags
Любые телепортирующие (т.е. перемещающие в другую ячейку) двери в ячейке, которая принадлежит актеру, будут заперты или открыты в зависимости от того, как эти флаги установлены.


Schedule Tab
Устанавливает временной промежуток во время которого пакет будет работать. Величина не может быть меньше часового блока. Как правило, устанавливаются день и месяц, или день недели, но не одновременно (или - или).


Conditions Tab
Полный набор условий, которые должны быть выполнены для пакета, который будет выбран. Применяется лишь в том случае, если временной промежуток соответствует заданному. "Run on Target" имеет смысл, только если в пакете задана определенная цель (Target).


Location Tab
Определяет локацию, где "проигрывается" данный пакет. Очень рекомендуется использовать только опцию Near Reference. Опция In Cell может порождать непредсказуемое поведение. Если никакая локация не задана, то по умолчанию устанавливается опция Near Current Location.


Near Reference: Выберите область из окна рендеринга или из выпадающих списков.

In Cell: Не рекомендуется. Это может привести к неожиданным последствиям.

Near Current Location: Центрирует позицию пакета (локацию, в которой выполняется пакет) в точке нахождения NPC на время начала работы пакета.

Near Editor Location: Центрирует позицию пакета в точке нахождения NPC по умолчанию. (позицию в редакторе)

Radius: Расстояние от пакетного центра, имеющее смысл. (судя по всему, это радиус действия пакета - прим. перев.)


Target Tab
Некоторые типы пакетов имеют цель, не зависящую от локации.


Specific Reference: Выберите ссылку из окна рендеринга или списка.

Any Object: Выберите конкретный объект (ID) или класс объектов.

Value: Количество таких предметов, если если в пакете происходит взаимодействие с целью, определенной "родовыми" признаками (Generic Target); расстояние до цели, если указана конкретная цель.

Источник: http://cs.elderscrolls.com/constwiki/index.php/Category:Packages

Flags on Packages


Continue if PC near
При установке этого флага, пакет не завершится пока Player рядом (пакет будет повторяться, пока игрок не уйдет). В основном используется для того, чтобы магазин не закрывался, пока игрок в нем находится.


Must Reach Location
Пакет не будет завершен, пока не будет достигнута нужная локация.


Offers Services
Если актер является поставщиком услуг, он предложит услуги во время выполнения данного пакета. То есть для того, что бы актер оказывал услуги необходимо, не только указать в настройках ИИ, что он может оказывать услуги, но и создать пакет, во время действия которого он сможет их оказывать.


Must Complete
Пакет не будет завершен, пока все условия не будут выполнены. То есть цель будет найдена, путешествие окончено, и тд.


Once per day
Пакет будет выполняться только один раз в день. То есть пакет не будет запущен повторно, если с начала предыдущего запуска не прошли еще сутки (24 часа), даже в том случае если пакет удовлетворяет всем условиям запуска. Флаг полезен для того, что бы быть уверенным, что пакет не будет запущен снова сразу по завершению.


Skip Fallout Behavior
Актер не будет отвлекаться на диалоги и другие, не важные в этом пакете, действия. Он будет драться (ради самозащиты), но не по своему желанию.


Always Run
Во время выполнения данного пакета актер будет постоянно бегать. Некоторые пакеты состоят из нескольких включенных пакетов, например пакет Wander состоит из пакетов путешествия или диалога. Не все включенные пакеты будут наследовать этот флаг. Во время путешествия актер будет бегать, а во время диалога будет идти. Это можно исправить, используя скриптовую команду ForceRun.


Always Sneak
Актер всегда крадется в течение этого пакета. Некоторые пакеты состоят из нескольких включенных пакетов, например пакет Wander состоит из пакетов путешествия или диалога. Не все включенные пакеты будут наследовать этот флаг. Во время путешествия актер будет красться, а во время диалога будет идти. Это можно исправить, используя скриптовую команду ForceSneak.


Allow Swimming
Актер не будет плыть к цели, если не установлен этот флаг.


Allow Falls
Если этот флаг не установлен, актер не будет прыгать, если в результате падения он получит повреждения.


Armor Unequipped
Во время выполнения этого пакета, актер снимет доспехи и оденет обычную одежду. Очень полезный флаг для сна без доспехов. Примером использования данного флага служит поведение стражников в городе - когда они ложатся спать, они снимают доспехи и спят в обычной одежде.


Weapons Unequipped
Во время выполнения этого пакета, актер уберет оружие. Очень полезный флаг для сна без оружия. Примером использования данного флага служит поведение стражников в городе - когда они ложатся спать, они убирают оружие (исчезают ножны).


Defensive Combat
Актер не атакует NPC или существо, если он (оно) не атакует первым. Обычно актер атакует, если он ненавидит объект, если воруют его вещи или если нападают на его друзей. Данный флаг отменяет это поведение. Исключение составляют пакеты Accompany, Escort и Follow, в таком случае актер будет атаковать, если атакована цель (указанная в Target Tab пакета).

Door Flags

-- At package start: Когда пакет начнется, актер откроет или запрет все двери в ячейке.

-- When at location: Во время выполнения пакета актер поддержит двери в запертом или открытом состоянии. Если другой актер или игрок изменят состояние двери, тогда актер вернет все назад.

-- At package end: Когда закончится пакет, актер запрет или откроет все двери в ячейке.


Источник: http://cs.elderscrolls.com/constwiki/index.php/Flags_on_Packages

Пакеты, типы


Имеется 12 типов пакетов. В пакетах Wander и Travel есть три варианта в зависимости от установки флагов, Nothing checked (ничего не выбрано), Must Complete, Must Reach Location (выбраны соответствующие флаги, Must Reach Location и Must Complete). Ниже смотрите описание типов пакетов инструкций.


1. Accompany Package


Цель: Кто (или что) будет сопровождаться. Для Accompany Package задание цели необходимо .

Позиция: Не применима. Актер следует за своей целью в определенном радиусе.

При продолжительности (Duration), равной нулю, пакет будет выполняться непрерывно, до тех пор, пока не придет время для пакета с более высоким приоритетом.


Источник: http://cs.elderscrolls.com/constwiki/index.php/Accompany_Package

2. Ambush Package (засада)


Позиция: Актер перемещается в позицию и ждет появления цели в радиусе действия.

Цель: Актер находит эту цель, как только она появилась в радиусе Location Tab. Дальнейшие действия актера зависят от других параметров.

Актер перемещается, что бы оказаться в досягаемости цели, и "активирует" её. Значение "активации" зависит от цели.
NPC - Беседа с ним или битва, если актер не любит её (цель).

Creature (животное) - Атакует.

Object (объект) - Поднимает.

Container (контейнер) - Открывает.

Chair (стул) - Садиться на него.

Door (дверь) - Открывает. Проходит через, для телепортационных дверей.


Источник: http://cs.elderscrolls.com/constwiki/index.php/Ambush_Package



3. Cast Magic Package


Позиция - это то место, где вы хотите, стобы кастовалось заклинание. Это означает, если позиция является ссылкой (reference), а заклинание накладывается на касание или дистанционно, тогда это - предполагаемая цель. Целью пакета является заклинание, которое вы хотите использовать. Это может быть специфическим заклинанием, которое будет использовано, даже если его нет у них в списке заклинаний. Если вы выбираете объектный тип, тогда используются заклинания только из их списка заклинаний.


Позиция: Цель для наложения заклинания (используется, если заклинание действует на цель при касании или дистанционно)

Цель: Заклинание, которое будет кастоваться.


Источник: http://cs.elderscrolls.com/constwiki/index.php/Cast_Magic_Package

4. Eat Package


Позиция: Показывает, где актер присядет, чтобы поесть. Это может быть определенный стул в определенном кабаке, или вся ячейка таверны. В общих чертах, NPCs попытается присесть где-нибудь, чтобы поесть.

Цель: Если в пакете указана цель, тогда актер должен иметь этот ингредиент или искать его с целью слопать. Цель должна быть ингредиентом.


Для того, чтобы есть актер должен иметь в инвентаре ингредиент, который восстанавливает запас сил (fatigue). Если у него (неё) нет еды, они попытаются приобрести еду, покупая, убивая, крадя или находя её. Актер с законопослушностью (responsiblilty) выше 30 не украдет или не убьет ради пищи (если это не - животное). Если они не могут найти пищу, которую они могут использовать, они впадают в состояние поисков (wander state) (начинает бродить) и периодически ищут пищу.


Источник: http://cs.elderscrolls.com/constwiki/index.php/Eat_Package

5. Escort Package


Цель: Кто (или что) будет экскортироваться. Escort Package (пакет охраны) наложит и follow package (пакет следования/сопровождения) на цель, если цель - актер.

Позиция: Точка следования пакета охраны. Позиция требуется для выполнения пакета охраны. (Точка, куда будет отведена цель)

Если сопровождаемый актер отстает на определенную дистанцию, тогда сопровождающий актер остановится и подождет, запуститься анимация "come along" или возвратится к актеру, чтобы оказаться в пределах диапазона. Диапазон задается двумя игровыми величинами, одной для улицы, другой для помещений.

Если сопровождается Игрок, тогда пакет следования не добавляется. Так же расстояние ожидания (wait distance) задается в настройках цели. Рекомендуется задавать wait distance большим, чем 400.


Источник: http://cs.elderscrolls.com/constwiki/index.php/Escort_Package

6. Find Package

Позиция: Опциональна (если не определена, то по умолчанию текущая позиция). Когда актер достигает локации, он начинает поиск (в пределах заданного радиуса = fAIAcquireObjectDistance) и ищет цели, пока не наберет определенное количество (specified Count). Актер пойдет и активизирует каждую из них. Если целей будет недостаточно для достижения значения Count, актер будет во время работы пакета, искать цели в пределе радиуса поиска, периодически меняя область для поиска.

Цель: Актер перемещается пока не окажется в радиусе цели (Target Radius), затем активирует цель. Настройки количества (count setting) показывают, сколько целей нужно активировать.


Актер перемещается, что бы оказаться в досягаемости цели, и "активирует" её. Значение "активации" зависит от цели.

NPC - Беседа с ним или битва, если актер не любит её (цель).

Creature (животное) - Атакует.

Object (объект) - Поднимает.

Container (контейнер) - Открывает.

Chair (стул) - Садиться на него.

Door (дверь) - Открывает. Проходит через дверь (для дверей с телепортацией).


Источник: http://cs.elderscrolls.com/constwiki/index.php/Find_Package

7. Flee Package


Этот пакет заставит убегать из локации или от цели. Если вы не задаете цель, тогда актер убежит из локации и начнет выполнять cower animation (будет усиленно показывать, что боится). Если цель задана, тогда актер убегает от цели и пытается держать расстояние, заданное в настройках. Если он убежит на нужное расстояние, тогда он остановится и присядет (спрячется). Этот пакет будет выполняться до тех пор, пока не начнется другой пакет.

Позиция: Избегаемое место. Игнорируется, если определена цель.

Цель: От кого или от чего убегает. Distance - это расстояние, на котором пытается держать актер от цели.

(Есть подозрение, что пакет не работает, по крайней мере заставить NPCа убегать от игрока не получилось. -прим. перев.)


Источник: http://cs.elderscrolls.com/constwiki/index.php/Flee_Package

8. Follow Package


Цель: Некто (нечто), за кем (чем) будет следовать актер. Цель необходима для этого пакета.

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


Источник: http://cs.elderscrolls.com/constwiki/index.php/Follow_Package

9. Sleep Package


Цель: не используется

Позиция: Место для сна. Это может быть специфическое место, такое как третья кровать в Гильдии магов, или общее, такое как дом Тома. Если это общая позиция, он занимает любую кровать, которая не занята, и не принадлежит другому NPC (если у них не низкая законопослушность (responsibility)). Если они не смогут найти постель, они начнут бродить, периодически проверяя постели.


Источник: http://cs.elderscrolls.com/constwiki/index.php/Sleep_Package

10. Travel Package


Цель: не используется

Позиция: Идти в определенное место. Если актеру приходиться использовать этот пакет снова, тогда актер просто постоит. Если выбран объект мебели, такой как кровать или стул, тогда актер просто посидит на стуле или полежит на кровати.


Duration = 0:



Nothing checked: Актер будет идти, пока не достигнет цели, но возможен вариант, когда начнет работу пакет с более высоким приоритетом.

Must Complete: Актер будет двигаться, пока не завершит путешествие. Пока он не достигнет цели, другой пакет не сможет быть запущен.

Must Reach Location: То же самое что и Must Complete, только новый пакет будет запущен сразу же по прибытию, без обычной паузы.

Duration > 0:



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

Must Complete: Актер путешествует, пока не достигнет позиции. Новый пакет не будет запущен, пока не будет достигнута позиция и не истечет время.

Must Reach Location: Актер путешествует пока не достигнет позиции. Новый пакет не будет запущен, пока не будет достигнута позиция, если актер приходит в локацию до окончания времени, тогда может быть запущен пакет с более высоким приоритетом.


Источник: http://cs.elderscrolls.com/constwiki/index.php/Travel_Package

11. UseItemAt Package


Цель: Это должна быть вещь, которую актер использует. Эта вещь может быть в инвентаре актера, или в локации поблизости.

Позиция: Место куда нужно прийти перед попыткой воспользоваться вещью (целью).

Если имеется соответствующая idle анимация, то она будет приограна.


Источник: http://cs.elderscrolls.com/constwiki/index.php/UseItemAt_Package

12. Wander Package


Цель: не используется

Позиция: Перейти в указанную локацию и бродить там в пределах указанного радиуса. Радиус должен быть больше нуля. Рекомендуемый радиус больше 100. Актер при выполнении этого пакета будет искать людей, пытаясь поговорить с ними, если он окажется в пределах их соответствующего радиуса (расстояния, при котором возможно общение). Если вы не хотите, что бы актер вел беседы, тогда нужно установить skipfallout поведение. Уровень energу определяет, как часто актер будет перемещаться. Если они найдут стул/скамью в радиусе "брожения" тогда они, возможно, присядут.


Duration = 0:



Nothing checked: Бродит, пока не найдутся более важные дела (пакет с большим приоритетом).

Must Complete: Не имеет смысла.

Must Reach Location: Другой пакет не запустится, пока не будет достигнута локация. После чего бродит, пока не найдутся более важные дела.

Duration > 0:



Nothing checked: Бродит, пока не истечет промежуток времени (Duration) или не найдутся более важные дела.

Must Complete: Бродит, пока не истечет промежуток времени (Duration). Другой пакет не будет запущен, пока не будет достигнута локация и не истечет время.

Must Reach Location: Другой пакет не запустится, пока не будет достигнута локация. После чего будет бродить оставшееся время, если не найдется более важных дел.


Дополнение: Для того чтобы NPC не наталкивались на стены ,вы должны сначала создать "priority path". Для того чтобы сделать это, необходимо нажать на кнопку режима пути, затем при нажатых CTRL и ALT, проложите путь путь следования NPC.


Источник: http://cs.elderscrolls.com/constwiki/index.php/Wander_Package

Перевод и комментарии © Василий "fez" Алёхин





Категория: Туториалы по CS | Добавил: H@ACKER
Просмотров: 1304 | Загрузок: 0 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Загрузка...