Unreal Engine 5中的AI知识
好的,很高兴能帮助你学习Unreal Engine 5中的AI知识。UE5的AI系统非常强大,而**AI感知(AI Perception)**是整个系统的“五官”,是AI决策与行动的基础。
我将为你梳理一个清晰的学习路径,从核心概念到高级应用,并提供相关的资源建议。
学习路径总览
一个典型的UE5 AI工作流程如下,这也是我们学习的顺序:
-
感知 (Perception): AI如何通过“看”、“听”等方式感知世界? (这是你的起点: AI Perception System)
-
记忆 (Memory): AI如何存储它感知到的信息? (这是 Blackboard)
-
决策 (Decision Making): AI如何根据记忆中的信息做出决定? (这是 Behavior Tree)
-
行动 (Action): AI如何执行决策,例如移动、攻击? (这是 Behavior Tree Tasks 和 Navigation System)
-
环境分析 (Environment Analysis): AI如何智能地选择最佳位置? (这是 Environment Query System - EQS)
第一站:AI感知系统 (AI Perception System)
这是AI的感官系统,让AI能够对外部刺激 (Stimulus) 做出反应。没有它,AI就是“瞎子”和“聋子”。
核心概念:
-
AIPerceptionComponent
(AI感知组件):-
这是最重要的组件,你需要将它添加到你的
AIController
蓝图中。 -
它负责管理AI拥有的所有“感官”。
-
-
AISense
(AI感官):-
代表一种特定的感知能力。UE5内置了多种感官,最常用的是:
-
AISense_Sight
(视觉): 模拟AI的视野。你可以配置视野角度 (Sight Angle
)、距离 (Sight Radius
)、失去目标后的记忆时间 (Lose Sight Radius
)等。 -
AISense_Hearing
(听觉): 模拟AI的听力。可以对游戏世界中的“噪音”做出反应,比如玩家的脚步声、枪声。 -
其它感官: 还包括
AISense_Touch
(触觉),AISense_Damage
(伤害感知),AISense_Team
(团队感知) 等。
-
-
-
AIStimulus
(AI刺激源):-
这是能够被
AISense
探测到的事件或对象。 -
例如,一个玩家角色可以被设置为一个视觉刺激源。当AI的
AISense_Sight
探测到这个玩家时,AIPerceptionComponent
就会收到通知。 -
你可以在任何Actor上添加
AIPerceptionStimuliSource
组件来主动注册它为一个刺激源。
-
工作流程:
-
设置: 在你的AI控制的角色(通常是
AIController
)上添加AIPerceptionComponent
。 -
配置感官: 在
AIPerceptionComponent
的细节面板中,添加并配置你需要的感官(如AISenseConfig_Sight
)。 -
注册刺激源: 确保你的玩家角色或其它需要被感知的对象能够产生刺激(对于视觉,通常默认可见的Pawn都可以被感知)。
-
响应事件: 在
AIPerceptionComponent
上,最重要的事件是On Target Perception Updated
。当AI感知状态(如看到或丢失目标)发生变化时,这个事件会被触发。你可以从这个事件中获取到是哪个Actor触发了感知,以及感知的具体信息(例如是否成功感知到)。
实践入门:
-
目标: 创建一个简单的AI,当它“看到”玩家时,在屏幕上打印出 "I see you!",当玩家离开视野时,打印 "Where did you go?"。
-
步骤:
-
创建一个基础的
AIController
蓝图。 -
向该蓝图添加
AIPerceptionComponent
。 -
在组件的
Senses Config
中添加一个AISenseConfig_Sight
并设置其视野范围。 -
在
AIController
的事件图表中,找到AIPerceptionComponent
的On 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节点上,只要其所在的分支被激活,它就会以一定频率执行。常用于持续更新黑板数据,比如检查玩家是否在攻击范围内。
-
-
它们如何协同工作?
-
AIPerceptionComponent
看到玩家。 -
在
On Target Perception Updated
事件中,将获取到的玩家Actor写入到Blackboard
的 "TargetPlayer" 键中。 -
Behavior Tree
中有一个Decorator
,它会检查Blackboard
里的 "TargetPlayer" 键是否已设置。 -
如果已设置,
Decorator
允许执行其下的分支,比如一个包含Move To
任务的Sequence
,让AI向 "TargetPlayer" 移动。 -
如果AI丢失了玩家的视野,
AIPerceptionComponent
会再次触发事件,你可以将Blackboard
中的 "TargetPlayer" 键清空。 -
Decorator
检测到键为空,于是“追击”分支被阻断,AI可能会回到Selector
的另一个分支,比如“巡逻”。
第三站:环境查询系统 (Environment Query System - EQS)
当AI需要做出更智能的位置决策时,EQS就派上用场了。它让AI可以对周围环境“提问”,从而找到最佳地点。
-
问题示例:
-
“离我最近的三个掩体在哪里?”
-
“哪个位置既能看到玩家,又离玩家不太近?”
-
“寻找一个可以发动突袭的最佳攻击点。”
-
-
工作原理:
-
Generator (生成器): 在一定范围内生成一系列候选点(比如在一个圆圈内生成网格点)。
-
Test (测试): 对每个候选点进行一系列的“测试”和“打分”。例如:
-
Distance Test
: 距离玩家的远近。 -
Trace Test
: 该点到玩家之间是否有障碍物(即能否通视)。 -
Pathfinding Test
: AI是否能走到该点。
-
-
Querier (查询者): AI(通常是行为树里的一个任务)执行这个EQS查询,并从所有候选点中选出得分最高(或最低)的那个点,然后将它存入黑板,供后续任务(如
Move To
)使用。
-
推荐学习资源
-
官方文档 (最权威):
-
AI Perception System Documentation
-
Behavior Tree Documentation
-
Environment Query System (EQS) Documentation
-
-
Epic Games 学习中心 (免费视频课程):
-
在Epic Games Launcher的 "Unreal Engine" -> "学习" 标签页中搜索 "AI",你会找到官方制作的非常高质量的入门和进阶教程。
-
-
YouTube 教程 (非常直观):
-
Ryan Laley: 他的AI系列教程非常经典,循序渐进,强烈推荐。搜索 "Ryan Laley AI Series"。
-
Mathew Wadstein ("WTF is?"): 他的视频专注于解释单个系统或节点,非常适合查漏补缺。搜索 "Mathew Wadstein AI Perception" 或 "Mathew Wadstein Behavior Tree"。
-
CodeLikeMe: 提供很多项目驱动的AI教程。
-
总结与建议
-
从简单开始: 不要一开始就想做非常复杂的AI。先从
AIPerception
的On Target Perception Updated
事件打印信息开始,确保你理解了“感知”这一步。 -
逐步集成: 成功实现感知后,再引入
Blackboard
和Behavior Tree
来存储和使用这些信息。先做一个简单的“巡逻->追击”行为。 -
善用调试工具: UE5的AI调试工具非常强大!
-
在游戏运行时,按
'
(单引号) 键可以开启AI调试模式,你可以看到AI的视野范围、行为树的当前执行路径等。 -
在行为树和EQS编辑器中都有模拟调试功能,可以直观地看到逻辑执行情况。
-
-
最后再接触EQS: 当你对Perception、BT、BB已经很熟悉之后,再来学习EQS,你会发现它能极大地提升你AI的“智商”。
祝你学习顺利!AI是一个非常有趣且有深度的领域,享受创造智能角色的过程吧!