专题栏目:ARVRMR虚拟现实

《Unity3D动作游戏开发实战》

书籍简介:

动作游戏作为一大热门的游戏品类,一直不缺少玩家受众欢迎。但其较高的工艺门槛、技术细节、复杂度等都阻碍了其开发进程。本书结合作者自身的研发经验进行撰写,从角色、战斗、关卡、物理等多个剖面去解析动作游戏在研发中遇到的总总困难,尽可能的绕过或避免研发中的已知问题,最终帮助读者在对于该品类游戏的理解与开发上提供助力。

长期以来,以动作游戏为核心的书籍一直较为匮乏。因此也成为了本书撰写的契机。通过对本书的阅读,不管是爱好动作游戏的独立开发者,还是期望进一步提升自身能力的游戏从业者,相信您都能在其中有所收获。

作者简介:

周尚宣

出版日期:

2020年08月

章节目录:

前言
第1篇 概述及前期准备
第1章 概述 2
1.1 本书的侧重点及目标 2
1.2 Unity3D引擎在大环境中的发展现状 4
1.3 Steam、独立游戏及动作游戏的现状 5
1.3.1 Steam平台简介 5
1.3.2 国内独立游戏的开端 6
1.3.3 细看动作类独立游戏 6
1.4 设计目标:大而全还是小而精 7
1.4.1 资源复用 7
1.4.2 舍弃不必要的维度 8
1.4.3 选择合适的题材 8
第2章 前期准备 9
2.1 通用预备知识 9
2.1.1 使用协程分解复杂逻辑 9
2.1.2 自定义的插值公式 10
2.1.3 消息模块的设计 12
2.1.4 模块间的管理与协调 13
2.2 基于编辑器环境的基础知识 14
2.2.1 编辑器工具的编写 15
2.2.2 关联游戏配置数据 19
2.2.3 常量生成器 22
2.3 3D游戏所需要的数学知识 24
2.3.1 向量加减 24
2.3.2 点乘 25
2.3.3 叉乘 26
2.3.4 投影 27
2.3.5 四元数 28
2.4 其他准备 29
2.4.1 关注项目中的GC问题 29
2.4.2 控制台工具的编写 31
2.4.3 项目目录结构建议 32
2.4.4 项目的程序流程结构建议 33
第2篇 动作游戏核心模块
第3章 物理系统详解 36
3.1 物理系统基本内容梳理 36
3.1.1 系统参数设置 36
3.1.2 Fixed Update更新频率 37
3.1.3 Rigidbody参数简介 38
3.1.4 物理材质设置 38
3.2 常见问题 39
3.2.1 物理步的理解误区 39
3.2.2 重叠与挤出问题 40
3.2.3 地面检测优化处理 40
3.2.4 Dash与瞬移的优化 41
3.2.5 踩头问题及解决方法 42
3.2.6 动画根运动的物理问题 45
3.3 为动作游戏定制碰撞系统 46
3.3.1 设计目标 46
3.3.2 OBB碰撞检测简介 47
3.3.3 Box与Box相交测试 47
3.3.4 Box与Sphere相交测试 50
3.3.5 Sphere与Sphere相交测试 52
3.3.6 不同形状的边界点获取 52
3.3.7 碰撞对象管理器 56
第4章 主角系统设计 58
4.1 基础要素 58
4.1.1 同类游戏对比 58
4.1.2 逻辑编写前的准备工作 59
4.1.3 移动逻辑 59
4.1.4 跳跃逻辑 65
4.1.5 攻击逻辑 67
4.1.6 受击逻辑 69
4.1.7 应对脚本类爆炸的问题 71
4.2 常规功能 72
4.2.1 角色有限状态机 72
4.2.2 设计挂接点接口 73
4.2.3 技能系统 74
4.2.4 连续技功能 75
4.3 场景互动部分 78
4.3.1 角色冻结 78
4.3.2 场景互动组件 79
第5章 关卡部分详解 82
5.1 前期考量 82
5.1.1 从Graybox说起 82
5.1.2 规划层级结构 83
5.1.3 模型的导出与调试 84
5.2 开发阶段深入解析 85
5.2.1 SpawnPoint的使用 85
5.2.2 扩展SpawnPoint 87
5.2.3 对象池的编写 92
5.2.4 关卡模块的序列化 94
5.2.5 战斗壁障的实现 99
5.3 光照与烘焙 102
5.3.1 不同GI类型的选择 102
5.3.2 预计算光照的使用 103
5.3.3 光照探针的使用 104
5.3.4 反射探针简要介绍 104
5.3.5 借助LPPV优化烘焙 105
第6章 战斗部分深入解析 107
6.1 角色模块 107
6.1.1 Motor组件的设计 107
6.1.2 动画事件的处理 110
6.1.3 Animator常见问题整理 112
6.2 设计一个可扩展的战斗系统 114
6.2.1 基础战斗框架编写 115
6.2.2 添加伤害传递逻辑 117
6.2.3 配置伤害碰撞 120
6.2.4 僵直度组件的添加 121
6.2.5 浮空组件的添加 123
6.3 敌人AI的设计 125
6.3.1 AI设计综述 125
6.3.2 Behavior Designer插件简介 127
6.3.3 使用协程来开发AI程序 128
6.3.4 可控制的随机行为 131
6.3.5 设计共享数据段 132
6.3.6 场景信息的获取 133
第7章 其他模块 135
7.1 相机 135
7.1.1 常见的相机模式分类 135
7.1.2 常规第三人称相机实现 136
7.1.3 滑轨相机的实现 140
7.2 Cutscene过场动画 145
7.2.1 不同类型的Cutscene简介 146
7.2.2 使用Timeline 146
7.2.3 使用脚本过场动画 148
7.3 输入、IK与音频管理 149
7.3.1 InControl插件的使用 149
7.3.2 Final-IK插件的使用 151
7.3.3 音频管理 153
第8章 画面特效与后处理 160
8.1 着色器Shader 160
8.1.1 3D游戏中的常见Shader 160
8.1.2 死亡径向溶解效果 161
8.1.3 受击边缘泛光效果 164
8.1.4 基于屏幕门的抖动透明 166
8.2 CommandBuffer的使用 169
8.2.1 CommandBuffer简介 169
8.2.2 制作主角特显效果 171
8.3 后处理 175
8.3.1 PPS后处理工具 175
8.3.2 编写自己的后处理脚本 177
8.4 计算着色器Compute Shader 179
8.4.1 什么是Compute Shader 179
8.4.2 语法及使用简介 179
8.4.3 使用案例 181
第3篇 项目案例实战
第9章 案例剖析 190
9.1 《忍者龙剑传∑2》案例剖析 190
9.1.1 断肢效果的再实现 190
9.1.2 流血喷溅程序的再实现 193
9.1.3 角色残影效果的再实现 202
9.2 《君临都市》案例剖析 206
9.2.1 通用动作方案设计 206
9.2.2 组合攻击的再实现 207
9.3 《战神3》案例剖析 211
9.3.1 吸魂效果的再实现 211
9.3.2 链刃伸缩效果的再实现 216
9.3.3 赫利俄斯照射的再实现 220
第10章 横版动作游戏Demo设计 227
10.1 规划与调配 227
10.1.1 简要规划 227
10.1.2 资源准备 228
10.1.3 项目配置 228
10.2 基础框架的整合 231
10.2.1 战斗模块的整合 231
10.2.2 动画事件的整合 232
10.3 玩家逻辑的整合 233
10.3.1 输入逻辑封装 233
10.3.2 玩家逻辑的编写 234
10.4 敌人逻辑的编写 241
10.4.1 基础逻辑的编写 241
10.4.2 游走逻辑的编写 244
10.4.3 受击逻辑的编写 246
10.5 构建游戏 247
10.5.1 预制体的组装 247
10.5.2 出生点逻辑的编写 248
10.5.3 回顾与总结 249

封面图:

发表评论

相关文章