09 AI技术

游戏AI技术概述

定义

学术AI:AI指一个可以观察周遭环境并作出行动以达致成功的系统
游戏AI: 满足玩家在游戏中的体验感

基础术语

  • 玩家角色(Player Character)
  • 电脑假冒的玩家角色(Bot)
  • 敌人、对话村民(NPC )

游戏AI的目的

  1. 提升玩家的游戏代入感以及各种情感
  2. 有趣,强度适中,满足玩家心流的挑战
  3. 行为合理,没有明显破绽
  4. 可能需要“真实”

游戏AI四大主题

环境感应

  • 视野管理(通过物理系统)
  • 听觉管理(NavMesh)
  • 将复杂环境数据转化为便于Al系统理解的简单中间数据

知识管理

通过黑板(Blackboard)来作为数据共享,

  • Agent黑板
  • squad黑板

存储

  • 消耗大的感应结果
  • 寻路结果
  • 分帧Plan的部分Plan结果

行为模型

  • 没有万金油的行为模型能解决一切AlI问题
  • 了解这些方法的核心思路,有助于选型、组合解决实际Al问题

1.朴素脚本代码

  • 如魔兽世界早期的boss,使用switch case 实现各种情况

2.有限状态机(Finite State Machine,FSM)

  • 本质是图
  • 原理简单:—个时刻只处于一个状态,符合条件时跳转状态
  • 随着状态增多,状态间跳转可能会平方级增长
  • 状态的重用性差,状态Copy Paste严重

3.分层有限状态机(Hierarchical Finite State Machine,HFSM)

  • 通过状态分层(分组),做到状态按组重用
  • 每层都有自己的“历史状态”的引用节点
  • 重回状态层时,直接进入H所引用的状态

4.行为树(Behavior Tree)

  • 本质是树
  • 应用游戏︰始于Halo2,不计其数
  • 节点返回当前执行状态:运行中、已成功、已失败
  • 组合节点(Composite)有1~N个孩子,其决定直接孩子的执行方式
    • 顺序执行(Sequence)
    • 选择执行(Selector)
    • 并行执行(Parallel)
    • 可继承可扩展
  • 叶子节点
    • 判断节点(Conditional),读取环境信息判断是否符合执行条件
    • 行为行节点(Action),执行具体行为
  • 节点可被继承为特定功能的节点类型
    • 比如一个Action是一个状态机,
    • 一个判断节点是一个效用决策器

5.效用决策(Utility Decision System)

  • 应用游戏:模拟人生
  • 蚂蚁军团:现在要扩展领土?还是培育更多兵力?
  • 根据环境,个体对每个特性进行归一化评分
    • 人口拥挤程度:0.9
    • 健康程度:0.92
    • 培育剩余空间:0.15
  • 为每个特性加上权重,发现扩展的分数0.91大于培育分数0.535
  • 所以最终选择扩展领土的行为
  • 相比之前框架,行为开始显得非常动态自驱
  • 缺点︰可能难以调参
graph LR
Population:4500 --> Crowdedness:0.9
MaxPop:5000 --> Crowdedness:0.9
Food:92 --> Health:0.92
NurserySpace:15 --> Nursery:0.15
Crowdedness:0.9 --> ActionExpandScore:0.91
Health:0.92 --> ActionExpandScore:0.91
Health:0.92 --> ActionBreedScore:0.535
Nursery:0.15 --> ActionBreedScore:0.535

6.GOAP(Goal-Oriented Action Planners,目标导向行为规划)

  • 应用游戏:F.E.A.R、Fallout3、JustCause2,…..
  • 开发者定义每个行为:先决条件、消耗、结果
  • 运行时后向搜索:从目标状态开始回溯搜索,搜索满足条件的行为列表
  • 挑选消耗和最小的行为列表
  • 执行这个行为列表
  • 优点:开发者只需配置行为本身,行为序列的建立通过运行时搜索动态建立

配置

Action Condition Effect Cost
巡逻 没发现敌人&&无来电 安全 20
接电话 没发现敌人&&有来电 信息更新 30
关闭出入口 发现敌人 安全 40
攻击敌人 发现敌人&&有武器&&已关闭出入口 安全 20
获取武器 发现敌人&&无武器 有武器 10

7.HTN(Hierarchical Task Networks,层级任务网络)

  • 应用游戏:上古卷轴、Killzone3、HorizonZeroDawn,……
  • 和GOAP有相似之处,但不同点主要在于:
    • 元任务(Primitive Task)可组合为组合任务(Compound Task)
    • 每个任务有自己的条件、行动、结果
    • 运行时前向搜索,不断地搜索符合条件的任务(元任务、组合任务)
    • 直到所有任务都是元任务,得出一个任务列表,
    • 执行这个任务列表

8.Maching Learning

寻路

搜索需要基于一定的规则,将地图离散化
a. 原始地图
b.按格子离散
c.按waypoint离散
d.按三角形离散,Nav Mesh

实现 量级 搜索速度 平滑 编辑
简单
较简单
较复杂

Astar寻路算法

Jump Point算法

Unreal的游戏AI实现介绍

行为树

Al Perception

Environment Query System (EQs)


09 AI技术
https://enlight3n.github.io/2025/04/29/UE_TOC/09-AI技术/
作者
Enlight3n
发布于
2025年4月29日
许可协议