UE 行为树

基础知识

基本介绍

虚幻引擎(Unreal Engine)中的AI行为树(Behavior Trees)是一种用于创建复杂AI行为的系统。行为树以树状结构组织节点,用来控制非玩家角色(NPC)的决策过程。在虚幻引擎5中,这一系统继续发挥着重要作用,允许开发者创建出具有高度复杂性和可预测性的AI。

行为树主要由以下几种节点组成:

  1. 根节点(Root Node)
    每棵行为树都有一个根节点,这是行为树的起点。

  2. 复合节点(Composite Nodes)
    这些节点控制树中哪个子节点将会被执行。复合节点的类型包括:

    • 选择器节点(Selector Nodes):运行其子节点直到其中一个成功,它们通常用来表示“或”逻辑。
    • 序列节点(Sequence Nodes):按顺序运行子节点,直到一个失败或全部成功,它们代表“与”逻辑。
    • 并行节点(Parallel Nodes):可以同时运行多个子节点。
  3. 装饰器节点(Decorator Nodes)
    装饰器用于控制是否应该执行一个节点,可以用来检查某些条件,如是否看到了玩家,或者是否在特定距离内。它们可以用来修改节点的行为,比如限制运行次数或添加延迟。

  4. 服务节点(Service Nodes)
    这些节点不执行实际的行为,而是定期运行,用于设置和维护黑板(Blackboard)上的数据,黑板用于存储AI的状态信息。

  5. 叶节点(Leaf Nodes)
    这些节点是实际行为的执行者,通常分为两类:

    • 任务节点(Task Nodes):执行实际的行为,如移动到一个地点、播放动画或者攻击玩家。
    • 等待节点(Wait Nodes):简单的任务,仅仅让行为树等待一定时间。

PS.
好的,让我们用一个简单的现实生活中的例子来说明这三种节点在虚幻引擎的行为树中是如何工作的。

选择器节点(Selector Nodes) - “或” 逻辑

想象一下,你饿了,需要找东西吃,你会这样决定:

  • 看看冰箱里有没有苹果(第一个选择)。
  • 如果没有,你会去找香蕉(第二个选择)。
  • 如果还没有,你会选择出门吃饭(第三个选择)。

选择器节点会从第一个子节点(苹果)开始尝试,如果找到了(成功),它就会停止,你就吃苹果了。如果没有找到苹果(失败),它会尝试下一个子节点(香蕉),依此类推,直到找到可行的选项。这就是“或”逻辑,多个选项中选择一个可以成功的。

序列节点(Sequence Nodes) - “与” 逻辑

假设你要出门上班,需要按顺序执行一系列的任务:

  • 先刷牙(第一步)。
  • 然后穿衣(第二步)。
  • 最后拿钥匙(第三步)。

序列节点会从刷牙开始,只有当你刷完牙(成功)了,它才会让你穿衣。如果你没刷牙(失败),那么序列就中断了,你不会继续穿衣。只有当所有步骤都按顺序成功完成时,整个序列才算是成功。这就是“与”逻辑,所有步骤都必须成功。

并行节点(Parallel Nodes) - 同时运行

想象你在准备一场派对,你需要同时做多件事:

  • 放音乐。
  • 设置桌子。
  • 检查食物。

并行节点允许你同时进行这些任务。你可以一边放音乐,一边设置桌子,同时还得确保食物都准备好了。这些任务是同时进行的,而不是一个接一个的。在行为树中,这可以用来同时监控多个条件或执行多个行动,例如,NPC可以一边巡逻一边观察周围的环境。

并行节点的实例
在“简单并行”(Simple Parallel)节点中,Finish Mode选项控制的是当次要任务完成时的行为。具体来说:

在“简单并行”(Simple Parallel)节点中的Finish Mode选项是用来定义:

  • Immediate:当主任务完成时,不管次要任务的状态如何,整个“简单并行”节点会立即结束。
  • Delayed:主任务完成后,节点不会立即结束,而是会等待次要任务完成后才结束。

因此,这个设置是基于主任务的完成状态来定义“简单并行”节点何时应该结束的。

案例

使用Unreal Engine 5来创建一个往返巡逻的机器人的过程。

  1. 场景布置:在场景中放置空的演员(actors),这些演员将作为机器人巡逻时移动到的新位置的参考点。

  2. 行为树和黑板:创建一个行为树和黑板,用来定义机器人的行为逻辑和存储运行时的数据。

  3. 定点移动事件蓝图:制作一个事件蓝图,该蓝图的功能是从场景中获取演员数组,然后获取这些演员的位置,并将这些位置用于设置黑板上的键值,以便机器人能够移动到这些预定点。

  4. 基础移动实现:完成了机器人移动到指定定点的基本功能。

  5. 正逆向移动逻辑:实现了两个事件,分别控制机器人的正向移动和逆向移动。正向移动包括索引的更新计算,而在正向移动结束时,需要设置一个布尔变量来为逆向移动做准备。

  6. 移动控制与装饰器应用:使用布尔变量来控制正向和逆向移动事件的切换,并通过装饰器限制当前事件的执行。

行为树
PS.selector本身就有一个真假的判断,因此在下边两个事件切换的时候就可以进行选择,相反你如果选择了selector那样你终止掉一个后边的将都不会进行执行

黑板键

Unreal Engine中的行为树**装饰器是附加到任务节点、序列节点或选择节点的特殊节点,**它们用于控制这些节点是否应该执行。装饰器可以检查黑板上的键值、游戏世界中的条件,或者是它们自己的内部条件。以下是一些常用的行为树装饰器:

  1. 黑板条件(Blackboard Condition):检查黑板上的某个键是否符合预设的条件。

  2. 冷却(Cooldown):在特定时间内阻止节点的重复执行。

  3. 比较器(Comparator):比较黑板上的两个键值,根据结果确定是否执行。

  4. 计数限制(Limit):限制节点可以成功执行的次数。

  5. 是否有视线(Line of Sight):检查AI是否有直接视线到黑板上指定的目标。

  6. 随机概率(Random Chance):提供一个随机的机会决定是否执行节点。

  7. 距离检查(Distance Check):根据黑板上指定的两点间的距离决定是否执行。

  8. 脚本控制(Script Condition):通过自定义脚本确定是否执行,这为复杂的条件判断提供了灵活性。

  9. 观察者中止(Observer Aborts):这不是单个装饰器,而是一类装饰器的行为,可以配置节点在特定条件下被中止。

这些装饰器可以单独使用,也可以组合使用,以创建复杂的行为决策逻辑。在设计AI时,合理地利用这些装饰器对于创建响应性强、看起来智能的行为至关重要。

AI感知

基本概念

在Unreal Engine 5中,AI人物的感知能力通常是通过AIPerception组件来实现的。这个组件提供了以下几种感知感官:

  1. 视觉(Sight): AI可以看到其视野内的对象,这可以通过设置视场(Field of View)和感知距离来调整。

  2. 听觉(Hearing): AI可以听到周围的声音,包括玩家产生的声音和环境声音。开发者可以设置声音的强度和衰减距离。

  3. 触觉(Touch): 当AI与其他对象物理接触时,它可以感知到这种接触。

  4. 预感(Prediction): AI可以预测其他对象的移动轨迹。

  5. 记忆(Memory): AI可以记住它所感知到的对象,即使这些对象已经不在它的感知范围内。

  6. 其他自定义感官: Unreal Engine 提供了扩展性,开发者可以创建自定义感官来满足特定的游戏需求。

通过AIPerception组件,开发者可以为AI角色定义这些感知能力的具体参数,比如感知的范围、持续时间和感知对象的类型(如敌人、盟友或特定的游戏物体)。此外,AIPerception组件还与行为树(Behavior Tree)紧密结合,允许开发者基于AI的感知输入来定义其决策和行为。

具体实现

步骤:

  • 添加AIPerception感知组件,在感知组件上右键创建感知更新组件
  • 然后实现对应的逻辑即可

PS. 可以按下键盘的enter左边的这个引号键查看NPC可以移动的区域,然后按下这个小键盘4键可以进行NPC视角范围的一个捕获。

例子:

一个感知蓝图

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
UE4(Unreal Engine 4)是一款功能强大的游戏开发引擎,其中包括了行为树编辑器,可以帮助开发者快速、灵活地创建和编辑游戏角色的行为。 UE4的行为树编辑器是一个可视化的工具,可以让开发者通过拖拽、连接和调整节点来构建角色的行为逻辑。行为树是一种树形结构,由各种节点组成,每个节点代表一个行为或条件。开发者可以在编辑器中创建不同类型的节点,例如选择节点、序列节点、并行节点等,来表达角色的行为流程。节点之间可以通过连接线进行连接,形成一个完整的行为树。 在行为树编辑器中,开发者可以自定义节点的行为和参数。例如,可以为节点添加自定义的脚本或代码,来实现更复杂的行为逻辑。同时,还可以设置节点的优先级、执行顺序和条件,以及在不同情况下的跳转路径,来控制角色的行为流程。 行为树编辑器还提供了一些常用的节点模板,例如移动、攻击、闲置等,开发者可以直接使用这些模板节点,然后根据自己的需求进行参数和行为的调整。此外,行为树编辑器还支持多个角色之间的共享行为,可以实现多个角色共用同一套行为逻辑。 总之,UE4的自定义行为树编辑器为开发者提供了一个强大的工具,可以快速构建和编辑游戏角色的行为逻辑。无论是简单的行为还是复杂的逻辑,都可以借助行为树编辑器来实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值