ue4 ai 行为树 笔记

本文注重原理,具体每个节点的各种值不详细说明。

ai行为树的原理和流程:

ue4 ai 行为树 笔记

 感知:ai角色添加感知控件,目标角色添加被感知的敏感源。ai角色就能感知到目标角色。ai角色有了感知功能,就能感知周围环境,收集信息,为做出决策提供信息。感知控件类型有:看到,听到,touch到,被伤害等

ue4 ai 行为树 笔记ue4 ai 行为树 笔记ue4 ai 行为树 笔记

 思考:利用黑板,行为树,compoise等节点,写出复杂的条件判断和处理。

行动:思考有了结果,就去行动实施。用Task节点来实现,比如让ai角色move to ,roator,play animation等等一系列的具体的行动。

 

 

前提支撑:

1、ue4 ai 行为树 笔记

2、ue4 ai 行为树 笔记

ai的行动阶段,比如move to 某个点,ai角色需要自动绕过阻碍物,到达目标点,这个时候需要nav mesh 来做自动寻径的支撑。

 NavMesh Agents由于不同ai角色大小不同,有的是走路,有的是有用,有的天空飞, NavMesh Agents是为了解决各种个体差异而生。意思是同一个场景不同的agents会生成不同的nav mesh。在RecastNavMesh中设置Agents参数。

3、Gameplay调试器,运行解决按  ‘  键(单引号)会出现一些信息,方便调试。下图是sight 感知的信息。

 ue4 ai 行为树 笔记

上图显示的信息有:地面绿色的是nav mesh的信息。 绿色的球体和绿线,显示的是感知信息,当前目标角色能被ai角色看到,因为目标在ai角色的视野里。

4、AI感知事件。当ai角色添加AIPerception控件后,就有了感知世界的能里,当感知到信息,得触发事件把信息传过去,好让我们来处理。下图是sight 感知。

ue4 ai 行为树 笔记

 

核心 行为树

行为树组成部分如图:

ue4 ai 行为树 笔记

 行为树是由很多个节点组成,执行顺序是自上向下,自左向右。下面一一介绍节点

Composite node ,只有成功和失败两种结果,有结果就返回父节点。有以下三种

1、选择器(Selector):从左向右执行子节点,遇到一个子节点成功就返回成功,不执行下一个节点。所有子节点都失败就返回失败。

2、序列(Sequence):从左向右执行子节点,遇到一个子节点失败就返回失败,不执行下一个节点。所有子节点都成功就返回成功。

3、简单平行(Simple Parallel :(不常用)允许一个主任务节点沿整个的行为树执行。主任务完成后,结束模式(Finish Mode) 中的设置会指示该节点是应该立即结束,同时中止次要树,还是应该推迟结束,直到次要树完成。

-----------------------------------------------------------------

Task节点:有三种状态 运行、成功、失败。是最终ai结果的表现。

有以下几种

ue4 ai 行为树 笔记

-----------------------------------------------

装饰器节点(在其他行为树系统中也称为条件语句)连接到合成(Composite) 或任务(Task) 节点

由很多种,都是起到条件判断的作用。这里不一一说明。

ue4 ai 行为树 笔记

--------------------------

服务(Service) 节点通常连接至合成(Composite) 节点或任务(Task) 节点,只要其分支被执行,它们就会以定义的频率执行。这些节点常用于检查和更新黑板。

 

 

有了以上的具有自身规则的节点,我们就可以写出很复杂的判断逻辑。

 

黑板(blackboard)

黑板就就是行为树的数据结构,行为树会根据黑板里的数据数值不同做出不同的判断。外部可以通过修改黑板里的数据。ue4 ai 行为树 笔记

 比如上图中HasSight是代表看到目标没有?TargetActor是代表捕获到目标没有。行为树中完全可以通过装饰器节点来判断这些值是否有变化,来决定其附着的混合节点是否执行。

总结:

通过感知修改黑板里内容,行为树又会根据黑板内数值不同执行不同的逻辑。就这么简单。

 

 

场景查询系统(EQS)目前是实验阶段,暂时不表。