当前位置: 首页 > news >正文

Unreal Engine 5中的AI知识

好的,很高兴能帮助你学习Unreal Engine 5中的AI知识。UE5的AI系统非常强大,而**AI感知(AI Perception)**是整个系统的“五官”,是AI决策与行动的基础。

我将为你梳理一个清晰的学习路径,从核心概念到高级应用,并提供相关的资源建议。


学习路径总览

一个典型的UE5 AI工作流程如下,这也是我们学习的顺序:

  1. 感知 (Perception): AI如何通过“看”、“听”等方式感知世界? (这是你的起点: AI Perception System)

  2. 记忆 (Memory): AI如何存储它感知到的信息? (这是 Blackboard)

  3. 决策 (Decision Making): AI如何根据记忆中的信息做出决定? (这是 Behavior Tree)

  4. 行动 (Action): AI如何执行决策,例如移动、攻击? (这是 Behavior Tree TasksNavigation System)

  5. 环境分析 (Environment Analysis): AI如何智能地选择最佳位置? (这是 Environment Query System - EQS)


第一站:AI感知系统 (AI Perception System)

这是AI的感官系统,让AI能够对外部刺激 (Stimulus) 做出反应。没有它,AI就是“瞎子”和“聋子”。

核心概念:

  1. AIPerceptionComponent (AI感知组件):

    • 这是最重要的组件,你需要将它添加到你的 AIController 蓝图中。

    • 它负责管理AI拥有的所有“感官”。

  2. AISense (AI感官):

    • 代表一种特定的感知能力。UE5内置了多种感官,最常用的是:

      • AISense_Sight (视觉): 模拟AI的视野。你可以配置视野角度 (Sight Angle)、距离 (Sight Radius)、失去目标后的记忆时间 (Lose Sight Radius)等。

      • AISense_Hearing (听觉): 模拟AI的听力。可以对游戏世界中的“噪音”做出反应,比如玩家的脚步声、枪声。

      • 其它感官: 还包括 AISense_Touch (触觉), AISense_Damage (伤害感知), AISense_Team (团队感知) 等。

  3. AIStimulus (AI刺激源):

    • 这是能够被AISense探测到的事件或对象。

    • 例如,一个玩家角色可以被设置为一个视觉刺激源。当AI的AISense_Sight探测到这个玩家时,AIPerceptionComponent就会收到通知。

    • 你可以在任何Actor上添加 AIPerceptionStimuliSource 组件来主动注册它为一个刺激源。

工作流程:

  1. 设置: 在你的AI控制的角色(通常是 AIController)上添加 AIPerceptionComponent

  2. 配置感官:AIPerceptionComponent的细节面板中,添加并配置你需要的感官(如AISenseConfig_Sight)。

  3. 注册刺激源: 确保你的玩家角色或其它需要被感知的对象能够产生刺激(对于视觉,通常默认可见的Pawn都可以被感知)。

  4. 响应事件:AIPerceptionComponent上,最重要的事件是 On Target Perception Updated。当AI感知状态(如看到或丢失目标)发生变化时,这个事件会被触发。你可以从这个事件中获取到是哪个Actor触发了感知,以及感知的具体信息(例如是否成功感知到)。

实践入门:

  • 目标: 创建一个简单的AI,当它“看到”玩家时,在屏幕上打印出 "I see you!",当玩家离开视野时,打印 "Where did you go?"。

  • 步骤:

    1. 创建一个基础的 AIController 蓝图。

    2. 向该蓝图添加 AIPerceptionComponent

    3. 在组件的 Senses Config 中添加一个 AISenseConfig_Sight 并设置其视野范围。

    4. AIController 的事件图表中,找到 AIPerceptionComponentOn Target Perception Updated 事件,并根据事件输出的 Stimulus 结构体中的 Successfully Sensed布尔值来打印不同的字符串。


第二站:黑板 (Blackboard) 与 行为树 (Behavior Tree)

感知到的信息需要地方存储和使用,这就是黑板和行为树发挥作用的地方。

  • Blackboard (BB) - AI的记忆:

    • 一个简单的数据存储容器,以“键-值”(Key-Value)对的形式工作。

    • 你可以创建不同类型的键,如 Object (用于存储玩家Actor), Vector (用于存储目标位置), Bool (用于存储状态,如"IsAngry")等。

    • AI感知系统会将感知到的信息(比如玩家Actor)写入黑板。

  • Behavior Tree (BT) - AI的大脑:

    • 一个树状的逻辑结构,用于决定AI在特定情况下应该做什么。它从左到右,从上到下执行。

    • 行为树会持续读取黑板中的数据来做出决策。

    • 关键节点类型:

      • Selector (选择器): 从左到右执行其子节点,一旦有一个成功,就停止并返回成功。常用于“如果A不行,就试试B”。

      • Sequence (顺序器): 从左到右执行其子节点,只有当所有子节点都成功时,它才返回成功。常用于需要按顺序执行的一系列动作。

      • Task (任务): 树的叶子节点,执行具体的操作,如 Move To, Wait, Play Animation

      • Decorator (装饰器): 附加在Composite或Task上,作为“守卫”或“条件判断”。如果条件不满足(例如,黑板中的"TargetPlayer"键是空的),它下面的整个分支都不会被执行。

      • Service (服务): 附加在Composite节点上,只要其所在的分支被激活,它就会以一定频率执行。常用于持续更新黑板数据,比如检查玩家是否在攻击范围内。

它们如何协同工作?

  1. AIPerceptionComponent 看到玩家。

  2. On Target Perception Updated 事件中,将获取到的玩家Actor写入Blackboard的 "TargetPlayer" 键中。

  3. Behavior Tree中有一个Decorator,它会检查Blackboard里的 "TargetPlayer" 键是否已设置。

  4. 如果已设置,Decorator允许执行其下的分支,比如一个包含 Move To 任务的Sequence,让AI向 "TargetPlayer" 移动。

  5. 如果AI丢失了玩家的视野,AIPerceptionComponent会再次触发事件,你可以将Blackboard中的 "TargetPlayer" 键清空

  6. Decorator检测到键为空,于是“追击”分支被阻断,AI可能会回到Selector的另一个分支,比如“巡逻”。


第三站:环境查询系统 (Environment Query System - EQS)

当AI需要做出更智能的位置决策时,EQS就派上用场了。它让AI可以对周围环境“提问”,从而找到最佳地点。

  • 问题示例:

    • “离我最近的三个掩体在哪里?”

    • “哪个位置既能看到玩家,又离玩家不太近?”

    • “寻找一个可以发动突袭的最佳攻击点。”

  • 工作原理:

    1. Generator (生成器): 在一定范围内生成一系列候选点(比如在一个圆圈内生成网格点)。

    2. Test (测试): 对每个候选点进行一系列的“测试”和“打分”。例如:

      • Distance Test: 距离玩家的远近。

      • Trace Test: 该点到玩家之间是否有障碍物(即能否通视)。

      • Pathfinding Test: AI是否能走到该点。

    3. Querier (查询者): AI(通常是行为树里的一个任务)执行这个EQS查询,并从所有候选点中选出得分最高(或最低)的那个点,然后将它存入黑板,供后续任务(如 Move To)使用。


推荐学习资源

  1. 官方文档 (最权威):

    • AI Perception System Documentation

    • Behavior Tree Documentation

    • Environment Query System (EQS) Documentation

  2. Epic Games 学习中心 (免费视频课程):

    • 在Epic Games Launcher的 "Unreal Engine" -> "学习" 标签页中搜索 "AI",你会找到官方制作的非常高质量的入门和进阶教程。

  3. YouTube 教程 (非常直观):

    • Ryan Laley: 他的AI系列教程非常经典,循序渐进,强烈推荐。搜索 "Ryan Laley AI Series"。

    • Mathew Wadstein ("WTF is?"): 他的视频专注于解释单个系统或节点,非常适合查漏补缺。搜索 "Mathew Wadstein AI Perception" 或 "Mathew Wadstein Behavior Tree"。

    • CodeLikeMe: 提供很多项目驱动的AI教程。

总结与建议

  • 从简单开始: 不要一开始就想做非常复杂的AI。先从AIPerceptionOn Target Perception Updated事件打印信息开始,确保你理解了“感知”这一步。

  • 逐步集成: 成功实现感知后,再引入BlackboardBehavior Tree来存储和使用这些信息。先做一个简单的“巡逻->追击”行为。

  • 善用调试工具: UE5的AI调试工具非常强大!

    • 在游戏运行时,按 ' (单引号) 键可以开启AI调试模式,你可以看到AI的视野范围、行为树的当前执行路径等。

    • 在行为树和EQS编辑器中都有模拟调试功能,可以直观地看到逻辑执行情况。

  • 最后再接触EQS: 当你对Perception、BT、BB已经很熟悉之后,再来学习EQS,你会发现它能极大地提升你AI的“智商”。

祝你学习顺利!AI是一个非常有趣且有深度的领域,享受创造智能角色的过程吧!

http://www.dtcms.com/a/268258.html

相关文章:

  • Yocto项目:嵌入式Linux开发的“万能烹饪手册”
  • 力扣 hot100 Day36
  • C++学习之STL学习:list的模拟实现
  • 【CSS-16】深入理解CSS Transform:从基础到高级应用
  • 条件渲染 v-show与v-if
  • 《自然》发布机器人技术路线图
  • 铸造软件交付的“自动驾驶”系统——AI大模型如何引爆DevOps革命
  • 分布式压测
  • Linux驱动学习day18(I2C设备ap3216c驱动编写)
  • Mybatis----留言板
  • python实战项目81:ZeoDB多线程数据爬取程序(最新稳定好用)
  • Node中Unexpected end of form 错误
  • 【大模型入门】访问GPT_API实战案例
  • 从LLM和MCP的协同过程看如何做优化
  • webUI平替应用,安装简单,功能齐全
  • 基于Java+springboot 的车险理赔信息管理系统
  • 基于udev规则固定相机名称
  • 计算机网络:(七)网络层(上)网络层中重要的概念与网际协议 IP
  • 深度学习图像分类数据集—濒危动物识别分类
  • 如何将 Java 项目打包为可执行 JAR 文件
  • Git使用教程
  • 软考(软件设计师)进程管理—进程基本概念,信号量与PV操作
  • centos7.9安装ffmpeg6.1和NASM、Yasm、x264、x265、fdk-aac、lame、opus解码器
  • 1.8 提示词优化
  • Tuning Language Models by Proxy
  • HBuilder提示”未检测到联盟快应用开发者工具”的问题无法发布快应用的解决方案-优雅草卓伊凡
  • 【第七章】全球卫星导航定位技术
  • 缺陷追踪流程
  • Vue+Openlayers加载OSM、加载天地图
  • Modbus_TCP_V5 新功能