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. 官方文档 (最权威):

  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是一个非常有趣且有深度的领域,享受创造智能角色的过程吧!

相关推荐
求职小程序华东同舟求职7 分钟前
龙旗科技社招校招入职测评25年北森笔试测评题库答题攻略
大数据·人工智能·科技
李元豪16 分钟前
【行云流水ai笔记】粗粒度控制:推荐CTRL、GeDi 细粒度/多属性控制:推荐TOLE、GPT-4RL
人工智能·笔记
机器学习之心20 分钟前
小波增强型KAN网络 + SHAP可解释性分析(Pytorch实现)
人工智能·pytorch·python·kan网络
聚客AI21 分钟前
📚LangChain与LlamaIndex深度整合:企业级树状数据RAG实战指南
人工智能·langchain·llm
程序员NEO33 分钟前
精控Spring AI日志
人工智能·后端
伪_装35 分钟前
上下文工程指南
人工智能·prompt·agent·n8n
普通程序员1 小时前
Gemini CLI 新手安装与使用指南
前端·人工智能·后端
视觉语言导航1 小时前
ICCV-2025 | 复杂场景的精准可控生成新突破!基于场景图的可控 3D 户外场景生成
人工智能·深度学习·具身智能
whaosoft-1431 小时前
51c自动驾驶~合集6
人工智能
tonngw1 小时前
Manus AI与多语言手写识别
人工智能