kizumi_header_banner_img

不自由であることを誇れるだろうか

文章导读

行为树


avatar
Misaya2314 2024年11月11日 11

行为树是ue5中用于创建AI对象的功能,具体应用在npc的制作。该系统规定了AI对象的行为逻辑,AI的巡逻逻辑和寻路功能均在此功能中实现。

结构

通常,一个AI对象需要具有以下几个模块。

行为树(Behavior Trees)用于控制AI行为的发生顺序

黑板(Blackboard)相当于AI的大脑,内含键(key)

AI 控制器(AI Controllers)一种特殊的蓝图类

寻路导航体(NavMeshBoundsVolume)用于控制AI活动区域(非必要)

模块创建

创建AI控制器(AI Controllers)

进入内容浏览器

右键选择蓝图类

创建一个类型为AIController的蓝图类

命名规范为****_Controller,例如Enemy_Controller

创建行为树

进入内容浏览器

右键选择AI→行为树(Behavior Trees)

命名规范为BT_****,例如 BT_Enemy

由于一个行为树中需要指定黑板资产来获取值来执行逻辑,因此我们还需要创建一个黑板

创建黑板

进入内容浏览器

右键选择AI→黑板(Blackboard)

命名规范为BB_****,例如 BB_Enemy

行为树布局

行为树包含3个面板部分,分别是

黑板(Blackboard)用于指定黑板资产

行为树图表面板(Behavior Tree)类似于蓝图的图表面板,同样使用可视化的连线形式进行操作

细节(Details)用于定义节点的属性

图表面板

图表面板中包含一个根节点,所有的行为逻辑将以此为起点,拖出箭头,可以发现有三种子节点可以选择。分别是

选择器

从左到右执行分支,通常用于在子树之间进行选择。当选择器找到能够成功执行的子树时,将停止在子树之间移动。举例而言,如果AI正在有效地追逐玩家,选择器将停留在那个分支中,直到它的执行结束,然后转到选择器的父合成节点,继续决策流。

序列

从左到右执行分支,通常用于按顺序执行一系列子项。与选择器节点不同,序列节点会持续执行其子项,直到它遇到失败的节点。举例而言,如果我们有一个序列节点移动到玩家,则会检查他们是否在射程内,然后旋转并攻击。如果检查玩家是否在射程内便已失败,则不会执行旋转和攻击动作

简单平行

简单平行节点有两个”连接”。第一个是主任务,它只能分配一个任务节点(意味着没有合成节点)。第二个连接(后台分支)是主任务仍在运行时应该执行的活动。简单平行节点可能会在主任务完成后立即结束,或者等待后台分支的结束,具体依属性而定。

简单来讲,选择器会优先选择没有出错的行为逻辑,若发现错误逻辑,会直接跳过,直到找到正确逻辑;而序列则一直以顺序执行,若执行到错误逻辑,则后面的逻辑不会再执行。简单平行则包含一个主任务和子任务。但他们都以从左到右的方向执行逻辑

 

感谢您的支持


评论(0)

查看评论列表

暂无评论


发表评论