Version:

Behavior Tree Editor节点

这是 BT 编辑器中所有可用的 Behavior Tree (行为树) 节点的参考。

叶操作节点

没有子节点的节点

Ship movement

Ship_Drift

保持飞船以当前速度移动(并允许它受到外部影响)

输入类型必需默认描述
LookEntityId, Positionno船舶指向的方向

输出:


Ship_FlyFlourishSpline

将导航样条线作为华丽的飞行。也就是说 - 直接在飞船前面复制样条并飞行

输入类型必需默认描述
SplineEntityIdyes-要飞的样条曲线
SpeedOverrideFloatno-1.00飞样条线的速度。在吊挂样条曲线时,每帧都会读取此数据。默认值 -1 会导致样条线以通常的速度飞行
DisableAvoidanceBooleannofalse飞行时,此样条线将关闭碰撞避让

输出:


Ship_FlySpline

飞行导航样条线

输入类型必需默认描述
SplineEntityIdyes-要飞的样条曲线
StartAtNearestBooleannofalse是否从样条曲线上的最近点开始
AttackTargetsBooleannotrue如果为 true(默认),则对样条指定的目标触发
AttackUsualTargetBooleannofalse如果为 true,则在飞行样条时面向通常由目标选择器选择的目标并开火。如果指定了样条目标并且 AttackTargets 为 true,则在经过这些特定点时,将覆盖此选项
SpeedOverrideFloatno-1.00飞样条线的速度。在吊挂样条曲线时,每帧都会读取此数据。默认值 -1 会导致样条线以通常的速度飞行
ErrorLimitFloatno-1.00实体可以远离样条线的最大距离。如果超过此距离,则覆盖实体的位置。负数表示无限制(默认),否则必须为 >= 1m
TeleportToStartBooleannofalse与其飞到样条的起点,不如立即将飞船传送到那里
AvoidanceModeStringHashno“Normal”飞行此样条线时,要执行哪种类型的碰撞避免(选项:Off、Normal、Limited)
FailOnJoinFallbackBooleannofalse如果联接回退到使用基于样条的方法,是否使此节点失败。通常,在系统拾取样条时,应将其设置为 true,以避免在系统拾取的样条线的路径与某些对象发生碰撞时发生碰撞

输出:


Ship_GetSplinePoint

从样条曲线获取点

输入类型必需默认描述
SplineEntityIdyes-要从中查找的样条
SplineIndexIntegeryes-查找哪个点
输出类型必需描述
PointPosPositionyes样条点的位置

Ship_Goto

直奔目的地。每次更新都会重新评估目标

输入类型必需默认描述
DestinationEntityId, Positionyes-跳转到哪里
AbsoluteSpeedFloatno0.00以 m/s 为单位的移动速度,如果设置为 0,则使用 RelativeSpeed
RelativeSpeedFloatno1.00移动速度的最大比例 (0.0 - 1.0)
EndDistanceFloatno0.00从终点到完成位置的最小距离
AbsoluteSpeedAtDestinationFloatno0.00到达目标位置时移动的绝对速度,以 m/s 为单位。默认使用 RelativeSpeedAtDestination。当转到实体时,这将被忽略,而是使用实体的当前速度
RelativeSpeedAtDestinationFloatno0.00到达目标位置时移动的相对速度 (0.0 - 1.0)。默认为 stop。当转到实体时,这将被忽略,而是使用实体的当前速度
LookAtDestinationBooleannofalse是否将注视方向设置为注视目标
LookTargetEntityId, PositionnoExplicit look target (optional)显式外观目标(可选)

输出:


Ship_MaintainVel

保持船舶以当前速度行驶

输入类型必需默认描述
VelocityVelocityyes-飞船移动的速度(读取每一帧)
LookEntityId, Positionno船舶指向的方向

输出:


Ship_PathTo

目标的路径。每次更新都会重新评估目标

输入类型必需默认描述
DestinationEntityId, Positionyes-去哪里/要遵循的路径
AbsoluteSpeedFloatno0.00以 m/s 为单位的移动速度,如果设置为 0,则使用 RelativeSpeed
RelativeSpeedFloatno1.00移动速度的最大比例 (0.0 - 1.0)
EndDistanceFloatno0.00从终点到完成位置的最小距离
AbsoluteSpeedAtDestinationFloatno0.00到达目标位置时移动的绝对速度,以 m/s 为单位。 默认使用 RelativeSpeedAtDestination。当转到实体时,这将被忽略,而是使用实体的当前速度
RelativeSpeedAtDestinationFloatno0.00到达目标位置时移动的相对速度 (0.0 - 1.0)。默认为 stop。当转到实体时,这将被忽略,而是使用实体的当前速度
LookTargetEntityId, Positionno显式外观目标(可选)

输出:


Ship_Roll

滚动飞船,通常与另一个移动节点并行执行。从未完成

输入类型必需默认描述
RollRateFloatyes-旋转速率(以 rad/sec 为单位)

输出:


Ship_Stop

使实体完全停止

输入:

输出:


Ship_Track

尝试到达目标实体并保持与目标实体的给定距离。Target 仅在进入时进行评估

输入类型必需默认描述
TargetEntityId, Positionyes-要跟踪的实体或位置
MinAbsoluteSpeedFloatno0.00跟踪时移动的最小速度(以 m/s 为单位),如果设置为 0,则使用 MinRelativeSpeed
MinRelativeSpeedFloatno0.00跟踪时移动的最高速度的最小比例 (0.0 - 1.0)
MaxAbsoluteSpeedFloatno0.00跟踪时移动的最大速度(以 m/s 为单位),如果设置为 0,则使用 MaxRelativeSpeed
MaxRelativeSpeedFloatno1.00跟踪时移动的最高速度的最大比例 (0.0 - 1.0)
DistanceFloatyes-尝试远离目标的距离
LookAtDestinationBooleannofalse是否将注视方向设置为注视目标

输出:


Ship_TurnToTarget

转动飞船以面对目标。读取目标每帧一次,直到完成

输入类型必需默认描述
TargetEntityId, Positionyes-目标实体或船舶指向的位置
MaintainDirectionBooleannofalse如果为 true,则保持恒定速度并旋转以指向目标。 如果为 false,则保持恒定速度,但将速度方向更改为指向目标
ToleranceFloatno1.00在节点完成之前必须达到的方向的容差(以度为单位)

输出:


Character movement

Character_ExactGoto

移动到给定的位置和方向

输入类型必需默认描述
DestinationPositionyes-角色应该去哪里
DirectionVectoryes-角色在目标位置应面向哪个方向
SpeedFloat, StringHashyes-角色移动的速度

输出:


Character_Goto

路径查找和跳转目标

输入类型必需默认描述
DestinationEntityId, Positionyes-去哪里
SpeedFloat, StringHashyes-角色移动的速度
EndDistanceFloatno0.00距要完成的路径终点的距离

输出:


Character_GotoDirectness

以给定的直线接近给定的航点

输入类型必需默认描述
DestinationEntityId, Positionyes-接近的位置
SpeedFloat, StringHashyes-角色移动的速度
EndDistanceFloatno1.00从目的地到完成的距离
DirectnessFloatno1.00方法的直接性

输出:


Character_GotoWaypoint

pathfind 添加到给定输入。当接近完成时,重定向到新的航点(如果已给出)

输入类型必需默认描述
WaypointEntityId, Positionyes-下一个要去的航点
SpeedFloat, StringHashyes-角色移动的速度
EndToleranceFloatno1.00在距当前航点多远处读取下一个航点
输出类型必需描述
DistanceToWaypointFloatyes到当前航点的距离

Character_IsPointReachableNow

如果存在从起点/实体到终点/实体的有效路径,则成功,否则失败

输入类型必需默认描述
StartEntityId, Positionno要从中开始测试的位置/实体。默认值为当前 AI 位置
EndEntityId, Positionyes-要测试的目标位置/实体
ClampRadiusXYFloatno2.00在 XY 平面中的起点和终点上要钳制的半径
ClampRadiusZFloatno2.00在 Z 轴上的起点和终点上要夹紧的半径
MaxPathLengthFloatno要测试的最大路径长度。将默认为从开始位置到结束位置距离的 2 倍

输出:


Character_PathDistance

获取当前路径的长度。如果没有当前路径,则失败

输入:

输出类型必需描述
DistanceFloatyes距要完成的路径终点的距离

Character_SteeringGoto

让 steering 处理此实体的运动(来自其他输入)

输入类型必需默认描述
SpeedFloat, StringHashyes-角色移动的速度

输出:


Character_TurnToFace

使角色转向面向某个方向或位置

输入类型必需默认描述
GoalVector, EntityId, Positionyes-角色要面对的位置、方向或实体
DirToleranceFloatno5.00目标方向的容差(以度为单位)
TurnRateFloatno0.00(可选)覆盖字符转动速率(以度/秒为单位)。如果为零(或更小),则忽略

输出:


Character control

SetStance

设置角色的姿态

输入类型必需默认描述
StanceStringHashno“Stand”要切换到的姿态
StrafingBooleannofalse是否允许扫射

输出:


Conditional

CompareNow

测试 Lua 脚本条件表达式。可以访问实体、个人资料和行为黑板

输入类型必需默认描述
InvertBooleannofalse检查条件是否相反
ConditionStringHashyes-要计算的表达式。必须以布尔值计算(例如,它可以有多个表达式,例如 ands 和 ors)

输出:


EqualsNow

测试两个输入是否相等 (Lhs == Rhs)

输入类型必需默认描述
InvertBooleannofalse检查条件是否相反
LhsAnyyes-要测试的左手值
RhsAnyyes-要测试的右手值

输出:


GreaterThanEqualsNow

测试一个输入是否大于或等于另一个 (Lhs >= Rhs)

输入类型必需默认描述
InvertBooleannofalse检查条件是否相反
LhsInteger, Floatyes-要测试的左手值
RhsInteger, Floatyes-要测试的右手值

输出:


GreaterThanNow

测试一个输入是否大于另一个 (Lhs > Rhs)

输入类型必需默认描述
InvertBooleannofalse检查条件是否相反
LhsInteger, Floatyes-要测试的左手值
RhsInteger, Floatyes-要测试的右手值

输出:


HasTagNow

检查实体是否具有特定标记

输入类型必需默认描述
InvertBooleannofalse检查条件是否相反
TagTagyes-要测试的标签
EntityIdEntityIdyes-要测试的实体的 ID

输出:


HasVariableNow

检查命名变量是否存在

输入类型必需默认描述
InvertBooleannofalse检查条件是否相反
NameStringHashyes-要检查的变量名称(或路径)

输出:


IsInFrontNow

如果给定的实体或位置具有点积,且我们的当前方向大于指定的最小值,则为 True。

输入类型必需默认描述
InvertBooleannofalse检查条件是否相反
TargetEntityId, Positionyes-要测试的实体或位置
MinDotProductFloatno0.00将目标视为“在前面”的最小点积

输出:


IsInGroupNow

检查实体是否具有特定组的成员身份

输入类型必需默认描述
InvertBooleannofalse检查条件是否相反
EntityIdEntityIdyes-要测试的实体的 ID
GroupIdEntityIdyes-要测试的实体的 ID

输出:


IsInRangeNow

如果两个位置之间的距离在给定范围内,则为 True。

输入类型必需默认描述
InvertBooleannofalse检查条件是否相反
StartEntityId, Positionyes-要测试的实体或位置
EndEntityId, Positionyes-要检查距离的实体或位置
MinRangeFloatno0.00检查通过的最小距离(可选)
MaxRangeFloatno检查通过的最大距离(可选)

输出:


IsValidIDNow

如果给定的实体 ID 不为空且实体存在,则为 True

输入类型必需默认描述
InvertBooleannofalse检查条件是否相反
EntityIdEntityIdyes-Entity ID

输出:


LessThanEqualsNow

测试一个输入是否小于或等于另一个 (Lhs <= Rhs)

输入类型必需默认描述
InvertBooleannofalse检查条件是否相反
LhsInteger, Floatyes-要测试的左手值
RhsInteger, Floatyes-要测试的右手值

输出:


LessThanNow

测试一个输入是否小于另一个 (Lhs < Rhs)

输入类型必需默认描述
InvertBooleannofalse检查条件是否相反
LhsInteger, Floatyes-要测试的左手值
RhsInteger, Floatyes-要测试的右手值

输出:


RandomChanceNow

在给定的概率下为 True

输入类型必需默认描述
InvertBooleannofalse检查条件是否相反
ProbabilityFloatyes-成功概率(范围 0-1)

输出:


SignalHasParameterNow

如果给定信号包含具有给定名称的参数,则为 True

输入类型必需默认描述
InvertBooleannofalse检查条件是否相反
SignalBlackboardyes-要查询的信号
ParameterNameStringyes-要查找的参数名称,如果信号包含子黑板,则可能是路径

输出:


TimeGreaterThanNow

测试自时间戳以来是否经过了超过某个时间间隔。如果未设置时间戳,则为 False

输入类型必需默认描述
InvertBooleannofalse检查条件是否相反
TimestampTimestampyes-事件的时间戳
IntervalFloatyes-自事件开始以来的最短时间

输出:


TimeLessThanNow

测试自时间戳以来经过的时间间隔是否小于特定时间间隔。如果未设置时间戳,则为 False

输入类型必需默认描述
InvertBooleannofalse检查条件是否相反
TimestampTimestampyes-事件的时间戳
IntervalFloatyes-自事件以来的最长时间

输出:


Math

Add

将两个输入相加。输入必须是有意义的类型 (int, float, vector)

输入类型必需默认描述
InputAInteger, Float, Vector, Position, Velocityyes-任何类型的首次输入
InputBInteger, Float, Vector, Position, Velocityyes-与 InputA 类型相同的第二个输入
输出类型必需描述
ResultAnyyesInputA + InputB

Divide

将一个输入除以另一个输入。分子输入必须是可整除的类型 (int, float, vector)。分母必须是一个数字 (int, float)

输入类型必需默认描述
InputAInteger, Float, Vectoryes-InputA - 分子输入
InputBInteger, Floatyes-InputB - 分母输入
输出类型必需描述
ResultAnyyesInputA/InputB

Dot

计算两个向量的点积

输入类型必需默认描述
InputAVectoryes-第一个向量
InputBVectoryes-第二个向量
输出类型必需描述
ResultFloatyesInputA . InputB

Length

获取向量或速度的长度

输入类型必需默认描述
VectorVector, Velocityyes-向量或速度
输出类型必需描述
ResultFloatyes向量的长度

Multiply

将两个输入相乘。输入的类型必须有意义相乘 (int, float, vector)

输入类型必需默认描述
InputAInteger, Float, Vector, Position, Velocityyes-第一个输入数字
InputBInteger, Float, Vector, Position, Velocityyes-第二个输入数字
输出类型必需描述
ResultAnyyesInputA * InputB

Normalize

规范化向量。如果向量没有长度,则返回 (0,0,0)

输入类型必需默认描述
VectorVectoryes-向量
输出类型必需描述
ResultVectoryes与 Vector 方向相同的单位长度向量

Subtract

从一个输入中减去另一个输入。输入必须是有意义的减去类型 (int, float, vector)

输入类型必需默认描述
InputAInteger, Float, Vector, Position, Velocityyes-任何类型的首次输入
InputBInteger, Float, Vector, Position, Velocityyes-与 InputA 类型相同的第二个输入
输出类型必需描述
ResultAnyyesInputA - InputB

Character_PredictPosition

预测实体在 x 秒内的位置,假设它们在导航网格上继续以恒定速度移动

输入类型必需默认描述
EntityEntityIdyes-要预测的实体
TimeFloatyes-提前多远预测位置
输出类型必需描述
PositionPositionyes预测位置

Character_RandomPointInRange

在代理的给定导航距离内(或任意位置)查找随机点

输入类型必需默认描述
RangeFloatyes-到返回点的最大路径距离 (近似值)
MinDistanceFloatno0.00到返回点的最小直线距离 (近似值)
AngleFloatno0.00用于限制搜索方向的线段角度(以度为单位)。如果零(或更小)则忽略,如果大于 180,则被钳制
DirectionVectorno将搜索方向限制为有关此向量的线段
CenterEntityId, Positionno将搜索集中在此位置,而不是代理的当前位置
输出类型必需描述
PointPositionyes生成的点
DistanceFloatno到点的近似非字符串拉取路径距离

Character_RandomPointWithDirectness

找到最接近给定方向的随机点

输入类型必需默认描述
DestinationEntityId, Positionyes-要计算其直接性的目标位置或实体
DirectnessFloatyes-要为其生成点的目标方向
RangeFloatyes-到返回点的最大路径距离 (近似值)
MinDistanceFloatno0.00到返回点的最小直线距离 (近似值)。默认值 = 0.0f
DirectionBiasVectorno得分时的偏差方向
输出类型必需描述
PointPositionyes生成的点

CountEntitiesWithTags

搜索所有实体并查找与指定标签匹配的实体。返回匹配实体的数组。如果没有实体匹配,则节点失败

输入类型必需默认描述
TagTagyes-要搜索的标记
ExtraTagTagno""可选的 extra 标记(如果指定)也必须存在
ExcludeIdEntityIdno要排除的可选实体
RangeFloatno0.00从实体的当前位置开始搜索的最大距离
输出类型必需描述
CountIntegeryes找到的实体数

FindEntitiesWithTags

搜索所有实体并查找与指定标签匹配的实体。返回匹配实体的数组。如果没有实体匹配,则节点失败

输入类型必需默认描述
TagsStringHash, BlackboardArrayyes-要搜索的标记或标记数组
ExcludeIdEntityIdno要排除的可选实体
RangeFloatno0.00从实体的当前位置开始搜索的最大距离
输出类型必需描述
ResultsBlackboardArrayyes所选实体的 ID

FindNearestEntityWithTags

搜索 Range 中的所有实体,并查找与指定标签匹配的实体。返回集合中最近的实体。如果没有实体匹配,则节点失败

输入类型必需默认描述
TagTagyes-要搜索的标记
ExtraTagTagno""可选的额外标签也可以搜索
ExcludeIdEntityIdno要排除的可选实体
RangeFloatno0.00从实体的当前位置开始搜索的最大距离
输出类型必需描述
EntityIdEntityIdyes最近实体的 ID
DistanceFloatno到最近实体的距离

FindRandomEntityWithTags

搜索所有实体并查找与指定标签匹配的实体。返回从集合中随机选择的实体。如果没有实体匹配,则节点失败

输入类型必需默认描述
TagTagyes-要搜索的标记
ExtraTagTagno""可选的额外标签也可以搜索
ExcludeIdEntityIdno要排除的可选实体
RangeFloatno0.00要从实体的当前位置搜索的最大距离。值为零表示没有距离限制
输出类型必需描述
EntityIdEntityIdyes所选实体的 ID

GetNextNavPoint

查找导航路线上下一个点的 ID。如果没有下一个点,则失败

输入类型必需默认描述
CurrentPointEntityIdyes-当前点的 id
输出类型必需描述
NextPointEntityIdyes下一个点的 id

Ship_RandomPointInRange

在代理的给定导航距离(或任意位置)内查找八叉树中的随机点

输入类型必需默认描述
RangeFloatyes-到返回点的最大路径距离 (近似值)
MinDistanceFloatno0.00到返回点的最小直线距离 (近似值)
CenterEntityId, Positionno将搜索集中在此位置,而不是代理的当前位置
ClampStartPointBooleannofalse将原点搜索限制为可导航的八叉树
输出类型必需描述
PointPositionyes生成的点

Utility

AddTag

向实体添加标签

输入类型必需默认描述
TagTagyes-要添加的标签
EntityIdEntityIdyes-要将标签添加到的实体的 ID

输出:


ArrayBreak

跳出当前迭代数组循环,另请参阅 BTIterateOverArray

输入类型必需默认描述
BreakResultStringHashyes-判断此断点是成功还是失败

输出:


Character_AdjustSpeedToTargetDist

根据与目标的距离计算速度

输入类型必需默认描述
StartEntityId, Positionno可选 position 或 id 来计算距离,默认为 self
EndEntityId, Positionyes-要计算距离的位置或 id
FarSpeedFloat, StringHashno速度的可选名称或以 m/s 为单位的速度值,用于最远的距离,默认为当前速度
FarDistanceFloatyes-开始向 CloseSpeed 进行插值速度的距离
CloseSpeedFloat, StringHashno在近距离内使用的速度可选名称或以 m/s 为单位的速度值,默认为当前速度
CloseDistanceFloatyes-完成朝 CloseSpeed 的插值速度的距离
输出类型必需描述
ResultFloatyes计算出的速度值

Character_Speed

将命名速度(例如 ‘Walk’、‘Run’)转换为此实体的数值,并应用可选的百分比修饰符

输入类型必需默认描述
SpeedFloat, StringHashno速度的可选名称或以 m/s 为单位的速度值,默认为当前速度
StanceStringHashno要映射的可选姿态,默认为当前姿态
MultiplierFloatno1.00应用于速度的可选乘数(以简化计算,例如比步行速度快 10%)
输出类型必需描述
ResultFloatyes计算出的速度值

ClaimEntity

声明实体的所有权并删除其“avaliable”标签

输入类型必需默认描述
EntityIdEntityIdyes-要声明的实体的 ID
ObjectSlotStringHashyes-实体所有权黑板上存储对象 ID 的位置。每个 API 中只能存储一个对象

输出:


ClearTimestampVariable

清除时间戳的值,以便任何大于或小于比较的值将始终返回 false

输入类型必需默认描述
NameStringHashyes-要清除的时间戳变量的名称

输出:


Compute

评估 Lua 脚本条件表达式。可以访问 Entity、Profile 和 Behavior 黑板

输入类型必需默认描述
ExpressionStringHashyes-要计算的表达式
输出类型必需描述
ResultAnyyes表达式的结果

Copy

将值(常量或变量)复制到变量

输入类型必需默认描述
InputAnyyes-
输出类型必需描述
OutputAnyyes值的副本

DistanceBetweenPoints

获取两点之间的距离,其中两点都可以指定为 KytPos 或实体 ID

输入类型必需默认描述
Point1EntityId, Positionyes-第一个位置或 id
Point2EntityId, Positionyes-第二个位置或 id
输出类型必需描述
DistanceFloatyes点之间的距离

DistanceToBoundsEdge

获取实体到边界对象最近边缘的距离,如果超出边界,则为负数

输入类型必需默认描述
BoundsIdEntityIdyes-bounds 对象的 id
输出类型必需描述
DistanceFloatyes到边界边缘的距离,如果超出边界,则为负数

EraseTag

从实体中删除标记

输入类型必需默认描述
TagTagyes-要擦除的标记
EntityIdEntityIdyes-要从中擦除标签的实体的 ID
IncludeChildrenBooleannofalse是否同时擦除此标签的子项

输出:


EraseVariable

擦除指定的变量

输入类型必需默认描述
NameStringHashyes-要擦除的变量的名称

输出:


Execute

执行 Lua 脚本表达式。可以访问 Entity、Profile 和 Behavior 黑板

输入类型必需默认描述
ExpressionStringHashyes-要执行的表达式

输出:


Fail

什么都不做;首次更新时返回失败

输入:

输出:


GenerateRandom2dDirection

在 x-y 平面上向前方向的 +/- 度内生成随机 2d 方向

输入类型必需默认描述
ForwardVectoryes-要生成的正向
AngleFloatno180.00向前方向两侧的最大允许角度(以度为单位)(允许的范围 0 - 180)
输出类型必需描述
DirectionVectoryes生成的随机方向

GenerateRandomDirectionOnPlane

在给定平面法线的平面上生成随机方向

输入类型必需默认描述
NormalVectoryes-平面法线
输出类型必需描述
DirectionVectoryes生成的随机方向

GenerateRandomFloat

生成从 Min 到 Max 的随机浮点值,可选择缩放

输入类型必需默认描述
MinFloatyes-要生成的最小值(含)值
MaxFloatyes-要生成的最大值(含)值
ScaleFloatno1.00缩放随机生成的整数的值,例如 MinVal = 1.0、MaxVal = 4.0、Scale = 2.0:返回值是从 2.0 到 8.0 的数字
输出类型必需描述
ResultFloatyes生成的随机数

GenerateRandomInt

生成一个从 Min 到 Max 的随机整数值,可选择缩放

输入类型必需默认描述
MinIntegeryes-要生成的最小值(含)值
MaxIntegeryes-要生成的最大值(含)值
ScaleIntegerno1缩放随机生成的整数的值,例如 MinVal = 1、MaxVal = 4、Scale = 2:返回值是从 2 到 8 的数字
输出类型必需描述
ResultIntegeryes生成的随机数

GenerateRandomPosition

在每个轴的 Min 和 Max 约束范围内,从参考位置生成随机位置偏移

输入类型必需默认描述
MinXFloatno0.00要在 X 轴上生成的最小值(含)
MaxXFloatno0.00要在 X 轴上生成的最大值(含)
MinYFloatno0.00要在 Y 轴上生成的最小值(含)
MaxYFloatno0.00要在 Y 轴上生成的最大值(含)
MinZFloatno0.00要在 Z 轴上生成的最小值(含)
MaxZFloatno0.00要在 Z 轴上生成的最大值(含)
ReferencePosPositionyes-生成随机偏移量的位置
输出类型必需描述
ResultPositionyes生成的随机位置

GetArraySize

获取实体的 sate 树并访问其黑板。 [WARNING] 不要尝试更改此节点接收到的黑板的值

输入类型必需默认描述
ArrayBlackboardArrayyes-要返回大小的数组
输出类型必需描述
ArraySizeIntegeryes给定数组的大小

GetDirection

获取两点之间的标准化方向向量,其中任一点都可以指定为 KytPos 或实体 ID

输入类型必需默认描述
StartEntityId, Positionyes-第一个位置或 id
EndEntityId, Positionyes-第二个位置或 id
输出类型必需描述
ResultVectoryes单位长度向量

GetEntityDirection

获取实体指定局部轴在世界空间中的方向

输入类型必需默认描述
EntityIdEntityIdyes-实体的 ID
DirectionStringHashyes-所需本地方向的名称
输出类型必需描述
WorldDirectionVectoryes世界空间中相关方向的单位向量

GetEntityPos

获取实体的位置

输入类型必需默认描述
EntityIdEntityIdyes-实体的 ID
输出类型必需描述
PositionPositionyes实体的位置

GetEntityStateTree

获取实体的 sate 树并访问其黑板。[WARNING] 请勿尝试更改此节点接收到的黑板的值

输入类型必需默认描述
EntityIdEntityIdyes-实体的 ID
输出类型必需描述
StateTreeBlackboardyes返回 Entity State Tree,以访问其黑板

GetEntityTargetBlackboard

返回指向实体的目标黑板的指针。如果不存在 blackboard,则失败

输入类型必需默认描述
EntityIdEntityIdyes-要从中获取黑板的实体的 ID
输出类型必需描述
TargetBBBlackboardyes将黑板定位到输入实体

GetSignalParameter

获取 signal 参数的值

输入类型必需默认描述
SignalBlackboardyes-要查询的信号
ParameterNameStringHashyes-要从 signal 中检索的参数名称,如果 signal 包含子黑板,则可能是 path
输出类型必需描述
ValueAnyyes参数包含的值

InitializeVariable

创建初始化为默认值的行为变量

输入类型必需默认描述
NameStringHashyes-要创建的变量名称
TypeStringHashyes-行为变量的类型

输出:


Log

将消息写入日志

输入类型必需默认描述
MessageStringyes-要写入日志的消息
LevelStringHashno“Normal”消息的严重性

输出:


Noop

在中断之前不执行任何操作

输入:

输出:


OverrideEntityPhysics

覆盖给定帧的实体的物理特性

输入类型必需默认描述
EntityIdEntityIdyes-要覆盖的实体
PositionPositionno覆盖实体的位置(可选)
VelocityVector, Velocityno覆盖实体的速度 (可选)

输出:


PersonalLog

将消息写入实体的个人日志

输入类型必需默认描述
MessageStringyes-要写入个人日志的消息

输出:


PopArrayValue

从数组的末尾弹出最后一个值

输入类型必需默认描述
ArrayBlackboardArrayyes-要从中弹出值的数组
MethodStringHashno“Last”要从数组中弹出的值
输出类型必需描述
ValueAnyyes从数组中弹出的值

PushArrayValue

从数组的末尾弹出最后一个值

输入类型必需默认描述
ArrayStringHashyes-将数组 push 值推送给
ValueAnyyes-要推送到数组中的值

输出:


Raycast

执行光线投射,如果未命中任何内容,则成功

输入类型必需默认描述
FromEntityId, Positionyes-要从中进行光线投射的实体或位置
ToEntityId, Positionyes-要光线投射到的实体或位置
输出类型必需描述
HitPosPositionno命中位置(仅在节点失败时有效)

ReleaseEntity

释放对象的所有权并添加 ‘Available’ 标签

输入类型必需默认描述
ObjectSlotStringHashyes-对象在实体所有权 Blackboard 上的存储位置

输出:


ReplaceTag

将实体上的一个标签替换为另一个标签

输入类型必需默认描述
OldTagTagyes-要删除的标签
NewTagTagyes-要添加的标签
EntityIdEntityIdyes-要更改标记的实体的 ID

输出:


SendResponseSignal

向行为树处理的信号发送响应

输入类型必需默认描述
SignalBlackboardyes-要响应的信号
ResultStringHashyes-要返回的结果,例如 Success 或 Failed

输出:


SendSignal

发送信号

输入类型必需默认描述
NameStringHashyes-要发送的信号的名称
TargetEntityIdno要向其发送信号的实体的 ID(默认为 self)
Key1StringHashno""信号上第一个数据参数的可选键
Value1Anyno第一个数据参数的可选值
Key2StringHashno""信号上第二个数据参数的可选键
Value2Anyno第二个 data 参数的可选值

输出:


SendSignalToGroup

向组中的所有实体发送信号

输入类型必需默认描述
NameStringHashyes-要发送的信号的名称
CategoryStringHashyes-要将信号发送到的组的类别
Key1StringHashno""信号上第一个数据参数的可选键
Value1Anyno第一个数据参数的可选值
Key2StringHashno""信号上第二个数据参数的可选键
Value2Anyno第二个 data 参数的可选值

输出:


SetBranchTag

删除给定分支中的所有标签并添加新标签

输入类型必需默认描述
BranchTagTagyes-要修剪的 branch 标签
TagTagyes-要添加的标签
EntityIdEntityIdyes-要更改标签的实体的 ID

输出:


SetTimestampVariable

将 timestamp 的值设置为 now,如果尚不存在,则创建

输入类型必需默认描述
NameStringHashyes-要设置为 now 的 timestamp 变量的名称

输出:


SetVariable

将变量设置为特定值

输入类型必需默认描述
NameStringHashyes-要将值写入的变量名称(或路径)
ValueAnyyes-要分配给变量的值

输出:


Ship_NavRaycast

测试两个位置之间是否有一条直线可导航

输入类型必需默认描述
FromEntityId, Positionyes-要从中进行光线投射的实体或位置
ToEntityId, Positionyes-要光线投射到的实体或位置
输出类型必需描述
HitPosPositionyes命中位置(仅在节点失败时有效)

SmoothSpeedToTargetDist

根据与目标的距离计算速度,在帧上平滑以减少突然的变化

输入类型必需默认描述
StartEntityId, Positionno可选 position 或 id 来计算距离,默认为 self
EndEntityId, Positionyes-要计算距离的位置或 id
FarSpeedFloat, StringHashno速度的可选名称或以 m/s 为单位的速度值,用于最远的距离,默认为当前速度
FarDistanceFloatyes-开始向 CloseSpeed 进行插值速度的距离
CloseSpeedFloat, StringHashno在近距离内使用的速度可选名称或以 m/s 为单位的速度值,默认为当前速度
CloseDistanceFloatyes-完成朝 CloseSpeed 的插值速度的距离
LowSpeedClampFloat, StringHashno0.00速度的可选名称或以 m/s 为单位的速度值,低于该值时不要去
SmoothingDecayRateFloatno0.10平滑衰减,值越高越平滑,例如 0.1 在 1 秒内向目标值移动 90%
LastResultFloatyes-上次运行中计算的速度或初始速度值
LastUpdateTimestampyes-上次运行该节点的时间戳,或现在用于首次运行
输出类型必需描述
SmoothedSpeedFloatyes计算出的速度值
UpdateTimestampTimestampyes此更新的时间戳(以便下次传回)

Success

什么都不做;首次更新时返回成功

输入:

输出:


Wait

等待指定时间,不执行任何操作

输入类型必需默认描述
WaitTimeFloatno0.00秒等待,零秒永远等待

输出:


WaitForSignal

侦听指定名称的信号,然后保留信号的副本

输入类型必需默认描述
NameStringHashyes-要侦听的信号类型的名称
FilterKey1StringHashno""可选过滤器,用于仅侦听包含此键的信号
FilterValue1Anyno可选筛选器,用于仅侦听 FilterKey 字段中具有此值的信号
FilterKey2StringHashno""可选过滤器,用于仅侦听包含此键的信号
FilterValue2Anyno可选筛选器,用于仅侦听 FilterKey 字段中具有此值的信号
输出类型必需描述
SignalBlackboardnoA copy of the signal received

WaitRandom

等待最小和最大指定值之间的随机时间长度,然后不执行任何操作

输入类型必需默认描述
MinWaitTimeFloatyes-等待的最小秒数
MaxWaitTimeFloatyes-等待的最大秒数

输出:


Groups

AddEntityToGroup

Add an entity to a group

输入类型必需默认描述
GroupIdEntityIdyes-要将实体添加到的组的 ID
EntityIdEntityIdyes-要添加的实体的 ID
IsLeaderBooleannofalse此节点是否被指定为组的领导者。如果此实体死亡,则该组织将被解散
输出类型必需描述
CountIntegeryes添加实体后组中的实体数

CreateGroup

创建新的组实体

输入类型必需默认描述
TypeStringHashyes-组的类型
输出类型必需描述
GroupIdEntityIdyes已创建的组实体的 ID

EraseGroup

擦除现有组实体

输入类型必需默认描述
EntityIdEntityIdyes-要擦除的实体的 ID

输出:


GetEntityInGroup

获取组中的第 n 个实体

输入类型必需默认描述
GroupIdEntityIdyes-实体所属组的 ID
IndexIntegeryes-要从组中获取的实体的从 0 开始的索引
输出类型必需描述
EntityIdEntityIdyes实体的 ID

GetGroupCount

获取组中的实体计数

输入类型必需默认描述
GroupIdEntityIdyes-要将实体添加到的组的 ID
输出类型必需描述
CountIntegeryes添加实体后组中的实体数

GetGroupFromEntity

获取实体所属的组

输入类型必需默认描述
EntityIdEntityIdyes-要获取其组的实体的 ID
TypeStringHashyes-要检查其成员身份的组的类型
输出类型必需描述
GroupIdEntityIdyes实体所属组的 ID

RemoveEntityFromGroup

从组中删除实体

输入类型必需默认描述
GroupIdEntityIdyes-要将实体添加到的组的 ID
EntityIdEntityIdyes-要添加的实体的 ID
输出类型必需描述
CountIntegeryes删除实体后组中的实体数

Exception handling

ThrowException

引发异常

输入类型必需默认描述
TypeStringHashyes-要引发的异常类型

输出:


Debug

DD_DrawLine

在两点之间画一条线

输入类型必需默认描述
Point1EntityId, Positionyes-第一个位置或 id
Point2EntityId, Positionyes-第二个位置或 id
ColorStringHashno“White”线条的颜色

输出:


DD_DrawSphere

在半径为的点处绘制球体

输入类型必需默认描述
CenterEntityId, Positionyes-中心位置
RadiusFloatyes-球体半径
ColorStringHashno“White”线条的颜色

输出:


HDV2D_DrawRandomPoints

在导航网格上生成和渲染随机点

输入类型必需默认描述
NumPointsIntegeryes-要生成的点数(最大 10000)
MinRadiusFloatyes-允许最小距离点到中心
MaxRadiusFloatyes-允许点到中心的最大距离

输出:


SQS

SpatialQuerySimple

使用最简单的设置运行 SQS 查询

输入类型必需默认描述
QueryStringHashyes-要处理的 SQS 查询的名称
OriginEntityId, Positionyes-查询源的实体或位置
ReferenceEntityId, Positionno查询引用的实体或位置
输出类型必需描述
SQSPointPositionyes查询的顶点位置
SQSPointIdEntityIdno查询的顶端 ID
SQSResultBlackboardno包含有关结果的更多数据的黑板

State Machine

SendTransitionSignal

向此实体发送信号,以在父 State Machine 中引起状态转换。如果状态机在此节点发送信号后没有从当前状态转换出来,则此节点将引发错误

输入类型必需默认描述
NameStringHashyes-转换信号的名称

输出:


Composite Nodes

具有一个或多个子项的节点

Basic

IfThenElse

在进入时测试 Lua 条件,如果 true 执行其第一个子项,如果 false 执行第二个子项(如果存在),否则失败

输入类型必需默认描述
ConditionStringHashyes-要计算的 Lua 表达式必须计算为布尔值(例如,它可以有多个包含 ands 和 ors 的测试)

输出:


ParallelUntilAllComplete

同时运行所有子项,所有子项都已完成。如果任何失败,则返回失败

输入:

输出:


ParallelUntilAnyComplete

同时运行所有子项,直到一个子项完成

输入:

输出:


ParallelUntilFailure

同时运行所有子项,直到一个子项失败

输入:

输出:


Selector

一个接一个地运行子项,直到一个子项成功或全部失败

输入:

输出:


Sequence

连续运行的节点序列。一旦任何子项失败,就会停止并失败

输入:

输出:


State Machine

StateMachine

具有由 signals 控制的 transitions 的状态机。如果子状态运行完成,则此节点完成

输入:

输出:


Priority

Priority

控制一组有序的子项,每个子项都有一个布尔条件,用于是否执行。将持续评估并执行具有 true 条件的第一个子项

输入:

输出:


Decorator Nodes

只有一个子节点

Flow control

RepeatUntilFails

不断重复子节点,直到它失败

输入类型必需默认描述
IterationsIntegerno0要运行的迭代次数(默认为无限)

输出:


RepeatUntilSucceeds

不断重复子节点,直到成功

输入类型必需默认描述
IterationsIntegerno0要运行的迭代次数(默认为无限)

输出:


Repeater

无论结果如何,都不断重复子节点

输入类型必需默认描述
IterationsIntegerno0要运行的迭代次数(默认为无限)

输出:


Timer

运行子节点最多指定时间

输入类型必需默认描述
RunTimeFloatyes-运行秒数
FailOnTimeoutBooleannofalse如果计时器在子节点完成之前过期,节点是否应该失败

输出:


Return code manipulation

Failer

总是失败

输入:

输出:


Inverter

反转子节点的返回值

输入:

输出:


Succeeder

始终成功,除非有异常

输入:

输出:


Exception handling

HandleException

通过中断树,然后失败或成功来处理异常

输入类型必需默认描述
ResultStringHashno“Succeed”节点收到异常时应返回什么
TypeStringHashno""要处理的异常类型,或未指定以处理所有异常

输出:


ThrowOnFail

如果子节点失败,则引发异常

输入类型必需默认描述
TypeStringHashyes-要引发的异常类型

输出:


Utility

CallSubtree

调用已注册的可插拔 BT 子树

输入类型必需默认描述
LabelStringHashyes-要调用的子树的名称

输出:


ClearTimestampVariableOnExit

在 exit 时清除 timestamp 的值,以便任何大于或小于的比较将始终返回 false

输入类型必需默认描述
NameStringHashyes-要清除的时间戳变量的名称

输出:


EraseVariableOnExit

在子节点完成时擦除变量

输入类型必需默认描述
NameStringHashyes-要擦除的变量名称(或路径)

输出:


HandleRequestSignal

在处理请求信号(如任务切换或脚本命令)时管理信号响应的发送

输入类型必需默认描述
SignalBlackboardyes-正在响应的信号
ResponseOnSuccessStringHashno“Success”子树成功时返回的响应
ResponseOnFailStringHashno“Failed”子树失败时返回的响应
ResponseOnEnterStringHashno进入子树时要返回的可选响应

输出:


IterateOverArray

迭代数组中的元素,另请参阅 BTArrayBreak

输入类型必需默认描述
ArrayBlackboardArrayyes-Array 到 iterator over
OnCompleteStringHashno“Succeed”在到达数组末尾时返回值以传播
输出类型必需描述
ElementAnyyes当前正在迭代的 Array 元素

ReleaseEntityOnExit

退出时释放已声明实体的所有权

输入类型必需默认描述
ObjectSlotStringHashyes-实体所有权黑板上存储的对象 ID

输出:


SetControlledEntity

指定要应用行为树的实体。仍然保持相同的行为 Blackboard

输入类型必需默认描述
EntityIdEntityIdno要控制的实体的 ID(可选,默认当前实体)

输出:


SetTimestampVariableOnExit

将 timestamp 变量设置为退出时的当前时间

输入类型必需默认描述
NameStringHashyes-要设置的 timestamp 变量的名称

输出:


SetVariableOnExit

在子节点完成时将变量设置为特定值

输入类型必需默认描述
NameStringHashyes-要设置的变量名称(或路径)
ValueAnyyes-要分配给变量的值

输出:


Character movement

Character_DisableAvoidanceForEntity

针对特定实体的避让开关。通常用于您的目标。当此节点终止时,将重新启用避障

输入类型必需默认描述
EntityEntityIdyes-不再避免的实体

输出:


OverrideObstacleScale

临时更改避让障碍物的比例,直到子树完成

输入类型必需默认描述
ScaleFloatyes-要使用的新秤

输出:


Ship_DisableAvoidanceForEntity

关闭针对特定实体的避障。通常用于您的目标。当此节点终止时,将重新启用避障

输入类型必需默认描述
EntityEntityIdyes-不再避免的实体

输出:


Ship_ToggleAvoidance

开启或关闭避障。当此节点终止时,将重置避障

输入类型必需默认描述
Avoidance EnabledBooleanyes-回避是启用还是禁用?

输出: