UE4学习笔记--AI行为树架构

本文介绍了虚幻4(UE4)中的AI行为树架构,包括控制器与行为树的关联、行为树节点设计。重点讲述了BTNode、BTCompositeNode(Selector、Sequence、SimplepParallel)、AuxiliaryNode(Service、Decorator)和BTTaskNode的特性和功能。行为树在初始化时由BehaviorTreeManager管理,并通过黑板变量驱动AI逻辑。装饰器(Decorator)可以作为条件判断并控制执行流程的中断。
摘要由CSDN通过智能技术生成

虚幻4AI行为控制采用事件驱动模式,需由行为树和黑板配合使用的,行为树执行AI逻辑,黑板通过黑板变量来存储AI数据,
黑板变量的改变事件驱动AI行为树的逻辑执行。


一、控制器-行为树关联:

每个AI都有自己的控制器(AIController),AI控制器上有两个组件负责其行为:行为树组件BehaviorTreeComponent和黑板组件BlackboardComponent,当AI生成时,会在Controller上初始化这两个组件,执行AI行为树。

另外,当前世界所有AI的行为树都由世界的AI系统里的BehaviorTreeManager来管理,BehaviorTreeManager有一个数组ActiveComponents存放世界中所有激活的行为树。

AI人物出生时会生成controller,在controller中初始化黑板和行为树(AAIController::RunBehaviorTree()),当BehaviorTreeComponent执行StartTree()方法时,会将此行为树添加到BehaviorTreeManager的行为树数组里:

BehaviorTreeComponent::ProcessPendingInitialize():
BehaviorTreeComponent::ProcessPendingInitialize():

行为树在被添加到Manager的数组中后,BehaviorTreeManager会从根节点按递归方式深度优先遍历整个行为树,初始化该行为树的所有node节点(BehaviorTreeManager::LoadTree),Manager对行为树节点的初始化工作主要为:
1)设置每个节点的父节点;
2)设置每个节点的执行顺序索引;
3)设置每个节点的下一执行节点;
4)设置每个节点在行为树中的深度;
5)设置每个节点数据所占的内存大小。

这样每个节点初始化并互相关联后,整个行为树也完成了初始化。


二、行为树节点设计:

下图为虚幻4行为树节点的UML图:

(一)BTNode:

UBTNode类是抽象类,为所有行为节点类的基类,主要有以下属性:
1)ParentNode--父节点;
2)NextExecutionNode--该节点在行为树中的下一执行节点;
3)ExecutionIndex --执行序号(深度优先);
4

  • 22
    点赞
  • 74
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值