Behavior Trees в Unreal Engine 4 (2 стр)
Автор: std::cin
Руководство по узлам Behavior Tree
Это руководство по узлам, по умолчанию доступных в редакторе Behavior Tree. Есть пять типов узлов дерева поведения:
Тип | Описание |
---|---|
Composite (Составной) | Эти узлы определяют корень ветви и базовые правила того, как выполняется эта ветвь. |
Task (Задача) | Эти листья дерева поведения, узлы, которые "выполняют" действия и не имеют подключения на выходе. |
Decorator (Условный декоратор) | Также известный как условие. Они прикрепляются к другому узлу и принимают решения о том, может ли ветвь в дереве, или в одном узле, быть выполнена. |
Service (Служба) | Они прикрепляются к составным узлам (Composite), и выполняются с заданной частотой, до тех пор пока их ветвь выполняется. Они часто используются, чтобы сделать проверки и обновления Blackboard. Они занимают место традиционных параллельных узлов в других системах Behavior tree. |
Root (Корень) | Корневой узел является уникальным в дереве поведения и является начальной точкой для дерева поведения. Он может иметь только одно соединение, и вы не можете прикрепить декораторов или службы к нему. Корневой узел не имеет собственных свойств, но выбрав его, вы увидите свойства дерева в панели Details, где вы можете установить для него нужную Blackboard.
![]() |
Composite - составные узлы
Составные узлы определяют корень ветви и базовые правила того, как выполняется эта ветвь. Они могут иметь Условные Декораторы применяемые к ним, чтобы изменить ввод в их ветви или даже отменить выполнение в середине. Кроме того, они могут иметь Службы, прикрепленные к ним, которые будут активны только тогда, пока дочерние узлы этого составного узла выполняются.
Узел Selector

Узел Selector выполняет дочерние узлы слева направо и останавливает их выполнение когда любой из дочерних узлов выполнится успешно. Если дочерние узлы узла Selector выполняются успешно, то и он заканчивает выполнение успешно, и наоборот.
Свойство | Описание |
---|---|
Node Name | Имя узла которое будет отображаться в графе Behavior Tree. |
Узел Sequence

Узел Sequence выполняет дочерние узлы слева направо и останавливает их выполнение когда один из дочерних узлов завершит выполнение неудачно. Если все дочерние узлы узла Sequence выполняются успешно, то и он заканчивает выполнение успешно, и наоборот.
Свойство | Описание |
---|---|
Node Name | Имя узла которое будет отображаться в графе Behavior Tree. |
Узел Simple Parallel

Узел Simple Parallel позволяет одному узлу главной задачи, выполняться по всему дереву и выполнять фоновую задачу. После завершения основной задачи, установка режима Finish Mode указывает, должен ли узел закончить работу и прервать работу вторичного дерева, или он должен ждать завершения работы вторичного дерева, чтобы закончить работу.
Свойство | Описание |
---|---|
Node Name | Имя узла которое будет отображаться в графе Behavior Tree. |
Finish Mode |
Immediate - Как только главная задача завершиться, фоновая задача прервёт своё выполнение. Delayed - Главная задача будет ждать завершения работы фоновой задачи. |
Decorator
Декораторы, также известные как условия в других системах деревьев поведения, присоединяются к их Составному узлу (Composite) или Задаче (Task), и определяют будет ли выполняться дочернее дерево или отдельный дочерний узел.
Blackboard

Декоратор Blackboard будет проверять установлено ли значение по заданному ключу в Blackboard.
Свойство | Описание |
---|---|
Node Name | Имя узла которое будет отображаться в графе Behavior Tree. |
Notify Observer |
On Result Change - Если условие изменилось. On Value Change - Если наблюдаемое значение Blackboard изменилось. |
Observer Aborts |
None - Ничего не делать. Self - Прервать свою работу и все под-деревья работающие под этим узлом. Lower Priority - Прервать все узлы справа от этого узла. Both - Прервать свою работу, все под-деревья работающие под этим узлом и все узлы справа от этого узла. |
Key Query |
Is Set - Значение установлено? Is Not Set - Значение не установлено |
Blackboard Key | Ключ по которому будет проверяться значение. Это часто используется для типов данных которые могут возвращать None, такие как Object, или другие инициализированные значения(0, false, {0,0,0}, и т.д....). |
Compare Blackboard Entries

Декоратор Compare Blackboard Entries сравнивает значения двух ключей в Blackboard и блокирует или не блокирует выполнение узла в зависимости от результата сравнения.
Свойство | Описание |
---|---|
Node Name | Имя узла которое будет отображаться в графе Behavior Tree. |
Operator |
Is Equal To Значения равны? Is Not Equal To Значения не равны? |
Blackboard Key A | Первый ключ, значение которого будет использоваться при сравнении |
Blackboard Key B | Второй ключ, значение которого будет использоваться при сравнении |
Observer Aborts |
None - Ничего не делать. Self - Прервать свою работу и все под-деревья работающие под этим узлом. Lower Priority - Прервать все узлы справа от этого узла. Both - Прервать свою работу, все под-деревья работающие под этим узлом и все узлы справа от этого узла. |
Composite

Декоратор Composite позволяет вам задать более расширенную логику которая встроена в узлы, но не такая сложную как blueprint. После того как вы добавили декоратор Composite к узлу, щелкните два раза его для того чтобы перейти в граф логики этого декоратора. Щелкнув правой кнопкой в области графа, вы можете добавить узлы декоратора как самостоятельные узлы, которые можно затем связать с помощью узлов AND, OR и NOT, для того чтобы задать логику поведения декоратора.

Свойство | Описание |
---|---|
Composite Name | Имя узла которое будет отображаться в графе Behavior Tree. |
Show Operations | Включает отображение операторов декоратора в текстовом представлении. |
Conditional Loop

Декоратор условного цикла выполняется циклически пока соблюдается условие.
Свойство | Описание |
---|---|
Node Name | Имя узла которое будет отображаться в графе Behavior Tree. |
Key Query |
Is Set - Значение установлено? Is Not Set - Значение не установлено |
Blackboard Key | Ключ по которому будет проверяться значение. Это часто используется для типов данных которые могут возвращать None, такие как Object, или другие инициализированные значения(0, false, {0,0,0}, и т.д....). |
Cone Check
Декоратор Cone Check получает три векторных ключа: первый - местоположения, где начинается конус, второй - направление конуса, а третий - позиция которую нужно проверить - находится ли она в конусе. Угол конуса задаётся половиной угла, то есть если нужно указать конус с углом 90 градусов, вы указываете 45 градусов.
Свойство | Описание |
---|---|
Cone Half Angle | Половина угла конуса. |
Observer Aborts |
None - Ничего не делать. Self - Прервать свою работу и все под-деревья работающие под этим узлом. Lower Priority - Прервать все узлы справа от этого узла. Both - Прервать свою работу, все под-деревья работающие под этим узлом и все узлы справа от этого узла. |
Cone Origin | Позиция начала конуса. |
Cone Direction | Направление конуса. |
Observed | Позиция или Actor. который будет проверяться на видимость конусом. |
Inverse Condition | Инверсия результата условия. |
Node Name | Имя узла которое будет отображаться в графе Behavior Tree. |
Cooldown
Декоратор Cooldown блокирует выполнение узла на заданное время.
Свойство | Описание |
---|---|
Cool Down time | Время в секундах. |
Observer Aborts |
None - Ничего не делать. Self - Прервать свою работу и все под-деревья работающие под этим узлом. Lower Priority - Прервать все узлы справа от этого узла. Both - Прервать свою работу, все под-деревья работающие под этим узлом и все узлы справа от этого узла. |
Node Name | Имя узла которое будет отображаться в графе Behavior Tree. |
Does Path Exist
Декоратор Does Path Exist проверяет, может ли путь проложен между двумя точками: Blackboard Key A и Blackboard Key B.
Свойство | Описание | ||||||
---|---|---|---|---|---|---|---|
Blackboard Key A | Первая точка маршрута. | ||||||
Blackboard Key B | Вторая точка маршрута. | ||||||
Path Query Type |
| ||||||
Inverse Condition | Инверсия результата. | ||||||
Observer Aborts |
None - Ничего не делать. Self - Прервать свою работу и все под-деревья работающие под этим узлом. Lower Priority - Прервать все узлы справа от этого узла. Both - Прервать свою работу, все под-деревья работающие под этим узлом и все узлы справа от этого узла. | ||||||
Filter Class | Определяет какие данные навигации должны быть использованы. Если задано None, то данные по умолчанию будут использованы. | ||||||
Node Name | Имя узла которое будет отображаться в графе Behavior Tree. |
Force Success
Декоратор Force Success принудительно выставляет результат выполнение узла как успешный. То есть узел завершает свою работу всегда успешно, вне зависимости от результата выполнения.
Свойство | Описание |
---|---|
Node Name | Имя узла которое будет отображаться |
#ИИ, #Behavior tree, #Unreal Engine
30 сентября 2016 (Обновление: 1 июня 2020)