【UEAI】虚幻AI人机基础(上)

一. 行为树

1.1 概述

  •  行为:受思想支配而表现出来的外表活动(如:做出动作,发出声音,作出反应)
  •  树:一种逻辑描述(树结构)
  •  行为树:遵循树结构特点(有根,有节点),遵循从上至下,从左至右的顺序执行行为
    • 行为可复用(如闲逛的行为可以使用于当前行为树,也适用于其他行为树)
    • 所有复杂行为可以拆分为单一行为(如闲逛,打招呼都是行为)
    • 行为树实现不唯一,顺序并不固定

 

1.2 虚幻行为树

  • UE中的行为树:
    • 以数据为驱动元,进行逻辑节点检查,寻找合理逻辑叶子节点,然后进行动作执行
    • 扩展方便,容易转接,被广泛使用在各种AI设计中,是一种优良的程序设计方案
    • 可以解决复杂AI需求,使用方便,支持横向扩展节点和向下延伸

 

  • 行为树的结构:

    • ① Root 根节点:无法被附着,可以用来设置黑板数据

 

    • ② Composite 节点:定义一个分支的根起点,及该分支如何被执行的基本规则
      • Root下只能跟随composite
      • 包含Selector,Sequence,Simple Parallel
      • 节点内容简单,但是附加逻辑项多,逻辑点繁琐
      • 所有逻辑结构设计尽量遵循 Composite 规则

        • Sequence:从左至右执行,只要有一个子项不成立,则停止执行剩余项(所有子项成立,则sequence成立)
        • Selector:从左至右执行,只要有一个子项条件成立,则停止向下执行(任意子项成立,则selector成立)
        • Simple Parallel 并行树:允许单个任务在任务树旁执行(Finish Mode 中的设置将确定节点是否立即完成、是否终止次要树,或是否延迟次要树的完成)

 

    • ③ Task 节点:是行为树的叶子,实际“执行”操作,不含输出连接
      • 真正在干活的角色,可以重写,支持扩展
        • Make Noise,制造噪音,需要Pawn带PawnNoiseEmitter组件,其他Pawn如果带有PawnSensing组件,则可以听到噪音
        • Move To移动到目标点,通过黑板提供
        • Play Sound 播放声音
        • Run Behavior 执行其他行为树
        • Wait,Wait BB Time,等待事件,无法被终止
        • Play Anim,促使控制Pawn播放动画

 

 

    • ④ Decorator 条件语句节点:附着于其他节点,用来约束节点或是分支是否可以执行
      • 装饰器,用来决定节点是否可以进行执行,是一个条件检查工具,可以附着到任务节点和复合节点
        • Blackboard,借助一个黑板数据,进行逻辑操作判定
          • Blackboard 黑板是行为树中的核心模块,用于支撑行为树中的数据存储和读取,相当于草稿纸,可以把需要参与逻辑的数据罗列在上面,使用方便,数据扩展性强,有较好的维护性
        • Compare Blackboard Entries,对比黑板内两个数据
        • Cone Check,锥形检测,可以检测目标是否在锥形范围内
        • Cooldown,锁定节点或是分支,直到时间结束
        • Does Path Exist,检查AB两点见路径是否可行
        • Force Success decorator 将节点结果改为成功
        • Is At Location,检查AI控制的角色是否在指定的位置
        • Keep in Cone,持续检查锥形范围内目标
        • Loop,以一定次数或是无限次数循环节点
        • TimeLimit,节点逻辑时间定时器
      • 当父节点是Selector时则具备所有终结逻辑:
        • NONE,不终止执行
        • Self,中止 self,以及在此节点下运行的所有子树
        • Lower Priority,中止此节点右方的所有节点
        • Both,终止 self、此节点下运行的所有子树、以及此节点右方的所有节点

 

    • ⑤ Services 节点:附着在 Composite 或Task节点上,只要其分支节点被执行,便将按所定义的频率执行,常用于检查和更新黑板
      • 可以按照指定的频率执行,主要意图在于检查和更新黑板内容

      • 以行为树系统的形态取代了传统平行节点,一般会重写此节点

 

1.3 虚幻行为树特点

  1. 事件驱动型
    • 在UE中,行为树避免了在高速运行的引擎中去检查逻辑节点,采用了事件通知的方式,没有无用的迭代操作
    • 只有执行位置或黑板数值发生变化了,才会产生影响
  2. 叶子节点不是条件语句

    • 在行为树标准模型中,条件语句即为叶子节点
    • UE中引入了Decorator系统作为条件语句(D语句在UI结构中易读,罗列条件可以直观查看条件状态)
  3. 并发行为处理(UE)

    • 标准行为树通常使用 Parallel composite 节点来处理并发行为(Parallel 节点同时执行其所有子项,在一个或多个子项树完成时,特殊规则将取决于所需行为来决定如何执行
    • UE4 行为树抛弃了复杂 Parallel 节点,使用 Simple Parallel 节点和称为 Services 的特殊节点,以实现同类行为
  4. 抛弃 Parallel 节点
    • Parallel 不利于性能优化,无法方便构建事件驱动型集合
    • 在多平行行为中容易迷失,无法追寻逻辑方向
  5. Simple Parallel 节点

    • 利用 Simple Parallel 节点简便地进行一些事件驱动型优化
    • Simple Parallel 节点支持 Parallel 节点的多数用法,只允许有两个选项,一个必为单独任务节点(含可选 decorators),另一个为一个完整的分支树
  6. UE4并发行为树的优点
    • 清晰明了:使用 Services 和 Simple Parallel 节点可创建出易于理解的简单行为树
    • 易于纠错:图表更清晰,便于纠错。除此之外,更少的同时执行路径十分便于观察图表中实际发生的状况
    • 优化简单:如没有较多同时执行的分支树,事件驱动型图表将更易于优化

 

 二. EQS系统

 2.1 EQS概述

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

未完待续...

posted @   哟吼--小文文公主  阅读(669)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示