Job Tree

Файл Job Tree - это файл с расширением .w2job, используемый в разработке для определения и управления последовательностями анимаций NPC. В редакторе представляется в виде иерархического дерева, состоящего из узлов. Каждый узел может содержать анимации, быть зацикленным и включать другие узлы, создавая сложные последовательности действий.

Узлы

Узлы в файле Job Tree представляют собой основные строительные блоки для определения последовательностей анимаций NPC.

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

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

Также узел имеет несколько дополнительных компонентов:

  • Enter animation: Анимация, которая запускается, когда NPC входит в данный узел.

  • Leave animation: Анимация, которая выполняется, когда NPC покидает узел.

  • Fast leave animation: Быстрая анимация покидания, выполняемая при необходимости быстрого завершения действия.

Узлы могут быть зацикленными, с позначкой LOOPED, что означает, что анимации внутри этого узла будут повторяться установленное количество итераций.

Кроме того, каждый узел имеет набор валидных категорий анимаций, установленных в свойстве validCategories. Это позволяет связывать узел с определенными типами NPC или ситуациями, например, один узел может быть валидным только для мужских персонажей, а другой — для женских. Категория, с которой будет воспроизводиться Job Tree, выбирается при подключении Action Point в расписании конкретного NPC в Community файле.

Анимация

Объект узла

Класс: CJobTreeNode

validCategories

Тип: <array[string]>

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

К примеру если категория Action Point выбрана как work_man, то будут исполнены анимации только тех узлов для которых эта категория будет в списке валидных.

selectionMode

Тип: <enum>

Определяет режим выбора анимаций в узле:

Режим
Описание

Sequence

Анимации будут воспроизводиться по порядку, сверху вниз.

Random

Анимации будут воспроизводиться в случайном порядке.

iterations

Тип: <int>

Указывает, сколько раз узел будет воспроизводиться. Если установлено значение больше 1, узел будет повторять свои анимации заданное количество раз.

leftItem

Тип: <string>

Определяет, какой предмет может быть в левой руке NPC во время выполнения анимаций в данном узле.

rightItem

Тип: <string>

Определяет, какой предмет может быть в правой руке NPC во время выполнения анимаций в данном узле.

looped

Тип: <bool>

Указывает, является ли узел зацикленным. Если установлено значение true, анимации в узле будут повторяться до тех пор, пока не произойдет внешнее прерывание.

Объект анимации

Класс: CJobActionBase

categoryName

Тип: <string>

Определяет категорию анимации. Это позволяет связывать анимацию с определенной группой NPC или действиями. Например, "work_man" указывает, что анимация относится к категории работ для мужских персонажей.

animName

Тип: <string>

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

animBlendIn

Тип: <float>

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

animBlendOut

Тип: <float>

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

fireBlendedEvents

Тип: <bool>

?

allowedLookAtLevel

Тип: <enum>

Определяет уровень взгляда на игрока, разрешенный для NPC во время выполнения анимации.

Значение
Описание

Body

NPC будет смотреть на уровень тела.

Head

NPC будет смотреть на уровень головы.

Eyes

NPC будет смотреть на уровень глаз.

Null

NPC не будет смотреть на игрока.

ignoreIfItemMounted

Тип: <string>

Определяет название предмета при наличии которого у NPC анимация будет игнорироваться и не воспроизводиться. Значение None указывает, что анимация не будет игнорироваться.

isSkippable

Тип: <bool>

?

Класс: CJobAction

place

Тип: <string>

Указывает на тэг вейпоинта который установлен в EntityTemplate данного ActionPoint.

itemName

Тип: <string>

Название предмета, который должен взять или положить NPC. Если у NPC уже есть этот предмет, он его положит; если его нет - он его возьмет.

Last updated