[套装书]Unity人工智能实战(原书第2版)+Unity游戏开发(原书第3版)(2册)

作者
豪尔赫·帕拉西奥斯 迈克·吉格
丛书名
游戏开发与设计技术丛书
出版社
机械工业出版社
ISBN
9782101129203
简要
简介
内容简介书籍计算机书籍 ---------------------------Unity人工智能实战(原书第2版)--------------------------- 本书将介绍构建强大的AI的工具,既可以创建更聪明的敌人,改进大 boss,也可以构建自定义的AI引擎。本书旨在成为使用Unity开发人工智能技术的一站式参考。首先,你将快速浏览在游戏环境中使用agent、编程移动以及导航的基本构建模块。接下来,你将通过实例学习如何使用简单的自定义技术改进agent的决策制定和协调机制。然后,你将学习如何模拟agent的视觉和听觉,用于自然和拟人的AI行为,再用图结构改进agent。本书还涵盖了新的导航网格技术,这项技术在Unity 2018中引入,改良了AI和路径查找工具。你还可以用决策制定技术加强AI,运用于简单的诸如井字棋和跳棋的棋类游戏,以及安排agent之间的协作,使它们像整体一样工作。 ---------------------------Unity游戏开发(原书第3版)--------------------------- 本书主要介绍Unity 2018的使用和游戏开发流程中涉及的各种知识。每一章的结构特别清晰,先综述该章要介绍的内容,然后一步步深入讲解,中间穿插着很多动手做的实践操作,可以让读者加深对某个概念、方法的理解,每章的最后还有一个小测验和一个稍微大一点的实践练习,用于巩固该章的学习内容。阅读每一章平均需要一个小时左右,每一章的内容都构建在前一章的基础之上。书中还穿插了四个实战项目,一来可以加强前面几章的学习,二来在整书阅读完毕之后,可以看到自己的读书成果。
目录



---------------------------Unity人工智能实战(原书第2版)---------------------------


译者序
前 言
第1章 行为——智能移动 1
1.1 简介 1
1.2 创建行为模板 2
1.3 追赶和逃跑 4
1.4 为物理引擎调整agent 6
1.5 到达和离开 8
1.6 朝向物体 10
1.7 徘徊 12
1.8 按路径移动 14
1.9 避开agent 18
1.10 避开墙体 20
1.11 通过权重混合多个行为 21
1.12 通过优先级混合多个行为 22
1.13 射击抛射体 24
1.14 预测抛射体的着地点 26
1.15 锁定抛射体 27
1.16 创建跳跃系统 28
第2章 导航 32
2.1 简介 32
2.2 用网格表示世界 33
2.3 用可视点法表示世界 41
2.4 用自制的导航网格表示世界 44
2.5 用深度优先搜索在迷宫中找到出路 47
2.6 用广度优先搜索在网格中找到最短路径 49
2.7 用迪杰斯特拉算法找到最短路径 50
2.8 用A*找到最优路径 53
2.9 改进A*算法的内存占用:IDA* 56
2.10 在多个帧中规划导航:时间片搜索 58
2.11 使路径变得平滑 60
第3章 决策制定 62
3.1 简介 62
3.2 通过决策树做选择 62
3.3 实现有限状态机 65
3.4 改进有限状态机:分层的有限状态机 67
3.5 实现行为树 69
3.6 使用模糊逻辑 71
3.7 用面向目标的行为制定决策 74
3.8 实现黑板架构 76
3.9 尝试Unity的动画状态机 78
第4章 新的NavMesh API 84
4.1 简介 84
4.2 初始化NavMesh开发组件 84
4.3 创建和管理NavMesh,用于多种类型的agent 86
4.4 在运行时创建和更新NavMesh数据 89
4.5 控制NavMesh实例的生命周期 90
4.6 连接多个NavMesh实例 92
4.7 创建动态的带有障碍物的NavMesh 93
4.8 用NavMesh API实现某些行为 94
第5章 协作和战术 97
5.1 简介 97
5.2 管理队形 98
5.3 扩展A*算法用于协作:A* mbush 102
5.4 用高度分析路径点 105
5.5 用覆盖性和可见性分析路径点 106
5.6 自动化创建路径点 107
5.7 将路径点作为示例用于决策制定 110
5.8 实现势力图 111
5.9 用淹没图改进势力图 114
5.10 用卷积滤波器改进势力图 118
5.11 构建战斗循环 120
第6章 agent感知 128
6.1 简介 128
6.2 基于碰撞系统的视觉函数 128
6.3 基于碰撞系统的听觉函数 130
6.4 基于碰撞系统的嗅觉函数 133
6.5 基于图的视觉函数 136
6.6 基于图的听觉函数 138
6.7 基于图的嗅觉函数 140
6.8 在潜行游戏中创建感知 141
第7章 棋类游戏和应用的搜索AI 148
7.1 简介 148
7.2 使用博弈树类 148
7.3 实现Minimax算法 150
7.4 实现Negamax算法 152
7.5 实现AB Negamax算法 154
7.6 实现Negascout算法 156
7.7 实现井字游戏对手 158
7.8 实现跳棋游戏对手 161
7.9 用UCB1实现石头剪刀布AI 171
7.10 实现无悔匹配算法 175
第8章 机器学习 178
8.1 简介 178
8.2 使用N元语法预测器预测行动 178
8.3 改进预测器:分层的N元语法 181
8.4 学习使用朴素贝叶斯分类器 182
8.5 实现强化学习 184
8.6 实现人工神经网络 188
第9章 程序化内容生成 192
9.1 简介 192
9.2 用深度优先搜索创建迷宫 192
9.3 为地下城和群岛实现可构造算法 195
9.4 生成风景 199
9.5 使用N元语法生成内容 201
9.6 用进化算法生成敌人 204
第10章 其他 209
10.1 简介 209
10.2 创建和管理可编写脚本的对象 209
10.3 更好地处理随机数 211
10.4 构建空气曲棍球游戏对手 213
10.5 实现竞速游戏架构 218
10.6 使用橡皮筋系统管理竞速难度 220



---------------------------Unity游戏开发(原书第3版)---------------------------


译者序
前言
第1章 Unity介绍1
1.1 Unity安装1
1.2 熟悉Unity编辑器3
1.2.1 Project对话框4
1.2.2 Unity界面5
1.2.3 Project视图7
1.2.4 Hierarchy视图9
1.2.5 Inspector 视图10
1.2.6 Scene视图11
1.2.7 Game视图12
1.2.8 隆重介绍:工具条13
1.3 在Unity 场景视图中导航14
1.3.1 Hand工具14
1.3.2 Flythrough模式15
1.4 本章小结16
1.5 问答16
1.6 测验16
1.7 练习17
第2章 游戏对象18
2.1 维度和坐标系18
2.1.1 3D中的D18
2.1.2 使用坐标系19
2.1.3 世界坐标系和本地坐标系20
2.2 游戏对象21
2.3 变换22
2.3.1 平移22
2.3.2 旋转23
2.3.3 缩放25
2.3.4 变换的风险25
2.3.5 小工具的位置26
2.3.6 变换和嵌套的对象27
2.4 本章小结28
2.5 问答28
2.6 测验28
2.7 练习29
第3章 模型、材质和纹理30
3.1 模型的基础知识30
3.1.1 内置的3D对象31
3.1.2 导入模型32
3.1.3 模型和Asset Store33
3.2 纹理、着色器和材质35
3.2.1 纹理35
3.2.2 着色器36
3.2.3 材质36
3.2.4 着色器进阶37
3.3 本章小结39
3.4 问答39
3.5 测验40
3.6 练习40
第4章 地形和环境42
4.1 地形的生成42
4.1.1 将地形添加到项目中42
4.1.2 高度图制作43
4.1.3 Unity地形制作工具45
4.2 地形纹理47
4.2.1 导入纹理资源48
4.2.2 纹理化地形49
4.3 生成树和草51
4.3.1  绘制树木51
4.3.2 绘制青草52
4.3.3 地形设置54
4.4 角色控制器56
4.5 本章小结57
4.6 问答57
4.7 测验57
4.8 练习58
第5章 灯光和摄像机59
5.1 灯光59
5.1.1 烘焙灯光和实时灯光60
5.1.2 点光源60
5.1.3 聚光灯62
5.1.4 定向光63
5.1.5 利用对象创建灯光64
5.1.6 光晕64
5.1.7 Cookie65
5.2 摄像机66
5.2.1 摄像机介绍66
5.2.2 多个摄像机67
5.2.3 屏幕分拆和画中画68
5.3 图层70
5.3.1 图层介绍70
5.3.2 使用图层71
5.4 本章小结73
5.5 问答73
5.6 测验74
5.7 练习74
第6章 游戏案例1:Amazing Racer75
6.1 设计75
6.1.1 理念75
6.1.2 规则76
6.1.3 需求76
6.2 创建游戏世界77
6.2.1 制作地形77
6.2.2 添加环境78
6.2.3 雾效79
6.2.4 天空盒79
6.2.5 角色控制器80
6.3 游戏化80
6.3.1 添加游戏控制对象81
6.3.2 添加脚本82
6.3.3 将脚本连在一起84
6.4 游戏测试84
6.5 本章小结86
6.6 问答86
6.7 测验86
6.8 练习87
第7章 脚本(上)88
7.1 脚本88
7.1.1 创建脚本89
7.1.2 添加脚本91
7.1.3 分析脚本的基本内容92
7.1.4 using部分92
7.1.5 类声明部分93
7.1.6 类内容93
7.2 变量94
7.2.1 创建变量94
7.2.2 变量作用域95
7.2.3 公共和私有96
7.3 运算符96
7.3.1 算术运算符96
7.3.2 赋值运算符97
7.3.3 相等运算符98
7.3.4 逻辑运算符98
7.4 条件99
7.4.1 if语句99
7.4.2 if/else语句100
7.4.3 if/else if语句100
7.5 迭代102
7.5.1 while循环102
7.5.2 for循环102
7.6 本章小结103
7.7 问答103
7.8 测验104
7.9 练习104
第8章 脚本(下)105
8.1 方法105
8.1.1 方法简介106
8.1.2 编写方法107
8.1.3 使用方法109
8.2 输入110
8.2.1 输入的基础知识110
8.2.2 输入脚本111
8.2.3 特定键的输入112
8.2.4 鼠标输入113
8.3 访问局部组件114
8.3.1 使用GetComponent115
8.3.2 访问Transform115
8.4 访问其他对象116
8.4.1 寻找其他对象116
8.4.2 修改对象组件118
8.5 本章小结119
8.6 问答119
8.7 测验120
8.8 练习120
第9章 碰撞121
9.1 刚体121
9.2 启用碰撞122
9.2.1 碰撞体122
9.2.2 物理材质124
9.3 触发器125
9.4 光线投射127
9.5 本章小结129
9.6 问答129
9.7 测验130
9.8 练习130
第10章 游戏案例2:Chaos Ball131
10.1 设计131
10.1.1 理念131
10.1.2 规则132
10.1.3 需求132
10.2 竞技场132
10.2.1 创建竞技场133
10.2.2 纹理化133
10.2.3  创建超级弹性材质134
10.2.4 完成竞技场制作135
10.3 游戏实体135
10.3.1 玩家135
10.3.2 混乱球136
10.3.3 彩球138
10.4 控制对象138
10.4.1 球门139
10.4.2 Game Manager140
10.5 优化游戏141
10.6 本章小结142
10.7 问答142
10.8 测验142
10.9 练习143
第11章 预设144
11.1 预设的基础知识144
11.1.1 预设相关的术语145
11.1.2 预设的结构145
11.2 使用预设146
11.2.1 向场景中添加预设实例149
11.2.2 继承149
11.2.3 中断预设之间的关联151
11.2.4 通过代码实例化预设151
11.3 本章小结151
11.4 问答152
11.5 测验152
11.6 练习152
第12章 2D游戏工具154
12.1 2D游戏的基础知识154
12.2 正交投影摄像机156
12.3 添加精灵158
12.3.1 导入精灵158
12.3.2 精灵模式158
12.3.3 导入精灵大小160
12.4 绘制顺序160
12.4.1 排序图层161
12.4.2 层级的顺序162
12.5 2D物理163
12.5.1 2D刚体163
12.5.2 2D碰撞体163
12.6 本章小结164
12.7 问答164
12.8 测验165
12.9 练习165
第13章 2D瓦片地图167
13.1 瓦片地图的基础知识167
13.1.1 创建一张瓦片地图167
13.1.2 网格169
13.2 调色板169
13.3 瓦片171
13.3.1 配置精灵171
13.3.2 创建瓦片172
13.3.3 绘制瓦片173
13.3.4 自定义调色板175
13.4 瓦片地图和物理176
13.4.1 瓦片地图碰撞体176
13.4.2 使用Composite Collider
2D组件178
13.5 本章小结178
13.6 问答179
13.7 测验179
13.8 练习179
第14章 用户界面180
14.1 UI的基本原则180
14.2 画布181
14.2.1 Rect Transform182
14.2.2 锚点182
14.2.3 其他Canvas组件185
14.3 UI元素185
14.3.1 图片185
14.3.2 文本186
14.3.3 按钮187
14.4 画布的渲染模式190
14.4.1 Screen Space-Overlay190
14.4.2 Screen Space-Camera191
14.4.3 World Space191
14.5 本章小结192
14.6 问答192
14.7 测验192
14.8 练习193
第15章 游戏案例3:Captain Blaster195
15.1 设计195
15.1.1 理念195
15.1.2 规则196
15.1.3 需求196
15.2 游戏世界196
15.2.1 摄像机197
15.2.2 背景197
15.2.3 游戏实体198
15.2.4 玩家198
15.2.5 陨石200
15.2.6 子弹201
15.2.7 触发器201
15.2.8 UI202
15.3 控制流203
15.3.1 游戏管理器203
15.3.2 陨石脚本205
15.3.3 陨石生成206
15.3.4 DestroyOnTrigger脚本207
15.3.5 ShipControl脚本207
15.3.6 Bullet脚本209
15.4 优化210
15.5 本章小结210
15.6 问答211
15.7 测验211
15.8 练习211
第16章 粒子系统212
16.1 粒子系统的基本知识212
16.1.1 粒子212
16.1.2 Unity粒子系统212
16.1.3 粒子系统控制器213
16.2 粒子系统模块214
16.2.1 默认模块215
16.2.2 Emission模块216
16.2.3 Shape模块216
16.2.4 Velocity over Lifetime模块217
16.2.5 Limit Velocity over Lifetime模块217
16.2.6 Inherit Velocity模块217
16.2.7 Force over Lifetime模块217
16.2.8 Color over Lifetime 模块218
16.2.9 Color by Speed模块218
16.2.10 Size over Lifetime模块218
16.2.11 Size by Speed模块219
16.2.12 Rotation over Lifetime模块219
16.2.13 Rotation by Speed模块219
16.2.14 External Forces模块219
16.2.15 Noise模块219
16.2.16 Collision模块220
16.2.17 Triggers模块222
16.2.18 Sub Emitter模块222
16.2.19 Texture Sheet 模块222
16.2.20 Lights模块222
16.2.21 Trails模块223
16.2.22 Custom Data模块223
16.2.23 Renderer模块223
16.3 Curves Editor224
16.4 本章小结225
16.5 问答225
16.6 测验225
16.7 练习226
第17章 动画227
17.1 动画的基础知识227
17.1.1 绑定227
17.1.2 动画228
17.2 动画类型228
17.2.1 2D动画228
17.2.2 创建动画230
17.3 动画工具231
17.3.1 动画窗口231
17.3.2 创建一个新的动画232
17.3.3 记录模式234
17.3.4 Curves Editor236
17.4 本章小结237
17.5 问答237
17.6 测验237
17.7 练习238
第18章 Animator239
18.1 Animator的基础知识239
18.1.1 回顾rigging240
18.1.2 导入模型241
18.2 配置资源242
18.2.1 rig准备242
18.2.2 动画准备243
18.3 创建一个Animator247
18.3.1 Animator视图249
18.3.2 Idle动画249
18.3.3 参数251
18.3.4 状态和混合树251
18.3.5 过渡253
18.4 编写Animator的脚本253
18.5 本章小结254
18.6 问答255
18.7 测验255
18.8 练习255
第19章 时间线256
19.1 时间线的基础知识256
19.1.1 剖析时间线257
19.1.2 创建时间线257
19.2 使用时间线259
19.2.1 时间线窗口259
19.2.2 时间线轨道260
19.2.3 时间线剪辑261
19.3 复杂的控制263
19.3.1 在轨道上混合剪辑263
19.3.2 针对时间线编程264
19.4 本章小结266
19.5 问答266
19.6 测验266
19.7 练习267
第20章 游戏案例4:Gauntlet Runner268
20.1 设计268
20.1.1 理念268
20.1.2 规则268
20.1.3 需求269
20.2 游戏世界269
20.2.1 场景269
20.2.2 Gauntlet270
20.2.3 滚动地面271
20.3 实体272
20.3.1 充电装置272
20.3.2 障碍物273
20.3.3 触发器区域274
20.3.4 玩家274
20.4 控制管理器275
20.4.1 触发器区域脚本275
20.4.2 游戏管理器脚本276
20.4.3 Player脚本278
20.4.4 碰撞脚本279
20.4.5 出生点脚本280
20.4.6 将游戏的各个部分组合在一起281
20.5 改进的空间282
20.6 本章小结282
20.7 问答282
20.8 测验283
20.9 练习283
第21章 音频284
21.1 音频的基础知识284
21.1.1 音频的组成部分284
21.1.2 2D和3D音频285
21.2 音频源285
21.2.1 导入音频剪辑286
21.2.2 在Scene视图中测试声音287
21.2.3 3D音频288
21.2.4 2D音频289
21.3 音频脚本289
21.3.1 开始或者停止播放音频289
21.3.2 修改音频剪辑291
21.4 音频混频器291
21.4.1 创建音频混频器291
21.4.2 将音频发送到混频器292
21.5 本章小结293
21.6 问答293
21.7 测验293
21.8 练习294
第22章 移动开发296
22.1 为移动开发做准备296
22.1.1 设置环境297
22.1.2 Unity Remote297
22.2 加速计299
22.2.1 针对加速计的设计300
22.2.2 使用加速计300
22.2.3 多点触摸输入301
22.3 本章小结303
22.4 问答303
22.5 测验303
22.6 练习304
第23章 优化和部署305
23.1 管理场景305
23.1.1 建立场景顺序306
23.1.2 切换场景307
23.2 保存数据和对象308
23.2.1 保存对象308
23.2.2 保存数据309
23.3 Unity玩家设置311
23.3.1 跨平台设置311
23.3.2 各个平台的设置312
23.4 构建游戏313
23.4.1 构建设置313
23.4.2 游戏设置314
23.5 本章小结315
23.6 问答315
23.7 测验316
23.8 练习316
第24章 结束语317
24.1 成果317
24.2 19小时的学习时间317
24.2.1 4个完整的游戏案例318
24.2.2 超过50个场景319
24.3 下一步怎么走319
24.3.1 制作游戏319
24.3.2 与人打交道319
24.3.3 记录320
24.4 可供使用的资源320
24.5 本章小结320
24.6 问答321
24.7 测验321
24.8 练习321

推荐

车牌查询
桂ICP备20004708号-3