描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787111748779
编辑推荐
本书由Unity公司的专家团队撰写,通过完整的案例揭开Unity游戏开发的神秘面纱。作者从设计和构建 3D 角色与游戏环境开始,逐步剖析如何在游戏中为用户提供更好的交互体验。 本书主要内容如下: ? 设计3D游戏和C#脚本的基础知识。 ? 设计游戏角色以及角色的机制和动作的方法。 ? 使用Unity地形工具和ProBuilder工具创建环境。 ? 探索如何使用物理理论和代码创建实例和刚体。 ? 实现声音、光照效果、轨迹渲染和其他动态效果。 ? 创建游戏的一个简短但功能齐全的垂直切片。 ? 用性能工具打磨游戏。
内容简介
本书介绍使用Unity设计和开发3D游戏的各方面知识,包括如何设计、创建和实现游戏角色、环境、UI、音效等。全书分为三部分:第一部分介绍基础知识,包括3D术语、安装Unity并创建项目的方法以及C#的相关知识;第二部分介绍3D角色的设计、游戏环境设计、游戏机制及项目交互、如何在任意项目上开发整体游戏界面等;第三部分从视觉效果、音效、游戏测试、渲染等维度对游戏进行打磨和细化,以提供更好的用户体验。本书配有丰富的随书资源,便于读者查找。
目 录
Contents 目 录
前言
作者简介
第一部分 计划和设计
第1章 基础入门2
1.1 拥抱3D2
1.1.1 坐标系统2
1.1.2 矢量系统3
1.1.3 摄像机3
1.1.4 面、边、顶点和网格4
1.1.5 材质、纹理和着色器4
1.1.6 刚体物理6
1.1.7 碰撞检测6
1.2 Unity界面6
1.2.1 场景视图和层级结构7
1.2.2 检视器8
1.2.3 项目窗口9
1.2.4 游戏视图10
1.2.5 包管理器10
1.3 基本的Unity概念11
1.3.1 资源11
1.3.2 场景12
1.3.3 游戏对象12
1.3.4 组件12
1.3.5 脚本12
1.3.6 预制件13
1.3.7 包13
1.4 小结13
第2章 设计和原型制作14
2.1 游戏设计基础14
2.1.1 游戏设计文档14
2.1.2 深思熟虑后的决定15
2.1.3 迭代产品16
2.1.4 概念设计17
2.2 第一个Unity项目18
2.2.1 Unity Hub18
2.2.2 选择Unity版本19
2.2.3 选择模板19
2.2.4 程序化的渲染管线19
2.3 原型制作20
2.3.1 在线框图或纸上创作21
2.3.2 灰盒21
2.3.3 概念验证22
2.3.4 最小可用产品 22
2.3.5 垂直切片23
2.4 小结23
第3章 编程24
3.1 搭建环境24
3.2 基础知识26
3.2.1 变量27
3.2.2 数据类型27
3.2.3 程序逻辑29
3.2.4 方法33
3.3 小结35
第二部分 构建
第4章 游戏角色 38
4.1 设计和概念38
4.1.1 提问38
4.1.2 构思时间39
4.2 绑定41
4.2.1 动画——第一原则41
4.2.2 变形41
4.2.3 层级42
4.2.4 骨骼或关节43
4.2.5 正向动力学/反向动力学43
4.2.6 约束44
4.2.7 变形器44
4.2.8 控制45
4.2.9 基于物理的动画45
4.2.10 人体反向动力学系统45
4.2.11 动画46
4.3 角色控制器46
4.3.1 内置的角色控制器47
4.3.2 刚体角色控制器47
4.4 编写角色的动作脚本47
4.4.1 在Unity中初始化48
4.4.2 空闲动画52
4.4.3 代码入口53
4.4.4 RequireComponent属性53
4.4.5 更新代码54
4.4.6 方法56
4.5 小结57
第5章 绘制环境59
5.1 草图59
5.1.1 灵感板61
5.1.2 舞台设计62
5.2 涂盖63
5.2.1 Unity Terrain工具63
5.2.2 3D地形72
5.3 小结79
第6章 交互与玩法80
6.1 游戏循环80
6.2 机制工具箱82
6.2.1 资源管理82
6.2.2 风险与回报82
6.2.3 空间感知83
6.2.4 收集83
6.2.5 探索83
6.2.6 限制84
6.3 设计与实现84
6.4 我们的项目85
6.4.1 阶梯85
6.4.2 环形解谜90
6.4.3 狭小的空间97
6.4.4 交互体98
6.5 小结99
第7章 刚体和物理交互100
7.1 刚体组件100
7.1.1 质量101
7.1.2 阻力101
7.1.3 角阻力101
7.1.4 使用重力101
7.1.5 Is Kinematic选项102
7.1.6 插值102
7.1.7 碰撞检测103
7.1.8 约束104
7.1.9 信息块105
7.2 设计与实现105
7.3 心灵感应与物理交互105
7.3.1 岩石掉落106
7.3.2 破损的底座106
7.3.3 最终解谜107
7.4 小结115
第8章 用户界面和菜单116
8.1 用户界面117
8.1.1 叙事UI——叙事(是),
游戏内部(是)117
8.1.2 非叙事UI——叙事(否),
游戏内部(否)118
8.1.3 空间UI——叙事(否),
游戏内部(是)119
8.1.4 元UI——叙事(是),游戏
内部(否)119
8.2 UI元素120
8.2.1 主菜单120
8.2.2 仓库系统121
8.2.3 生命值的表示121
8.2.4 游戏物品交互系统121
8.3 项目中的UI 122
8.3.1 主菜单122
8.3.2 退出菜单123
8.3.3 空间提示框124
8.4 Unity UI124
8.4.1 Unity画布系统124
8.4.2 Unity UI对象130
8.4.3 实现134
8.5 小结138
第三部分 打磨和细化
第9章 视觉效果140
9.1 视觉效果概述140
9.2 Shader Graph141
9.2.1 安装142
9.2.2 创建142
9.2.3 Shader Graph接口143
9.2.4 常用的节点151
9.3 粒子系统155
9.3.1 Shuriken155
9.3.2 VFX Graph156
9.4 小结159
第10章 声音效果160
10.1 声音设计160
10.2 声音设计的五个元素161
10.2.1 声源161
10.2.2 包络162
10.2.3 音调163
10.2.4 频率163
10.2.5 分层164
10.3 可扩展的声音设计165
10.4 项目中的音效设计与实现166
10.4.1 播放第一个音效166
10.4.2 2D音效167
10.4.3 3D音效168<
前言
作者简介
第一部分 计划和设计
第1章 基础入门2
1.1 拥抱3D2
1.1.1 坐标系统2
1.1.2 矢量系统3
1.1.3 摄像机3
1.1.4 面、边、顶点和网格4
1.1.5 材质、纹理和着色器4
1.1.6 刚体物理6
1.1.7 碰撞检测6
1.2 Unity界面6
1.2.1 场景视图和层级结构7
1.2.2 检视器8
1.2.3 项目窗口9
1.2.4 游戏视图10
1.2.5 包管理器10
1.3 基本的Unity概念11
1.3.1 资源11
1.3.2 场景12
1.3.3 游戏对象12
1.3.4 组件12
1.3.5 脚本12
1.3.6 预制件13
1.3.7 包13
1.4 小结13
第2章 设计和原型制作14
2.1 游戏设计基础14
2.1.1 游戏设计文档14
2.1.2 深思熟虑后的决定15
2.1.3 迭代产品16
2.1.4 概念设计17
2.2 第一个Unity项目18
2.2.1 Unity Hub18
2.2.2 选择Unity版本19
2.2.3 选择模板19
2.2.4 程序化的渲染管线19
2.3 原型制作20
2.3.1 在线框图或纸上创作21
2.3.2 灰盒21
2.3.3 概念验证22
2.3.4 最小可用产品 22
2.3.5 垂直切片23
2.4 小结23
第3章 编程24
3.1 搭建环境24
3.2 基础知识26
3.2.1 变量27
3.2.2 数据类型27
3.2.3 程序逻辑29
3.2.4 方法33
3.3 小结35
第二部分 构建
第4章 游戏角色 38
4.1 设计和概念38
4.1.1 提问38
4.1.2 构思时间39
4.2 绑定41
4.2.1 动画——第一原则41
4.2.2 变形41
4.2.3 层级42
4.2.4 骨骼或关节43
4.2.5 正向动力学/反向动力学43
4.2.6 约束44
4.2.7 变形器44
4.2.8 控制45
4.2.9 基于物理的动画45
4.2.10 人体反向动力学系统45
4.2.11 动画46
4.3 角色控制器46
4.3.1 内置的角色控制器47
4.3.2 刚体角色控制器47
4.4 编写角色的动作脚本47
4.4.1 在Unity中初始化48
4.4.2 空闲动画52
4.4.3 代码入口53
4.4.4 RequireComponent属性53
4.4.5 更新代码54
4.4.6 方法56
4.5 小结57
第5章 绘制环境59
5.1 草图59
5.1.1 灵感板61
5.1.2 舞台设计62
5.2 涂盖63
5.2.1 Unity Terrain工具63
5.2.2 3D地形72
5.3 小结79
第6章 交互与玩法80
6.1 游戏循环80
6.2 机制工具箱82
6.2.1 资源管理82
6.2.2 风险与回报82
6.2.3 空间感知83
6.2.4 收集83
6.2.5 探索83
6.2.6 限制84
6.3 设计与实现84
6.4 我们的项目85
6.4.1 阶梯85
6.4.2 环形解谜90
6.4.3 狭小的空间97
6.4.4 交互体98
6.5 小结99
第7章 刚体和物理交互100
7.1 刚体组件100
7.1.1 质量101
7.1.2 阻力101
7.1.3 角阻力101
7.1.4 使用重力101
7.1.5 Is Kinematic选项102
7.1.6 插值102
7.1.7 碰撞检测103
7.1.8 约束104
7.1.9 信息块105
7.2 设计与实现105
7.3 心灵感应与物理交互105
7.3.1 岩石掉落106
7.3.2 破损的底座106
7.3.3 最终解谜107
7.4 小结115
第8章 用户界面和菜单116
8.1 用户界面117
8.1.1 叙事UI——叙事(是),
游戏内部(是)117
8.1.2 非叙事UI——叙事(否),
游戏内部(否)118
8.1.3 空间UI——叙事(否),
游戏内部(是)119
8.1.4 元UI——叙事(是),游戏
内部(否)119
8.2 UI元素120
8.2.1 主菜单120
8.2.2 仓库系统121
8.2.3 生命值的表示121
8.2.4 游戏物品交互系统121
8.3 项目中的UI 122
8.3.1 主菜单122
8.3.2 退出菜单123
8.3.3 空间提示框124
8.4 Unity UI124
8.4.1 Unity画布系统124
8.4.2 Unity UI对象130
8.4.3 实现134
8.5 小结138
第三部分 打磨和细化
第9章 视觉效果140
9.1 视觉效果概述140
9.2 Shader Graph141
9.2.1 安装142
9.2.2 创建142
9.2.3 Shader Graph接口143
9.2.4 常用的节点151
9.3 粒子系统155
9.3.1 Shuriken155
9.3.2 VFX Graph156
9.4 小结159
第10章 声音效果160
10.1 声音设计160
10.2 声音设计的五个元素161
10.2.1 声源161
10.2.2 包络162
10.2.3 音调163
10.2.4 频率163
10.2.5 分层164
10.3 可扩展的声音设计165
10.4 项目中的音效设计与实现166
10.4.1 播放第一个音效166
10.4.2 2D音效167
10.4.3 3D音效168<
前 言
Preface 前 言
很高兴我们能一起学习3D游戏开发的知识。首先介绍一下本书的作者分工:
Anthony Davis,高级技术美术设计师,负责撰写本书、管理项目、制作特效和着色器以及打磨项目。
Travis Baptiste,3D美术设计师,负责美术指导、游戏建模、游戏角色动画以及帮助定义游戏中的故事设计。
Russell Craig,高级软件工程师,负责编写游戏脚本和游戏玩法。
Ryan Stunkel,音效设计师,负责创建和实现项目中的所有音效。
为确保尽可能利用好我们加起来50多年的集体经验(本书的每一页都包含4 个人的共同努力),我们在整本书上花了6个多月的时间并对初稿进行了两次修订,以确保用最合适的用例来解释新概念,而且最重要的是提供一种可行的教学方法。最后,我们相信自己成功创作了一本书,这本书将我们在游戏开发领域塑造的职业轨迹前移了3到5年。
本书涵盖了使用Unity设计和开发3D游戏的方方面面。我们将介绍如何设计、创建和实现游戏角色、环境、UI、音效和玩法。
本书目标
本书的目标是让每一位读者建立正确的思维方式来思考3D游戏,然后向读者展示我们创建游戏的所有步骤。欢迎新手阅读本书,但是书中主题的难度可能会快速提升。虽然有难度,但如果坚持下去,你将会快速掌握游戏开发的知识。本书的主要目标读者是那些对游戏开发有一定了解的人,但无论你的经验如何,我们都希望为你带来一次愉快的学习之旅。我们将涵盖的概念很快就会变得复杂,包括游戏角色、编程、设计模式以及我们将要学习的其他内容。
为了充分利用本书,建议你遵循下面的步骤:
通读各章,读完每章后有意地停顿一下来思考这些概念。
如果某些知识点对你来说是全新的,请查看我们在GitHub中的项目,看看实际动手是否有助于进一步理解它。如果没有,请上网搜索相关概念进一步研究。
本书的设计初衷是让你了解我们的学习方法,然后通过研究项目理解所有基础知识。更重要的是要理解我们先前为什么要这样设计。我们也花了不少时间去学习 Unity 界面的基础知识,但之后就可以通过大量的在线资源学习技术了。
你在本书中可能找不到某些内容,比如如何为角色建模、绑定(rig)角色或制作角色动画。我们很少谈论这个过程,因为这个过程需要单独去练习。我们更多谈及的是为什么以某种方式设计游戏角色,以帮助你以同样的方式进行游戏开发。项目中包含了所有动画,因此构建完成后的产品就是成品。这是一种强有力的学习方式,我们会教你为什么项目会以这种方式完成。通过这种方式,你可以看到最终结果,并且可以发挥创造力并按照自己的想法进行设计,还可以在阅读章节的同时使用新工具自行完成整个过程。
最后,在深入学习之前,我们建议你打开本书的GitHub仓库,导航到Builds文件夹看一看。这将帮助你了解我们的团队是如何将内容以完整的形式组合在一起的。看完之后,你可以想象我们从零开始构建这个项目时所经历的一切。
本书读者对象
本书特别适合对制作3D游戏感兴趣的入门读者,书中内容既涉及基础知识,也包括一些高级话题。
此外,本书对那些已经在开发游戏但还想学习更多知识的读者也会有帮助,因为书中涵盖了广泛的技巧和知识。
本书内容
第一部分:计划和设计
第1章介绍三维(3D)的概念和本书将要用到的一些术语。
第2章先介绍设计的基础知识,然后引导读者安装Unity并创建第一个项目。
第3章奠定编程基础,通过解释逻辑基础知识和Visual Studio的基本用法来介绍C#的强大功能。
第二部分:构建
第4章介绍在设计3D角色的同时考虑如何将它们用于绑定和动画。
第5章引导你思考游戏的环境以及我们为设计和构建环境所做的工作。
第6章花一些时间思考游戏机制以及用户需要什么样的交互,还包括项目中的交互所需的编程。
第7章增加一些复杂主题,包括与物理设置的交互和更加高级的编程概念。
第8章介绍Unity的画布组件以及如何在任意项目上开发整体游戏界面。
第三部分:打磨和细化
第9章介绍渲染的基础以及相关的系统,深入讲解如何使用视觉特效系统增进你的游戏世界与用户的情感联系。
第10章讲解Unity中的音效系统,并为声音设计奠定坚实的基础。
第11章教你如何使用Unity构建最终可运行的游戏,并讲解测试方法,根除可以避免的错误以制作更好的游戏产品。
第12章介绍用来完善项目的内容,包括专门的粒子系统、光照、艺术定义和声音润色。
第13章介绍Unity提供的一些其他服务,以防你的项目所需的那些在前面的章节中没有涵盖到,例如多人游戏或混合现实相关的内容。
如何充分利用本书
请注意本书不是一个示例教程,而是开发3D游戏时的一本参考书。我们只讨论几个简单的示例。请尽可能从中学习相应的逻辑原理并将其应用到你的项目中。
请对涵盖的主题做好笔记,我们加大了在物理引擎部分的编程难度。
下载示例代码
本书中涉及的代码已经放在了GitHub上,链接是https://github.com/PacktPublishing/Unity-3D-Game-Developme
很高兴我们能一起学习3D游戏开发的知识。首先介绍一下本书的作者分工:
Anthony Davis,高级技术美术设计师,负责撰写本书、管理项目、制作特效和着色器以及打磨项目。
Travis Baptiste,3D美术设计师,负责美术指导、游戏建模、游戏角色动画以及帮助定义游戏中的故事设计。
Russell Craig,高级软件工程师,负责编写游戏脚本和游戏玩法。
Ryan Stunkel,音效设计师,负责创建和实现项目中的所有音效。
为确保尽可能利用好我们加起来50多年的集体经验(本书的每一页都包含4 个人的共同努力),我们在整本书上花了6个多月的时间并对初稿进行了两次修订,以确保用最合适的用例来解释新概念,而且最重要的是提供一种可行的教学方法。最后,我们相信自己成功创作了一本书,这本书将我们在游戏开发领域塑造的职业轨迹前移了3到5年。
本书涵盖了使用Unity设计和开发3D游戏的方方面面。我们将介绍如何设计、创建和实现游戏角色、环境、UI、音效和玩法。
本书目标
本书的目标是让每一位读者建立正确的思维方式来思考3D游戏,然后向读者展示我们创建游戏的所有步骤。欢迎新手阅读本书,但是书中主题的难度可能会快速提升。虽然有难度,但如果坚持下去,你将会快速掌握游戏开发的知识。本书的主要目标读者是那些对游戏开发有一定了解的人,但无论你的经验如何,我们都希望为你带来一次愉快的学习之旅。我们将涵盖的概念很快就会变得复杂,包括游戏角色、编程、设计模式以及我们将要学习的其他内容。
为了充分利用本书,建议你遵循下面的步骤:
通读各章,读完每章后有意地停顿一下来思考这些概念。
如果某些知识点对你来说是全新的,请查看我们在GitHub中的项目,看看实际动手是否有助于进一步理解它。如果没有,请上网搜索相关概念进一步研究。
本书的设计初衷是让你了解我们的学习方法,然后通过研究项目理解所有基础知识。更重要的是要理解我们先前为什么要这样设计。我们也花了不少时间去学习 Unity 界面的基础知识,但之后就可以通过大量的在线资源学习技术了。
你在本书中可能找不到某些内容,比如如何为角色建模、绑定(rig)角色或制作角色动画。我们很少谈论这个过程,因为这个过程需要单独去练习。我们更多谈及的是为什么以某种方式设计游戏角色,以帮助你以同样的方式进行游戏开发。项目中包含了所有动画,因此构建完成后的产品就是成品。这是一种强有力的学习方式,我们会教你为什么项目会以这种方式完成。通过这种方式,你可以看到最终结果,并且可以发挥创造力并按照自己的想法进行设计,还可以在阅读章节的同时使用新工具自行完成整个过程。
最后,在深入学习之前,我们建议你打开本书的GitHub仓库,导航到Builds文件夹看一看。这将帮助你了解我们的团队是如何将内容以完整的形式组合在一起的。看完之后,你可以想象我们从零开始构建这个项目时所经历的一切。
本书读者对象
本书特别适合对制作3D游戏感兴趣的入门读者,书中内容既涉及基础知识,也包括一些高级话题。
此外,本书对那些已经在开发游戏但还想学习更多知识的读者也会有帮助,因为书中涵盖了广泛的技巧和知识。
本书内容
第一部分:计划和设计
第1章介绍三维(3D)的概念和本书将要用到的一些术语。
第2章先介绍设计的基础知识,然后引导读者安装Unity并创建第一个项目。
第3章奠定编程基础,通过解释逻辑基础知识和Visual Studio的基本用法来介绍C#的强大功能。
第二部分:构建
第4章介绍在设计3D角色的同时考虑如何将它们用于绑定和动画。
第5章引导你思考游戏的环境以及我们为设计和构建环境所做的工作。
第6章花一些时间思考游戏机制以及用户需要什么样的交互,还包括项目中的交互所需的编程。
第7章增加一些复杂主题,包括与物理设置的交互和更加高级的编程概念。
第8章介绍Unity的画布组件以及如何在任意项目上开发整体游戏界面。
第三部分:打磨和细化
第9章介绍渲染的基础以及相关的系统,深入讲解如何使用视觉特效系统增进你的游戏世界与用户的情感联系。
第10章讲解Unity中的音效系统,并为声音设计奠定坚实的基础。
第11章教你如何使用Unity构建最终可运行的游戏,并讲解测试方法,根除可以避免的错误以制作更好的游戏产品。
第12章介绍用来完善项目的内容,包括专门的粒子系统、光照、艺术定义和声音润色。
第13章介绍Unity提供的一些其他服务,以防你的项目所需的那些在前面的章节中没有涵盖到,例如多人游戏或混合现实相关的内容。
如何充分利用本书
请注意本书不是一个示例教程,而是开发3D游戏时的一本参考书。我们只讨论几个简单的示例。请尽可能从中学习相应的逻辑原理并将其应用到你的项目中。
请对涵盖的主题做好笔记,我们加大了在物理引擎部分的编程难度。
下载示例代码
本书中涉及的代码已经放在了GitHub上,链接是https://github.com/PacktPublishing/Unity-3D-Game-Developme
评论
还没有评论。