行为树是ue5中用于创建AI对象的功能,具体应用在npc的制作。该系统规定了AI对象的行为逻辑,AI的巡逻逻辑和寻路功能均在此功能中实现。
通常,一个AI对象需要具有以下几个模块。
行为树(Behavior Trees)用于控制AI行为的发生顺序
黑板(Blackboard)相当于AI的大脑,内含键(key)
AI 控制器(AI Controllers)一种特殊的蓝图类
寻路导航体(NavMeshBoundsVolume)用于控制AI活动区域(非必要)
进入内容浏览器
右键选择蓝图类
创建一个类型为AIController的蓝图类
命名规范为****_Controller,例如Enemy_Controller
进入内容浏览器
右键选择AI→行为树(Behavior Trees)
命名规范为BT_****,例如 BT_Enemy
由于一个行为树中需要指定黑板资产来获取值来执行逻辑,因此我们还需要创建一个黑板
进入内容浏览器
右键选择AI→黑板(Blackboard)
命名规范为BB_****,例如 BB_Enemy
行为树包含3个面板部分,分别是
黑板(Blackboard)用于指定黑板资产
行为树图表面板(Behavior Tree)类似于蓝图的图表面板,同样使用可视化的连线形式进行操作
细节(Details)用于定义节点的属性
图表面板中包含一个根节点,所有的行为逻辑将以此为起点,拖出箭头,可以发现有三种子节点可以选择。分别是
选择器 :
从左到右执行分支,通常用于在子树之间进行选择。当选择器找到能够成功执行的子树时,将停止在子树之间移动。举例而言,如果AI正在有效地追逐玩家,选择器将停留在那个分支中,直到它的执行结束,然后转到选择器的父合成节点,继续决策流。
序列:
从左到右执行分支,通常用于按顺序执行一系列子项。与选择器节点不同,序列节点会持续执行其子项,直到它遇到失败的节点。举例而言,如果我们有一个序列节点移动到玩家,则会检查他们是否在射程内,然后旋转并攻击。如果检查玩家是否在射程内便已失败,则不会执行旋转和攻击动作
简单平行:
简单平行节点有两个”连接”。第一个是主任务,它只能分配一个任务节点(意味着没有合成节点)。第二个连接(后台分支)是主任务仍在运行时应该执行的活动。简单平行节点可能会在主任务完成后立即结束,或者等待后台分支的结束,具体依属性而定。
简单来讲,选择器会优先选择没有出错的行为逻辑,若发现错误逻辑,会直接跳过,直到找到正确逻辑;而序列则一直以顺序执行,若执行到错误逻辑,则后面的逻辑不会再执行。简单平行则包含一个主任务和子任务。但他们都以从左到右的方向执行逻辑
评论(0)
暂无评论