avatar

Ycyofmine’s Blog

云鸮雨霁

  • 首页
  • 分类
  • 标签
  • 归档
  • 关于
首页 LyraStarterGame 04.AI
文章

LyraStarterGame 04.AI

发表于 2024/12/05
作者 Ycyofmine
4 分钟阅读

在这之前,请先阅读行为树快速入门

行为树节点参考

黑板

在 行为树(Behavior Tree)中,Blackboard 是一个全局的数据存储区域,用于存放和共享 AI 的状态信息、变量以及条件。这些信息可以在树中的任何节点(包括选择器、序列、装饰器等)之间进行访问和更新。

复合节点

  1. 选择器

    按从左到右的顺序执行其子节点。当其中一个子节点执行成功时,选择器节点将停止执行,并算作选择器节点执行成功。所有子节点运行失败,则选择器运行失败。

  2. 序列

    节点按从左到右的顺序执行其子节点。当其中一个子节点失败时,序列节点也将停止执行,并算作序列节点执行失败。所有子节点运行成功,序列节点才算运行成功。

  3. 简单平行节点

    与 序列节点(Sequence) 和 选择器节点(Selector) 不同,平行节点不依赖于子节点的成功或失败,它通常允许多个任务同时并行执行,常用于处理一些需要并发进行的任务。

装饰器节点

有非常多的特殊节点,实现功能的时候再进行学习吧🔗

服务节点

  1. 默认聚焦(Default Focus)

    通过设置控制器的聚焦来创建访问 蓝图 和代码中Actor的快捷方式。将AI控制器的聚焦设置到Actor上后,你便能直接从AI控制器对其进行访问,而不需要访问黑板键。

  2. EQS(Environment Query System)

    用于指定的时间间隔定期执行操作,对指定的黑板键进行更新。通常用来选择目标、位置、路径等。它能处理较复杂的环境决策,适用于需要考虑多个目标的情况。

  3. 自定义服务节点

    在行为树中持续执行的任务或周期性检查,通常用于更新状态、触发事件或辅助行为树做决策。它用于更细粒度的行为树状态更新。

EQS和自定义服务节点虽然都可以影响 AI 的行为,但用途和实现方式有所不同。EQS 是用于环境决策的工具,而自定义服务模板则是用于定期更新 AI 状态或执行持续任务的工具。

Lyra Bot

/ShooterCore/Bot/BT/BT_Lyra_Shooter_Bot.BT_Lyra_Shooter_Bot 直接进文件看吧,基础逻辑还是非常清晰的,按照节点的命名很快就能看明白。

EQS 内的事件执行顺序是从上往下的。

我们主要聚焦在 EQS 节点上。

EQS_MoveAgainstEnnemy 是 Find Best Position 的 Query Template 。

EQS_MoveAgainstEnnemy

  1. 生成一个 400 * 400 的网格
  2. 在网格上寻找可以到达的点
  3. 通过黑板键得到TargetEnemy坐标,黑板键的TargetEnemy则是通过 AIPerception used detect enemy 节点更新的。在 trace data 中可以设置感官。
  4. 在 Details 的 Preview 曲线中,可以看到权重是越远越大的

参考

Unreal Engine 5 - Exploring Lyra - Part 4 (AI)

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

最近更新

  • ROS2中并发连接蓝牙手柄排错过程
  • 自行编译ros2-humble-plotjuggler
  • Ubuntu 22.04上蓝牙无法打开——(MT7922网卡为例)
  • Isaac sim遥操作控制
  • RPC:原理、组成与局限性
外部链接
  • codetime
  •  此博客的 Github 仓库

文章内容

相关文章

2024/12/04

LyraStarterGame 03.人物移动和转身动画解析

距离匹配和步幅适配 距离匹配(Distance Matching) 调整动画的播放速率,例如开始、停止和着陆动画等运动动画资产。 步幅适配(Stride Warping) 用于动态调整角色的步幅长度,这适用于不调整播放速率的情况,例如角色进入慢跑(Jog)状态时。 结合这两种方法之后,你可以动态地选择...

2024/12/03

LyraStarterGame 02.动画系统逻辑

Anim System 以下内容是来自 Lyra 本身的注释,我对其翻译了一下。 AnimBP 讲解 #1(也参见 ABP_ItemAnimLayersBase) /Game/Characters/Heroes/Mannequin/Animations/ABP_Mannequin_Base.ABP_Mannequin_Base/EventGraph 这个 AnimBP 在其 Event G...

2024/11/27

蓝图入门

默认读者有编程基础 蓝图类型 蓝图宏库和蓝图类 蓝图类就好比编程语言中的class,主要用于创建具有状态和行为的对象。 蓝图宏库更像是独立的函数集合,用于实现通用的逻辑或工具方法,不需要实例化,通常提供功能性操作。 ue术语 组件层级关系 Actor → Pawn → Player → Controller 创建蓝图 选择一种父类进行创建 ...

C++八股随记

C++虚函数的实现基本原理

© 2025 Ycyofmine. 保留部分权利。

本站采用 Jekyll 主题 Chirpy

热门标签

games104 UE c++ robot OS 装机 计网 essay

发现新版本的内容。