书籍详情
《官网 从零构建Unity 3D游戏+Unity3D高级编程+Unity虚拟现实开发实战+沉浸式3D体验设计 套装全4册 Unity游戏开发技术书籍》[89M]百度网盘|亲测有效|pdf下载
  • 官网 从零构建Unity 3D游戏+Unity3D高级编程+Unity虚拟现实开发实战+沉浸式3D体验设计 套装全4册 Unity游戏开发技术书籍

  • 出版社:机械工业出版社官方旗舰店
  • 作者:戴维斯 著
  • 热度:5203
  • 上架时间:2025-01-04 08:18:29
  • 价格:0.0
书籍下载
书籍预览
免责声明

本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正

内容介绍








从零构建Unity 3D游戏:开发与设计实战


本书介绍使用Unity设计和开发3D游戏的各方面知识,包括如何设计、创建和实现游戏角色、环境、UI、音效等。全书分为三部分:第一部分介绍基础知识,包括3D术语、安装Unity并创建项目的方法以及C#的相关知识;第二部分介绍3D角色的设计、游戏环境设计、游戏机制及项目交互、如何在任意项目上开发整体游戏界面等;第三部分从视觉效果、音效、游戏测试、渲染等维度对游戏进行打磨和细化,以提供更好的用户体验。本书配有丰富的随书资源,便于读者查找。


Unity3D高级编程:主程手记


本书分 10 章,每章都是一个独立的知识领域,读者可以按照章节顺序阅读本书,也可以根据喜好挑选自己感兴趣的章节学习。第 1 章讲了架构的意义、架构的原理以及如何实现架构。第 2 章对 C# 技术的基础知识做了详细的讲解。第 3 章主要针对客户端中的表格数据、程序的协作与应用进行讲解。第 4章介绍的是用户界面(UI)的工作原理与优化手段。第 5 章针对 3D 模型的原理、动画的原理以及两者的优化做了详细的讲解。第 6 章介绍的是网络层的业务与底层原理。第 7 章针对各种 AI 类型进行了解析。第 8 章主要介绍场景构建与优化、地图构建以及寻路算法优化的相关知识。第 9 章则给出了图形数学、图形学常用算法、渲染管线的相关知识。第 10 章针对客户端各类渲染技术的渲染原理进行了详细的解析。


Unity虚拟现实开发实战(原书第2版)


本书将带你进行一系列实战,并深入讨论如何使用Unity游戏引擎开发VR应用程序。本书通过基于项目的实践方法,帮助你快速了解使用Unity进行VR开发的具体细节。通过Oculus、Daydream和Vive等设备的体验,你将学习如何使用Unity开发VR应用程序。在众多主题和项目中,你将探索基于凝视与手柄控制器输入、世界坐标系UI画布、移动与远程传送、软件设计模式、360°多媒体、时间轴动画与多人网络。通过交互式Unity编辑器,你将了解Unity 3D游戏引擎,并且学习C#编程。


沉浸式3D体验设计


本书旨在帮助视觉设计从业人员进入飞速发展的3D建模和扩展现实(XR)设计领域,并给出了行之有效的方法和有效的设计思维过程,并以熟悉的设计原则为基础,探讨了如何在这些基础上进行构建沉浸式用户体验,使其适应虚拟和增强现实环境。本书首先介绍了XR和沉浸式3D体验设计的基础知识,以及它们是如何发展的;然后探索了核心概念和技术,包括人机交互、空间计算、投影映射和头戴式显示器。无论目标场景承载于移动端、云端还是可穿戴设备,设计师都可以借助本书中的相关技术完成目标设计。





从零构建Unity 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

10.4.4 3D音效设置169

10.5 通过玩家交互触发声音174

10.6 小结177

第11章 构建与测试178

11.1 使用Unity构建游戏178

11.1.1 目标平台179

11.1.2 CPU架构179

11.1.3 服务器相关构建179

11.1.4 复制PDB文件180

11.1.5 创建Visual Studio解决方案180

11.1.6 开发构建180

11.1.7 自动连接探查器180

11.1.8 深度分析支持180

11.1.9 脚本调试180

11.1.10 只构建脚本181

11.1.11 压缩方法181

11.2 测试181

11.2.1 功能测试182

11.2.2 性能测试183

11.2.3 游戏测试187

11.2.4 浸泡测试188

11.2.5 本地化测试188

11.3 用户体验188

11.3.1 品牌推广188

11.3.2 设计188

11.3.3 可用性189

11.3.4 最初的问题189

11.3.5 第一个谜题189

11.3.6 引入次要机制190

11.3.7 最终解谜191

11.4 小结191

第12章 打磨192

12.1 概览192

12.2 敲定资源193

12.2.1 统一资源的风格193

12.2.2 细节法线194

12.2.3 清理隐藏面建筑196

12.2.4 纹理混合197

12.2.5 环境凌乱198

12.2.6 细节网格199

12.2.7 特效199

12.2.8 过场动画211

12.2.9 副动画212

12.3 光照212

12.3.1 3D形式212

12.3.2 提供灵感212

12.3.3 游戏玩法设计212

12.3.4 Unity光照213

12.4 声音的润色219

12.4.1 通过动画事件触发声音219

12.4.2 将用于声音的事件标记

    在动画上221

12.5 小结225

第13章 其他Unity工具226

13.1 Unity游戏服务226

13.1.1 多人游戏工具226

13.1.2 XR插件228

13.1.3 机器学习代理228

13.1.4 Bolt可视化脚本229

13.2 小结230



Unity3D高级编程:主程手记


前 言

第1章 软件架构  1

1.1 架构的意义  1

1.2 软件架构的思维方式  5

1.3 如何构建Unity3D项目  9

第2章 C#技术要点  14

2.1 Unity3D中C#的底层原理  14

2.2 List底层源码剖析  17

2.3 Dictionary底层源码剖析  27

2.4 浮点数的精度问题  39

2.5 委托、事件、装箱、拆箱  44

2.5.1 委托与事件  44

2.5.2 装箱和拆箱  45

2.6 排序算法  48

2.6.1 快速排序算法  48

2.6.2 最大最小堆  50

2.6.3 其他排序算法概述  51

2.7 各类搜索算法  51

2.7.1 搜索算法概述  52

2.7.2 二分查找算法  52

2.7.3 二叉树、二叉查找树、平衡二叉树、红黑树和B树  52

2.7.4 四叉树搜索算法  53

2.7.5 八叉树搜索算法  54

2.8 业务逻辑优化技巧  54

2.8.1 使用List和Dictionary时提高效率  55

2.8.2 巧用struct  55

2.8.3 尽可能地使用对象池  57

2.8.4 字符串导致的性能问题  61

2.8.5 字符串的隐藏问题  64

2.8.6 程序运行原理  65

第3章 数据表与程序  68

3.1 数据表的种类  68

3.1.1 大部分数据都是在Excel里生成的  68

3.1.2 最原始的数据方式—代码数据  69

3.1.3 文本数据  69

3.1.4 比特流数据  70

3.2 数据表的制作方式  71

3.2.1 制作方式简介  71

3.2.2 让数据使用起来更加方便  72

3.3 多语言的实现  75

第4章 用户界面  78

4.1 用户界面系统的比较  78

4.2 UGUI系统的原理及其组件使用  79

4.2.1 UGUI系统的运行原理  79

4.2.2 UGUI系统的组件  80

4.3 UGUI事件模块剖析  82

4.3.1 UGUI事件系统源码剖析  82

4.3.2 输入事件源码  82

4.3.3 事件数据模块  83

4.3.4 输入事件捕获模块源码  84

4.3.5 射线碰撞检测模块源码  89

4.3.6 事件逻辑处理模块  91

4.4 UGUI核心源码剖析  91

4.4.1 UGUI核心源码结构  91

4.4.2 Culling模块  91

4.4.3 Layout模块  93

4.4.4 MaterialModif?iers、Specialized-Collections和Utility  94

4.4.5 VertexModif?iers  95

4.4.6 核心渲染类  96

4.5 快速构建一个简单易用的UI框架  101

4.6 UI优化  107

4.6.1 UI动静分离  108

4.6.2 拆分过重的UI  108

4.6.3 UI预加载  109

4.6.4 UI图集Alpha分离  110

4.6.5 UI字体拆分  111

4.6.6 Scroll View优化  112

4.6.7 网格重构的优化  113

4.6.8 UI展示与关闭的优化  114

4.6.9 对象池的运用  114

4.6.10 UI贴图设置的优化  115

4.6.11 内存泄漏  117

4.6.12 针对高低端机型的优化  123

4.6.13 UI图集拼接的优化  126

4.6.14 GC的优化  127

第5章 3D模型与动画  134

5.1 美术资源规范  134

5.2 合并3D模型  141

5.2.1 网格模型的基础知识  141

5.2.2 动态批处理  143

5.2.3 静态批处理  144

5.2.4 自己编写合并3D模型的程序  145

5.3 状态机  147

5.3.1 如何用状态机模拟人物行为动作  147

5.3.2 在游戏的人物行为动作中使用状态机  148

5.3.3 在游戏项目中使用状态机的地方  148

5.4 3D模型的变与换  152

5.4.1 切割模型  154

5.4.2 扭曲模型  156

5.4.3 简化模型  157

5.4.4 蒙皮骨骼动画  159

5.4.5 人物3D模型动画换皮换装  165

5.4.6 捏脸  167

5.4.7 动画优化  169

5.5 资源的加载与释放  176

第6章 网络通信  183

6.1 TCP与UDP  183

6.1.1 TCP和UDP简介  183

6.1.2 UDP的特点  185

6.1.3 是用TCP还是用UDP  186

6.2 C#实现TCP  187

6.2.1 程序实现TCP长连接  187

6.2.2 TCP的API库  187

6.2.3 线程锁  188

6.2.4 缓冲队列  188

6.2.5 双队列结构  190

6.2.6 发送数据  191

6.2.7 协议数据定义标准  192

6.2.8 断线检测  195

6.3 C#实现UDP  196

6.3.1 实现UDP  196

6.3.2 连接确认机制  196

6.3.3 数据包校验与重发机制  199

6.3.4 丢包问题分析  201

6.4 封装HTTP  202

6.4.1 HTTP协议原理  202

6.4.2 HTTP1.0、HTTP1.1、HTTP2.0简述  204

6.4.3 在Unity3D中的HTTP封装  206

6.4.4 多次请求时连续发送HTTP请求引起的问题  209

6.5 网络数据协议原理  222

6.5.1 协议包的格式  222

6.5.2 JSON  223

6.5.3 自定义二进制数据流协议格式  224

6.5.4 MessagePack  226

6.5.5 Protobuf  229

6.5.6 限定符的规则  231

6.5.7 Protobuf的原理:序列化和反序列化  232

6.5.8 Protobuf更改数据结构后的兼容问题  235

6.5.9 Protobuf的优点  236

6.5.10 Protobuf的不足  237

6.6 网络同步解决方案  237

6.6.1 状态同步法  237

6.6.2 实时广播同步法  239

6.6.3 帧同步  240

6.6.4 同步快进  242

6.6.5 精度问题  243

6.6.6 同步锁机制  244

第7章 游戏中的AI  245

7.1 用状态机构建AI  245

7.2 用行为树构建AI  251

7.2.1 复合节点  252

7.2.2 修饰节点  253

7.2.3 条件节点  253

7.2.4 行为节点  253

7.3 非典型性AI  255

7.3.1 可演算式AI  255

7.3.2 博弈式AI  257

第8章 地图与寻路  259

8.1 A星算法及其优化  259

8.1.1 长距离导航  262

8.1.2 A星排序算法优化  264

8.1.3 寻路期望值优化  265

8.1.4 通过权重引导寻路方向  267

8.1.5 拆分寻路区域  268

8.1.6 A星算法细节优化  270

8.1.7 寻路规则优化JPS  271

8.2  寻路网格的构建  275

8.2.1 数组构建网格  275

8.2.2 路点网格  277

8.2.3 平面三角形网格  279

8.2.4 多层级网格  282

8.2.5 三角形网格中的A星算法  283

8.2.6 体素化寻路网格  286

8.2.7 RecastNavigation Navmesh  288

8.3 地图编辑器  290

8.3.1 地图编辑器的基本功能  290

8.3.2 数据协议格式在编辑器中的选择  292

8.3.3 地图加载方式  293

8.3.4 地图九宫格  294

8.4 地图的制作与优化  296

8.4.1 地图的制作方式  296

8.4.2 常规场景的性能优化  299

第9章 渲染管线与图形学  306

9.1 图形学基础  306

9.1.1 向量的意义  307

9.1.2 点积的几何意义  307

9.1.3 叉乘的几何意义  308

9.1.4 向量之间的投影  309

9.1.5 矩阵的意义  310

9.1.6 矩阵旋转、缩放、投影、镜像和仿射  312

9.1.7 齐次坐标的平移矩阵  320

9.1.8 如何理解四元数  321

9.2 渲染管线  324

9.2.1 OpenGL、DirectX图形接口  324

9.2.2 渲染管线是什么  325

9.2.3 混合  337

9.2.4 渲染管线总结  341

第10章 渲染原理与知识  343

10.1 渲染顺序  343

10.2 Alpha Test  345

10.3 Early-Z GPU硬件优化技术  347

10.4 Mipmap的原理  348

10.5 显存的工作原理  350

10.6 Filter滤波方式  351

10.7 实时阴影是如何生成的  354

10.8 光照纹理烘焙原理  357

10.9 GPU Instancing的来龙去脉  362

10.10 着色器编译过程  369

10.11 Projector投影原理  372



Unity虚拟现实开发实战(原书第2版)


译者序

前言

审阅者简介

第1章 万物皆可虚拟  1

1.1 虚拟现实对你来说意味着什么  2

1.2 头戴式显示器的类型  3

1.2.1 桌面VR  3

1.2.2 移动VR  3

1.3 虚拟现实与增强现实的区别  4

1.4 应用与游戏  5

1.5 虚拟现实是如何运作的  7

1.5.1 立体3 D视图  7

1.5.2 头姿追踪  9

1.6 VR体验类型  10

1.7 VR必备技能  11

1.8 本书涵盖的内容  12

1.9 本章小结  12

第2章 内容、物体和缩放比例  14

2.1 Unity入门  14

2.1.1 新建Unity项目  15

2.1.2 Unity编辑器  15

2.1.3 默认世界坐标系  16

2.2 创建简单的透视图  17

2.2.1 添加立方体  18

2.2.2 添加平面  18

2.2.3 添加球体和材质  19

2.2.4 改变场景视图  21

2.2.5 添加照片  22

2.2.6 给地平面着色  23

2.3 测量工具  24

2.3.1 随手保留一个单位立方体  24

2.3.2 使用网格投影器  24

2.3.3 测量Ethan角色  25

2.4 使用第三方内容  27

2.5 使用Blender创建3D内容  29

2.5.1 Blender简介  29

2.5.2 单位立方体  31

2.5.3 UV纹理图片  32

2.5.4 导入Unity  34

2.5.5 一些观察  35

2.6 在VR中创建3D内容  35

2.6.1 导入和导出Tilt Brush模型  37

2.6.2 使用Google Poly进行发布和导入  38

2.7 在VR中使用EditorXR编辑Unity  39

2.7.1 设置EditorXR  40

2.7.2 使用EditorXR  41

2.8 本章小结  43

第3章 VR的构建和运行  44

3.1 Unity VR支持和工具包  44

3.1.1 Unity的内置VR支持  45

3.1.2 特定于设备的工具包  46

3.1.3 应用程序工具包  47

3.1.4 基于Web和的VR  47

3.1.5 3D世界  48

3.2 为你的平台启用虚拟现实  48

3.2.1 设置目标平台  49

3.2.2 设置XR SDK  50

3.2.3 安装设备工具包  50

3.2.4 创建MeMyselfEye播放器预制件  50

3.3 构建SteamVR  52

3.4 构建Oculus Rift  53

3.5 构建Windows沉浸式MR  55

3.5.1 设置Windows 10开发人员模式  56

3.5.2 在Visual Studio中安装UWP支持  56

3.5.3 UWP构建  57

3.6 为Android设备设置  58

3.6.1 安装Java开发工具包  59

3.6.2 安装Android SDK  59

3.6.3 使用命令行工具  60

3.6.4 关于Android SDK根路径位置  61

3.6.5 安装USB设备调试和连接  61

3.6.6 配置Unity外部工具  62

3.6.7 为Android配置Unity Player Settings  63

3.7 为GearVR和Oculus Go构建  63

3.8 为Google VR构建  64

3.8.1 Google Daydream  64

3.8.2 Google Cardboard  65

3.8.3 Google VR运行模式  66

3.9 为iOS设备设置  67

3.9.1 拥有Apple ID  67

3.9.2 安装Xcode  67

3.9.3 配置iOS的Unity Player Settings  68

3.9.4 构建和运行  68

3.10 本章小结  69

第4章 基于凝视的操控  70

4.1 游走者Ethan  70

4.1.1 人工智能Ethan  71

4.1.2 NavMesh烘焙  72

4.1.3 镇上的随机游走者  74

4.1.4 RandomPosition脚本  74

4.1.5 “僵尸”Ethan  76

4.2 向我看的方向行走  77

4.2.1 LookMoveTo脚本  77

4.2.2 添加反馈光标  79

4.2.3 穿透对象观察  80

4.3 如果眼神可以杀人  81

4.3.1 KillTarget脚本  81

4.3.2 添加粒子效果  83

4.3.3 清理工作  84

4.4 Unity C#编程简介  84

4.5 本章小结  86

第5章 便捷的交互工具  87

5.1 设置场景  88

5.1.1 创建气球  88

5.1.2 使之成为预制件  88

5.2 基本按钮输入  90

5.2.1 使用Fire1按钮  90

5.2.2 OpenVR的扳机键  92

5.2.3 用Daydream控制器单击  93

5.3 轮询单击  93

5.3.1 按钮界面功能  94

5.3.2 创建并释放气球  95

5.3.3 按住按钮给气球充气  96

5.4 使用脚本化对象进行输入  98

5.4.1 创建脚本化对象  99

5.4.2 填充输入操作对象  100

5.4.3 访问输入操作对象  101

5.4.4 使用脚本化对象进行模拟测试  101

5.5 使用Unity事件处理输入  102

5.5.1 调用输入操作事件  103

5.5.2 订阅输入事件  103

5.6 使用双手  105

5.6.1 将气球设为手柄的子对象  105

5.6.2 让气球爆炸  107

5.7 交互项目  108

5.7.1 使用SteamVR交互系统进行交互  109

5.7.2 使用Daydream VR Elements进行交互  110

5.8 本章小结  112

第6章 世界坐标系UI  113

6.1 学习VR设计原则  114

6.2 可重用的默认画布  116

6.3 护目镜HUD  118

6.4 十字光标  120

6.5 挡风玻璃HUD  122

6.6 游戏元素UI  124

6.7 使用文字特效插件TextMeshPro  125

6.8 信息框  126

6.9 响应输入事件的游戏内仪表板  129

6.9.1 创建带有按钮的仪表板  129

6.9.2 连接水管与按钮  131

6.9.3 用脚本激活按钮  132

6.9.4 用注视高亮显示按钮  133

6.9.5 注视并单击选择  135

6.9.6 注视并聚焦选择  136

6.10 使用VR组件指向并单击  136

6.10.1 使用Unity UI和SteamVR  137

6.10.2 使用Unity UI和Daydream  139

6.11 构建基于手腕的菜单栏  139

6.12 本章小结  140

第7章 移动与舒适  141

7.1 理解Unity角色  141

7.1.1 Unity组件  142

7.1.2 Unity的Standard Assets  143

7.2 使用滑行移动  145

7.2.1 沿视线方向移动  145

7.2.2 保持脚着地  146

7.2.3 不要穿透固体对象  147

7.2.4 不要在边缘坠落  149

7.2.5 跨越小物体并处理崎岖路面  149

7.2.6 开始与停止移动  150

7.3 添加舒适模式移动  150

7.4 传送技术  153

7.4.1 凝视传送  153

7.4.2 在表面之间传送  155

7.4.3 传送生成点  157

7.4.4 其他传送考虑因素  160

7.5 传送工具包  161

7.5.1 使用SteamVR交互系统传送  161

7.5.2 使用Daydream Elements传送  162

7.6 重置中心和位置  163

7.7 对付VR晕动症  164

7.8 本章小结  166

第8章 使用物理引擎  167

8.1 Unity的物理组件  167

8.2 弹力球  169

8.3 管理游戏对象  171

8.3.1 销毁坠落的对象  172

8.3.2 设置持续时间  172

8.3.3 实现一个对象池  172

8.4 用头部射击游戏  176

8.5 球拍游戏  180

8.6 射手游戏  182

8.7 完善场景  185

8.7.1 创建大火球  186

8.7.2 Skull环境  188

8.7.3 音频同步  190

8.8 本章小结  191

第9章 漫游和渲染  192

9.1 用Blender构建  192

9.1.1 构建墙体  193

9.1.2 添加天花板  194

9.2 用Unity组装场景  197

9.2.1 画廊  197

9.2.2 艺术品部件  198

9.2.3 展览计划  200

9.3 将图片添加到画廊中  202

9.4 管理艺术信息数据  204

9.4.1 使用列表  204

9.4.2 使用数据结构  205

9.4.3 使用脚本化对象  206

9.5 显示艺术信息  208

9.5.1 创建标题牌匾  209

9.5.2 详细的交互信息  210

9.5.3 调整图像宽高比  212

9.6 漫游画廊  213

9.6.1 在画像之间传送  213

9.6.2 考虑房间规模  215

9.6.3 动画穿越  216

9.7 本章小结  218

第10章 利用360? 219

10.1 360岸嗝教? 219

10.1.1 等距圆柱投影  220

10.1.2 VR正在侵入你的视野  220

10.1.3 180岸嗝教? 221

10.1.4 立体360岸嗝教? 221

10.2 有趣的光球  222

10.2.1 水晶球  222

10.2.2 地球仪  224

10.3 渲染光球  225

10.3.1 编写自定义内部着色器  226

10.3.2 魔法球  228

10.3.3 光球  229

10.3.4 播放360笆悠? 230

10.4 使用Unity天空盒  232

10.4.1 六边形或立方体天空盒  233

10.4.2 球面全景天空盒  234

10.4.3 360笆悠堤炜蘸? 235

10.4.4 3D立体天空盒  236

10.5 在Unity中捕捉360岸嗝教? 236

10.5.1 捕捉立方体贴图和反射探头  236

10.5.2 使用第三方库360安痘?

 图像  238

10.5.3 Unity内置立体360巴枷窈?

 视频捕获  239

10.6 本章小结  240

第11章 动画与VR讲故事  241

11.1 撰写我们的故事  241

11.1.1 收集资源  242

11.1.2 创建初始场景  243

11.2 Timeline和音频轨道  245

11.3 使用Timeline激活对象  247

11.4 录制Animation Track  248

11.4.1 正在生长的树  248

11.4.2 正在生长的鸟  249

11.5 使用动画编辑器  249

11.6 动画的其他属性  252

11.6.1 动画的灯光  252

11.6.2 动画脚本组件属性  253

11.6.3 控制粒子系统  255

11.7 使用动画剪辑  257

11.8 使用动画控制器  258

11.8.1 动画和动画器的定义  259

11.8.2 ThirdPersonController动画  259

11.8.3 Living Bird动画器  260

11.8.4 学习飞行  262

11.8.5 对鸟进行攻击  264

11.8.6 飞走  264

11.9 让故事更具互动性  265

11.9.1 期待播放效果  265

11.9.2 重置初始场景设置  267

11.9.3 更多互动的想法  268

11.10 本章小结  268

第12章 社交化的VR虚拟空间  269

12.1 多玩家网络  270

12.1.1 网络服务  270

12.1.2 网络架构  271

12.1.3 本地与服务器  271

12.1.4 Unity的网络系统  272

12.2 建立简单的场景  273

12.2.1 创建场景环境  273

12.2.2 创建虚拟角色的头部  274

12.3 添加多玩家网络  275

12.3.1 Network Manager和HUD  275

12.3.2 Network Identity和Sync Transform  275

12.3.3 作为一个主机运行  276

12.3.4 添加出生点位  276

12.3.5 运行游戏的两个实例  277

12.3.6 关联虚拟角色与第一人称角色  278

12.4 添加配对大厅  280

12.5 同步对象和属性  281

12.5.1 设置头球游戏  282

12.5.2 通过联网射击球  284

12.5.3 同步球变换  285

12.5.4 状态变量同步  286

12.6 高级网络主题  287

12.7 语音聊天选项  288

12.8 使用Oculus平台和虚拟角色  288

12.8.1 Oculus平台权限检查  289

12.8.2 添加本地虚拟角色  290

12.8.3 添加远程虚拟角色  291

12.9 构建和共享自定义VRChat会议室  292

12.10 本章小结  294

第13章 优化性能和舒适度  295

13.1 使用Unity的Profiler和Stats  296

13.1.1 Stats窗口  296

13.1.2 Profiler窗口  297

13.2 优化艺术品  298

13.2.1 设置场景  299

13.2.2 抽取模型  302

13.2.3 透明材质  303

13.2.4 细节层次  304

13.3 使用静态对象优化场景  307

13.3.1 设置场景  307

13.3.2 灯光和烘焙  307

13.3.3 遮挡删除  309

13.4 优化代码  310

13.4.1 了解Unity的生命周期  311

13.4.2 编写高效的代码  312

13.4.3 避免费时的API调用  313

13.5 优化渲染  313

13.5.1 批次处理  314

13.5.2 多通道像素填充  315

13.5.3 VR优化着色器  316

13.6 运行时性能和调试  316

13.6.1 Daydream  317

13.6.2 Oculus  318

13.7 本章小结  318


沉浸式3D体验设计


目  录Contents

推荐序

前 言

致 谢

第1章 融入现实 1

1.1 奇观背后的科技 1

1.2 扩展现实无处不在 6

1.2.1 十码距离 7

1.2.2 平视显示 7

1.2.3 仰望星空 8

1.2.4 先试后买 9

1.2.5 添加滤镜 9

1.2.6 虚拟体验 10

1.2.7 主动学习 12

1.2.8 量变到质变 12

1.3 知识分解 13

第2章 关键技术 15

2.1 扩展现实的发展历程 15

2.2 增强现实 19

2.2.1 功能整合 20

2.2.2 独立应用程序 20

2.2.3 WebAR 22

2.2.4 智能相机 23

2.2.5 陀螺仪和加速计 25

2.3 投影映射 26

2.4 头戴式显示器 29

2.4.1 选择你的现实 29

2.4.2 追踪方式 29

2.4.3 虚拟现实设备 30

2.4.4 增强现实与混合现实设备 31

2.5 摄影测量 32

设计挑战 36

第3章 沉浸式体验 37

3.1 3D世界 37

3.1.1 样条 40

3.1.2 网格 41

3.1.3 材质 42

3.1.4 视角 43

3.1.5 光源 44

3.1.6 场景 45

3.1.7 渲染 46

3.1.8 3D文件 47

3.2 示能设计 50

3.2.1 实体示能 51

3.2.2 感知示能 51

3.2.3 交互元素 52

3.3 多模态体验 53

3.3.1 视觉 54

3.3.2 听觉 55

3.3.3 嗅觉 55

3.3.4 触觉 56

3.3.5 本体感觉与动觉 58

3.3.6 多模态体验的重要性 58

3.3.7 利用多模态体验实现易用性 59

设计挑战 60

第4章 创意设计 61

4.1 找到设计源头 61

4.1.1 解决问题 62

4.1.2 功能优先形式 62

4.1.3 不再忘记别人的姓名 63

4.1.4 融合现实 65

4.2 创新和实用性 66

4.2.1 不必强求创新 67

4.2.2 周密设计 67

4.2.3 截止日期的力量 68

4.3 外部因素的影响 68

4.3.1 发散性思维 69

4.3.2 随机影响 70

4.3.3 聚合性思维 70

4.3.4 探索设计主题和模式 72

4.3.5 基于观察重新想象 72

4.4 保持设计的人性化 73

4.4.1 案例:谷歌眼镜 74

4.4.2 不必执着于完美 75

设计挑战 76

第5章 原型设计 78

5.1 保持乐观的心态 78

5.2 绘制透明草图 80

5.3 原型的力量 82

5.3.1 快速迭代 82

5.3.2 体验观察 84

5.3.3 展开想象 85

5.3.4 用户流程 88

5.4 熟能生巧 93

设计挑战 96

第6章 用户体验设计 97

6.1 友好的用户设计 97

6.1.1 问候方式 98

6.1.2 积极的用户体验 100

6.2 流畅的用户体验 109

6.3 了解目标受众 113

6.3.1 创建用户画像 113

6.3.2 使用用户画像进行体验观察 115

6.4 让现实触手可及 116

6.4.1 专注性 118

6.4.2 多模态 119

6.4.3 个性化 120

6.4.4 上下文 120

设计挑战 123

第7章 用户界面设计 124

7.1 z轴 124

7.2 3D界面隐喻 129

7.2.1 真实感 130

7.2.2 3D交互技术 132

7.2.3 虚拟现实中的界面隐喻 132

7.2.4 增强现实中的界面设计 133

7.3 时间和空间 135

7.4 微交互 137

设计挑战 140

第8章 人性化设计 141

8.1 保持设计的整体一致性 141

8.1.1 包装设计 143

8.1.2 产品设计新趋势:沉浸式

设计 144

8.1.3 整体共情 145

8.1.4 讲好故事 147

8.2 感知觉理论 148

8.2.1 视觉通路 149

8.2.2 格式塔理论 150

8.3 三维层次结构 153

8.3.1 位置设计 154

8.3.2 方向与旋转 155

8.3.3 视距 155

8.3.4 自适应距离 156

8.3.5 视觉冲突 156

8.3.6 元素关系 157

8.3.7 需求层次 158

设计挑战 159

第9章 动态变化的环境 161

9.1 应对变化 161

9.1.1 环境光 162

9.1.2 室外照度 163

9.1.3 室内照度 163

9.1.4 混合模式 164

9.1.5 用户自主权 166

9.2 图形背景关系 166

9.2.1 图形背景关系的类型 167

9.2.2 区分策略 168

9.2.3 建立联系 169

9.3 创建最佳视图 171

9.3.1 布局与组件 171

9.3.2 视角 171

9.3.3 焦距 172

9.3.4 运动视差 172

9.3.5 参照现实 173

9.4 唤起情绪 173

9.4.1 情感联系 174

9.4.2 多人体验 174

设计挑战 176

第10章 增强字体设计 177

10.1 可读性和易读性 177

10.1.1 显示设备的发展 178

10.1.2 回归基本原理 182

10.1.3 扩展现实专用字体 185

10.1.4 字体的可读性 186

10.2 视觉对比度 188

10.3 精细控制 193

10.3.1 字体位置 193

10.3.2 文本样式表 194

10.3.3 文本呈现方式 195

10.3.4 定制化设计 196

10.3.5 极简设计 197

设计挑战 198

第11章 色彩设计 200

11.1 颜色外观模型 200

11.1.1 加法混色 202

11.1.2 减法混色 202

11.1.3 线性空间与伽马校正 203

11.1.4 体验的可用性 204

11.2 光的相互作用 207

11.2.1 光源类型 208

11.2.2 光源颜色 209

11.2.3 照明设置 209

11.2.4 光照方向和距离 213

11.2.5 光线强度 213

11.2.6 阴影设计 213

11.3 动态适应 214

11.3.1 照明估计 215

11.3.2 环境反射 217

设计挑战 218

第12章 音效设计 219

12.1 视听同步 219

12.1.1 听觉产生的原理 221

12.1.2 音效的实现原理 222

12.1.3 扩展现实的音效应用 222

12.2 空间音效 223

12.2.1 定点音频录制 224

12.2.2 案例研究 225

12.3 增强音频 227

12.3.1 增强音频的工作原理 228

12.3.2 不止于说 229

12.3.3 如何购买音频眼镜 229

12.4 语音体验 230

12.4.1 无可替代 231

12.4.2 上下文语境 232

12.4.3 脚本设计 233

设计挑战 234

第13章 设计实践 236

13.1 开发程序 236

13.1.1 团队协作 237

13.1.2 3D Web框架 238

13.2 敏捷工作流程 240

13.2.1 敏捷模型与瀑布模型 240

13.2.2 Scrum方法 242

13.3 不断试错 244

13.4 用户体验测试 245

13.4.1 定性测试 246

13.4.2 定量测试 248

13.5 隐私保护 251

13.5.1 隐私分级 252

13.5.2 AR Cloud 253

13.5.3 面部识别 254

设计挑战 256

第14章 未来发展 257

14.1 发展方向 257

14.1.1 借助已知技术 258

14.1.2 为热爱创作 258

14.1.3 从周围世界汲取灵感 259

14.1.4 体验的触发因素 260

14.2 打破常规 262

14.2.1 扩展现实技术通用性的

提升 262

14.2.2 可穿戴技术的进步 265

14.2.3 简化发布与共享流程 266

14.3 扩展现实前景 267

14.3.1 宁静技术 267

14.3.2 未来可期 268

14.3.3 远程工作 269

14.4 扩展物理空间 269

参考文献 272




相关推荐