约 11 分钟技术学习游戏引擎

Games104学习笔记(19)

GAMES104:游戏引擎 Gameplay 玩法系统:基础 AI(下)

课程:GAMES104《现代游戏引擎:从入门到实践》
第 16 讲(下):游戏引擎 Gameplay 玩法系统:基础 AI
本地视频时长:约 1 小时 12 分钟

一、本讲的核心:让 AI 从“会走”变成“会行动”

上半部分的导航解决角色到达目标的大致路线;本讲继续处理三个问题:角色如何在局部空间自然移动,多个角色如何互相避让,以及 AI 如何感知环境并据此选择行为。

一个完整的基础 AI 闭环可以概括为:

  1. 感知系统提供世界信息。
  2. 决策系统根据目标和状态选择行为。
  3. 导航与转向系统将行为意图转成移动。
  4. 移动结果反过来改变下一次感知与决策。

这四部分需要彼此配合,任何一个环节失真,都可能出现“知道目标却走不到”“会走路却撞人”或“看见敌人却不改变行为”等问题。

二、学习目标

  • 了解常见转向行为,以及全局寻路和局部移动的分工。
  • 认识群体模拟中的规则模型、力模型与速度障碍方法。
  • 理解静态空间信息、影响图和感官模拟如何为 AI 提供信息。
  • 掌握有限状态机、层级状态机和行为树的组织方式与取舍。

三、转向行为:把路径变成自然运动

1. 全局路径与局部转向

全局寻路回答“经过哪些区域到达目标”;转向行为回答“当前这一小段如何调整速度和朝向”。转向输出通常不是位置,而是期望加速度、速度或角速度,再交由角色运动系统施加约束。

这种分层让 AI 可以遵循全局路径,同时应对附近角色、动态障碍和速度变化。

2. 常见转向行为

行为 意图 典型用途
Seek 朝目标加速 追赶固定目标
Flee 远离威胁 逃跑、保持安全距离
Arrive 接近目标时减速 停在交互点或巡逻点
Pursue 预测目标未来位置后追赶 追逐移动玩家
Wander 在局部范围生成平滑随机目标 待机游荡
Path Following 沿全局路径选取前瞻点 将寻路结果落实为移动
Velocity Match 匹配目标速度 编队、跟随、群体移动
Align 匹配目标朝向 队形、角色转身或镜头协同

这些行为可叠加,但需要明确权重和优先级。例如追逐行为与避障行为同时输出相反方向时,简单相加可能让角色抖动或停滞。

3. 速度匹配与朝向匹配

速度匹配根据目标速度与当前速度的差异计算调整量,使角色在有限时间内接近目标速度。朝向匹配以目标朝向为输入,输出角速度或角加速度。

两者常用于让多个角色看起来属于同一队伍,而非各自独立移动。它们需要遵守最大加速度、最大转向速度和减速距离等运动约束,否则会产生突然加速或不自然旋转。

四、群体模拟:多人移动而不互相穿透

1. 基于规则的微观模型

微观模型将每个角色视为独立个体,通过局部规则产生群体行为。经典的三类规则是:

规则 目标 直观效果
Separation 与过近邻居拉开距离 避免重叠和拥挤
Cohesion 朝附近成员的中心靠拢 保持群体聚合
Alignment 与邻居方向或速度趋同 形成同向流动

这种方法容易理解和扩展,适合鸟群、鱼群、小规模队伍等效果。缺点是局部规则在高密度或复杂约束下可能出现振荡、拥堵或无法预测的整体形态。

2. 宏观模型

宏观模型将人群视作连续介质,而非逐个模拟个体。它关注密度、流速和目标方向等整体量,更适合大规模人群或需要稳定流动效果的场景。

宏观模型减少了单个个体之间的直接交互计算,但不擅长表达少量关键角色的精细行为。因此实际系统常混合使用:远处人群采用宏观近似,近处可互动角色采用微观模型。

3. 基于力的避障

力模型将角色期望移动和邻居、墙体的排斥影响组合为合力。它容易融入物理或转向系统,也能表现紧急疏散等动态效果。

代价是需要谨慎调参:力过强会导致角色远离目标,过弱则会碰撞;在狭窄通道中,彼此排斥的角色可能原地抖动或形成堵塞。

4. 速度障碍

速度障碍方法不直接推开角色,而是分析在一段预测时间内哪些速度会导致与邻居碰撞,并从安全速度集合中选择合适速度。

它通常能比单纯力模型更准确地处理相向而行和动态避让,但实现复杂度更高,也可能在对称场景中产生左右摇摆。工程上需要配合优先级、偏好方向、预测范围和稳定化策略。

五、感知:让 AI 获取可用于决策的信息

1. 信息来源

AI 的信息可分为内部信息与外部信息:

类型 示例
内部信息 当前生命值、弹药、冷却、任务阶段、当前目标
静态空间信息 导航数据、掩体点、巡逻点、智能对象、战术区域
动态空间信息 敌人最近位置、威胁范围、可见区、声音来源、影响图

感知系统应避免把整个世界状态无差别送给每个 AI。信息获取的范围、精度、延迟和更新频率都是玩法设计的一部分。

2. 静态空间信息

导航网格之外,关卡通常还会预先标注掩体、伏击点、交互装置、巡逻路线和制高点。这类数据为 AI 决策提供语义:它不仅知道某处能走,还知道某处适合躲避、观察或执行特定动作。

将此类信息以智能对象或战术点形式暴露给 AI,能减少运行时昂贵的几何分析,也让关卡设计者直接参与 AI 行为质量的塑造。

3. 动态空间信息与影响图

影响图将世界离散为区域或网格,并在其中累积危险、可见度、友军控制、声音、资源价值等动态信号。AI 读取影响图时,不必逐一检查所有对象,而可快速得到某个区域的“风险”或“吸引力”。

影响图特别适合:

  • 战术游戏中的威胁与控制区域。
  • RTS 中的兵力密度、资源风险和进攻路线。
  • 潜行游戏中的视线覆盖、警戒范围和最后已知位置。

影响图的分辨率、衰减方式和更新频率决定了精度与成本。过于频繁或过细的更新会接近直接查询全世界,失去聚合信息的优势。

4. 感官模拟

光、声音、气味等信号会随距离和遮挡衰减。游戏中的感官模拟通常不追求完整物理精度,而是提供足以支撑玩法的近似:

  • 视觉可结合视锥、遮挡检测、照明强度与距离。
  • 听觉可基于声源半径、传播时间、阻挡与事件强度。
  • 气味或痕迹可随时间衰减,并向附近区域扩散。

将连续信号简化为区域值或影响图,能让大量 AI 在可控成本内共享感知结果。

六、决策系统:从信息到行动

本讲列出了有限状态机、行为树等常见决策方法。它们的共同目标是:在每次更新时,依据感知、内部状态和目标,选择下一步行动。

决策系统不应直接承担所有具体操作。更稳妥的结构是:决策层选择“追击、搜索、撤退、使用掩体”等意图,动作层再调用导航、动画、战斗和交互系统去实现。

七、有限状态机与层级状态机

1. 有限状态机

有限状态机将角色行为划分为有限状态,并用条件控制转移。例如守卫可处于巡逻、警戒、追击和搜索状态。

它的优点是直观、反应快,适合状态数较少、转移条件清晰的逻辑。问题在于状态增加后,状态之间的连线会迅速膨胀,转移规则难以维护。

2. 层级有限状态机

层级有限状态机通过父状态和子状态分组复杂行为。例如“战斗”可作为父状态,下方再区分接近、攻击、躲避和撤退。

优点 代价
将公共进入、退出和转移逻辑放到父层 层级关系增加理解成本
降低平铺状态图的连线数量 状态继承与优先级需要明确定义
保持较快的事件响应(?事实上难以快速切换相邻较远的状态) 设计不当仍可能形成深层嵌套

层级并不能自动消除复杂性,但能把复杂性按语义拆分。关键是让每一层状态机有明确职责。

八、行为树:用控制节点组织反应与计划

1. 基本节点

行为树由条件、动作和控制节点组成。节点通常返回三种状态:成功、失败或运行中。

节点类型 作用
条件节点 判断敌人是否可见、是否有掩体、是否低血量等
动作节点 移动、攻击、装填、巡逻、等待等
Sequence 子节点依次执行,任一失败则停止当前序列
Selector 按优先级尝试子节点,直到某个节点成功或运行
Parallel 同时推进多个子任务,需要定义完成与失败规则
Decorator 包装节点,实现重复、反转、冷却或条件限制

2. Tick 驱动

行为树通常在每次 AI 更新时从根节点开始 Tick。控制节点根据子节点的返回状态决定继续、切换或重试;运行中的动作会在后续 Tick 中继续执行。

这种机制使 AI 能快速响应环境变化:条件不再满足时,上层选择器可以转去执行更高优先级行为。但过于频繁的切换也会导致角色反复打断动作,因此需要冷却、最小持续时间或中断策略。

3. Blackboard

Blackboard 是行为树共享的记忆空间,用键值方式保存目标、最后已知位置、当前路径、可用掩体、动作结果等数据。条件与动作节点通过 Blackboard 协作,而不需要彼此直接依赖。

Blackboard 的价值在于让行为树的输入和输出可观察、可调试;风险在于键名和数据来源失控后,会重新形成隐式全局状态。因此应明确每个键的所有者、生命周期和更新规则。

4. 行为树的优点与边界

行为树擅长表达“如果条件成立,就优先做某事;否则尝试下一种方案”的反应式逻辑,也便于设计人员通过节点组合调整行为。

它不一定适合长距离、多步骤、需要主动搜索行动序列的规划问题。此时可以结合规划、目标导向行动或更高层的任务网络。行为树更像一个可反应的执行框架,而不是所有 AI 问题的唯一答案。

九、从基础 AI 走向规划

基础 AI 的导航、转向、感知和行为树已经能构成许多敌人和 NPC 的行为闭环。更复杂的目标管理和多步骤行动编排,通常会进一步引入层级任务网络、目标导向行动规划、蒙特卡洛树搜索或机器学习等方法。

这些高级方法并不替代基础模块。没有可靠路径、稳定感知和可执行动作,规划出的高层目标也无法落地。

十、设计与工程原则

  1. 将全局路径、局部转向和群体避障分层,避免同一模块承担所有移动决策。
  2. 对大规模人群选择与规模匹配的微观、宏观或混合模型。
  3. 感知信息要有成本、范围和时效,不应无条件暴露真实世界状态。
  4. 用关卡标注、影响图和智能对象补充原始几何信息。
  5. 决策层选择意图,动作层实现意图;状态机与行为树都要控制状态和依赖的膨胀。

十一、要点回顾

  1. 转向行为把导航结果转化为受运动约束的局部移动。
  2. 群体模拟可使用局部规则、连续流模型、力模型或速度障碍,各自适用的规模与稳定性不同。
  3. 静态战术数据、动态影响图和感官模拟为 AI 提供不同粒度的信息。
  4. 有限状态机反应快且直观;层级状态机用语义分组缓解状态爆炸。
  5. 行为树通过条件、动作、控制节点和 Blackboard 组织可观察的反应式决策。

参考资料