当前位置:   article > 正文

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视角范围的一个捕获。

例子:

一个感知蓝图

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/黑客灵魂/article/detail/760868
推荐阅读
相关标签
  

闽ICP备14008679号