《Unity3D人工智能编程精粹》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:王洪源,陈慕羿,石征锦,华宇宁著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2014
  • ISBN:9787302379737
  • 页数:301 页
图书介绍:本书精选了Unity3D游戏开发中最关键、最实用的几项人工智能专题技术,以实例的方式由浅入深地论述人工智能理论、设计原则、编程实现方法,对书中的每一个案例都有详细的注释并运行测试通过。“游戏中的人工智能”介绍了游戏中人工智能的分层实现;“操控行为”是强大的群体智能仿真技术;A*寻路技术是用于寻路的核心技术;“角色对游戏环境的感知”,使角色能够正确的了解周围的环境及常用的状态机与行为树技术

第1章 Unity3D人工智能架构模型 1

1.1 游戏AI的架构模型 3

1.1.1 运动层 4

1.1.2 决策层 4

1.1.3 战略层 4

1.1.4 AI架构模型的其他部分 5

1.2 FPS/TPS游戏中的AI解析 5

1.2.1 FPS/TPS中的运动层 6

1.2.2 FPS/TPS中的决策层 6

1.2.3 FPS/TPS中的战略层 7

1.2.4 FPS/TPS中AI架构模型的支撑部分 7

第2章 实现AI角色的自主移动——操控行为 9

2.1 Unity3D操控行为编程的主要基类 11

2.1.1 将AI角色抽象成一个质点——Vehicle类 12

2.1.2 控制AI角色移动——AILocomotion类 14

2.1.3 各种操控行为的基类——Steering类 16

2.2 个体AI角色的操控行为 17

2.2.1 靠近 17

2.2.2 离开 19

2.2.3 抵达 20

2.2.4 追逐 22

2.2.5 逃避 25

2.2.6 随机徘徊 26

2.2.7 路径跟随 29

2.2.8 避开障碍 33

2.3 群体的操控行为 41

2.3.1 组行为 41

2.3.2 检测附近的AI角色 42

2.3.3 与群中邻居保持适当距离——分离 44

2.3.4 与群中邻居朝向一致——队列 46

2.3.5 成群聚集在一起——聚集 47

2.4 个体与群体的操控行为组合 49

2.5 几种操控行为的编程解析 51

2.5.1 模拟鸟群飞行 51

2.5.2 多AI角色障碍赛 54

2.5.3 实现动物迁徙中的跟随领队行为 56

2.5.4 排队通过狭窄通道 64

2.6 操控行为的快速实现——使用Unity3D开源库UnitySteer 72

2.7 操控行为编程的其他问题 75

第3章 寻找最短路径并避开障碍物——A*寻路 77

3.1 实现A*寻路的3种工作方式 78

3.1.1 基本术语 78

3.1.2 方式1:创建基于单元的导航图 79

3.1.3 方式2:创建可视点导航图 80

3.1.4 方式3:创建导航网格 81

3.2 A*寻路算法是如何工作的 83

3.2.1 A*寻路算法的伪代码 84

3.2.2 用一个实例来完全理解A*寻路算法 86

3.3 用A*算法实现战术寻路 97

3.4 A*Pathfinding Project插件的使用 100

3.4.1 基本的点到点寻路 100

3.4.2 寻找最近的多个道具(血包、武器、药等) 106

3.4.3 战术寻路——避开火力范围 110

3.4.4 在复杂地形中寻路——多层建筑物中的跨层寻路 116

3.4.5 RTS中的小队寻路——用操控行为和A*寻路实现 120

3.4.6 使用A*Pathfinding Project插件需要注意的问题 137

3.5 A*寻路的适用性 138

第4章 AI角色对游戏世界的感知 139

4.1 AI角色对环境信息的感知方式 141

4.1.1 轮询方式 141

4.1.2 事件驱动方式 141

4.1.3 触发器 142

4.2 常用感知类型的实现 143

4.2.1 所有触发器的基类——Trigger类 143

4.2.2 所有感知器的基类——Sensor类 145

4.2.3 事件管理器 146

4.2.4 视觉感知 148

4.2.5 听觉感知 153

4.2.6 触觉感知 156

4.2.7 记忆感知 157

4.2.8 其他类型的感知——血包、宝物等物品的感知 159

4.3 AI士兵的综合感知示例 164

4.3.1 游戏场景设置 165

4.3.2 创建AI士兵角色 166

4.3.3 创建玩家角色 176

4.3.4 显示视觉范围、听觉范围和记忆信息 179

4.3.5 游戏运行结果 182

第5章 AI角色自主决策——有限状态机 184

5.1 有限状态机的FSM图 185

5.1.1 《Pac-Man(吃豆人)》游戏中红幽灵的FSM图 185

5.1.2 《QuakeⅡ(雷神2)》中Monster怪兽的有限状态机 186

5.2 方法1:用Switch语句实现有限状态机 191

5.2.1 游戏场景设置 192

5.2.2 创建子弹预置体 193

5.2.3 创建敌人AI角色 194

5.2.4 创建玩家角色及运行程序 202

5.3 方法2:用FSM框架实现通用的有限状态机 205

5.3.1 FSM框架 205

5.3.2 FSMState类——AI状态的基类 206

5.3.3 AdvancedFSM类——管理所有的状态类 210

5.3.4 PatrolState类——AI角色的巡逻状态 213

5.3.5 ChaseState类——AI角色的追逐状态 215

5.3.6 AttackState类——AI角色的攻击状态 217

5.3.7 DeadState类——AI角色的死亡状态 218

5.3.8 AIController类——创建有限状态机,控制AI角色的行为 219

5.3.9 游戏场景设置 223

第6章 AI角色的复杂决策——行为树 224

6.1 行为树技术原理 226

6.1.1 行为树基本术语 226

6.1.2 行为树中的叶节点 227

6.1.3 行为树中的组合节点 227

6.1.4 子树的复用 232

6.1.5 使用行为树与有限状态机的权衡 233

6.1.6 行为树执行时的协同(Coroutine) 233

6.2 行为树设计示例 236

6.2.1 示例1:有限状态机/行为树的转换 236

6.2.2 示例2:带随机节点的战斗AI角色行为树 237

6.2.3 示例3:足球球员的AI行为树 238

6.3 行为树的执行流程解析——阵地军旗争夺战 239

6.3.1 军旗争夺战行为树 239

6.3.2 军旗争夺战的行为树遍历过程详解 240

6.4 使用React插件快速创建敌人AI士兵行为树 248

6.4.1 游戏场景设置 249

6.4.2 创建行为树 249

6.4.3 编写脚本实现行为树 253

6.4.4 创建敌人AI士兵角色 256

6.4.5 创建玩家角色及运行程序 257

第7章 AI综合示例——第三人称射击游戏 258

7.1 TPS游戏示例总体设计 258

7.1.1 TPS游戏示例概述 258

7.1.2 敌人AI角色行为树设计 259

7.2 TPS游戏示例场景的创建 261

7.2.1 游戏场景设置 261

7.2.2 隐蔽点设置 261

7.3 为子弹和武器编写脚本 262

7.3.1 创建子弹预置体 262

7.3.2 为M4枪编写脚本 265

7.4 创建玩家角色 268

7.5 创建第三人称相机 274

7.6 创建敌人AI士兵角色 278

7.6.1 用React插件画出行为树 278

7.6.2 为行为树编写代码 280

7.6.3 敌人AI士兵角色控制脚本 291

7.7 创建GUI用户界面 297

7.8 游戏截图 298

参考文献 301