文章

虚幻引擎程序设计浅析-第六章-游戏性框架概述

虚幻引擎程序设计浅析-第六章-游戏性框架概述

6.1 行为树:概念与原理

6.1.1 为什么选择行为树

从UE3到UE4,Epic将AI框架由状态机替换为了行为树。状态机下的AI模式会涉及到大量的跳转,相比之下行为树就更加简化,且其“退行”特性更接近人类的思维方式。

6.1.2 行为树原理

行为树一种通用的AI框架,并不依附于特定的引擎或者程序存在,并且UE的行为树也并非标准的行为树。

我们来看一个行为树的例子:

从图中我们可以看到,行为树包含节点与连接线。具体来看,节点有三种类型:

  • 流程控制:包含Selector、Sequence和Parallel

  • 装饰器:用于处理子树的返回结果

  • 执行节点:用于执行具体的任务,并根据执行结果返回true或者false。执行节点必然是叶片节点

回到上面的例子,Selector是一个流程控制的节点,它会从左到右的执行下面的子树。如果有一个子树返回true,那么Selector就会返回true。当所有子树均返回false,才会返回false。所以,我们的例子所反映的故事是:如果吃不了饭,就只能睡觉了。

下面是一个Sequence的例子:

如图所示,我们将流程控制节点更换为了Sequence。这就意味着,行为树会依次执行子树,任何一个步骤失败,都将导致任务的失败。具体来说,就是先吃饭,再睡觉。

现在,我们可以归纳一下两种流程控制节点的特性:

Selector

  • 终止性:只要有子树返回true,就直接向Root节点返回true。

  • 同样存在优先级,也就是有固定的执行顺序

Sequencer

  • 顺序性:有明确的执行顺序

6.2 UE网络架构

完全空白的领域

[TODO]

本文由作者按照 CC BY 4.0 进行授权