赞
踩
ue4 自定义行为树的Service, Task,Decorator节点_pzh的博客-CSDN博客
-------------------------------------------------------------------------------------------
本文注重原理,具体每个节点的各种值不详细说明。
ai行为树的原理和流程:
感知:ai角色添加感知控件,目标角色添加被感知的敏感源。ai角色就能感知到目标角色。ai角色有了感知功能,就能感知周围环境,收集信息,为做出决策提供信息。感知控件类型有:看到,听到,touch到,被伤害等
思考:利用黑板,行为树,compoise等节点,写出复杂的条件判断和处理。
行动:思考有了结果,就去行动实施。用Task节点来实现,比如让ai角色move to ,roator,play animation等等一系列的具体的行动。
前提支撑:
1、
2、
ai的行动阶段,比如move to 某个点,ai角色需要自动绕过阻碍物,到达目标点,这个时候需要nav mesh 来做自动寻径的支撑。
NavMesh Agents由于不同ai角色大小不同,有的是走路,有的是有用,有的天空飞, NavMesh Agents是为了解决各种个体差异而生。意思是同一个场景不同的agents会生成不同的nav mesh。在RecastNavMesh中设置Agents参数。
3、Gameplay调试器,运行解决按 ‘ 键(单引号)会出现一些信息,方便调试。下图是sight 感知的信息。
上图显示的信息有:地面绿色的是nav mesh的信息。 绿色的球体和绿线,显示的是感知信息,当前目标角色能被ai角色看到,因为目标在ai角色的视野里。
4、AI感知事件。当ai角色添加AIPerception控件后,就有了感知世界的能里,当感知到信息,得触发事件把信息传过去,好让我们来处理。下图是sight 感知。
核心 行为树
行为树组成部分如图:
行为树是由很多个节点组成,执行顺序是自上向下,自左向右。下面一一介绍节点
Composite node ,只有成功和失败两种结果,有结果就返回父节点。有以下三种
1、选择器(Selector):从左向右执行子节点,遇到一个子节点成功就返回成功,不执行下一个节点。所有子节点都失败就返回失败。
2、序列(Sequence):从左向右执行子节点,遇到一个子节点失败就返回失败,不执行下一个节点。所有子节点都成功就返回成功。
3、简单平行(Simple Parallel :(不常用)允许一个主任务节点沿整个的行为树执行。主任务完成后,结束模式(Finish Mode) 中的设置会指示该节点是应该立即结束,同时中止次要树,还是应该推迟结束,直到次要树完成。
-----------------------------------------------------------------
有以下几种
-----------------------------------------------
装饰器节点(在其他行为树系统中也称为条件语句)连接到合成(Composite) 或任务(Task) 节点
由很多种,都是起到条件判断的作用。这里不一一说明。
--------------------------
服务(Service) 节点通常连接至合成(Composite) 节点或任务(Task) 节点,只要其分支被执行,它们就会以定义的频率执行。这些节点常用于检查和更新黑板。
有了以上的具有自身规则的节点,我们就可以写出很复杂的判断逻辑。
黑板(blackboard)
黑板就就是行为树的数据结构,行为树会根据黑板里的数据数值不同做出不同的判断。外部可以通过修改黑板里的数据。
比如上图中HasSight是代表看到目标没有?TargetActor是代表捕获到目标没有。行为树中完全可以通过装饰器节点来判断这些值是否有变化,来决定其附着的混合节点是否执行。
总结:
通过感知修改黑板里内容,行为树又会根据黑板内数值不同执行不同的逻辑。就这么简单。
场景查询系统(EQS)目前是实验阶段,暂时不表。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。