2014年3月,Facebook宣布以20亿美元收购虚拟现实设备Oculus Rift的制造商Oculus VR,沉寂已久的虚拟现实行业重新进入人们的视野。
2015年1月,微软黑科技产品MR(混合现实)头显—HoloLens与Windows 10系统同时发布。
在2017年6月的WWDC上,苹果重磅推出了ARKit,这让iOS一夜之间成为最大的AR平台,更让虚拟现实进入更多开发者的视野。同年在Google I/O大会上,Google推出了与ARKit对标的ARCore,这延续了智能手机时代的激烈竞争态势。
在接下来的几年,因为相关技术发展的滞后,虚拟现实行业陷入了长达三年的暗黑时代。
但进入2020年之后,5G技术在全球,特别是在中国得到了广泛的应用。作为5G技术的最佳应用场景之一,AR/VR内容的需求再次爆发,这也让该行业的从业人员为之一振。以苹果为首的众多科技公司在这一领域的技术耕耘终于得到了回报。iPad Pro和iPhone 12 Pro系列中均搭配了全新的LiDAR激光扫描雷达,其他国内外厂商也纷纷跟进。5G和激光扫描技术的迅速商用让虚拟现实行业走出阴霾,迎来春天的黎明。
今天为大家推荐《Unity AR/VR开发:实战高手训练营》
01
编辑推荐
涵盖Unity AR/VR开发主流平台/工具、必会知识、亮眼案例,以及重难点,你要的都在!
1)Unity开发必会知识:C#开发、虚拟世界构建、UI界面、动画系统、物理引擎、音乐/音效。
2)主流AR、VR开发平台/工具:OculusQuest、Vuforia SDK开发、ARFoundation(ARKit/ARCore)、VoxelSense
3)亮眼AR/VR案例:虚拟直播、iWatchAR、跨平台AR塔防游戏、AR汽车引擎模拟应用
4)AR/VR开发难点:动作捕捉原理与应用
02
本书特色
目前,市面上有关AR/VR开发的图书相对较少,现有的图书主要针对有经验的开发者,而本书的内容对于零基础的开发者也十分友好,从基础概念到使用Unity进行AR/VR开发,书中都有介绍。
与只重视概念讲解,不重视实际操作的Unity开发图书不同,本书从基本知识到进阶技能再到AR/VR实战开发,每一部分都会融入大量的实战讲解。
有经验的Unity开发者可以直接学习AR/VR实战项目的相关内容。针对Oculus Quest、Vuforia、AR Foundation(涵盖ARKit/ARCore)、全身动捕技术平台、VoxelSense等几个主流的AR/VR平台和SDK,本书都会通过实战项目进行讲解。
03
作者简介
王寒,资深苹果平台开发者、国内较早的iOS与VR/AR应用开发者、腾讯课堂讲师、知乎专栏“灵猫学编程”作者、蛮牛游戏开发专栏作者。著有《Cocos2D权威指南》《虚拟现实:引领未来的人机交互革命》《Unity AR/VR开发:从新手到专家》等书。2013年开始接触AR/VR技术,对主流游戏引擎及VR/AR交互技术有一定的研究,包括Unity3D、Unreal4、ARKit、ARCore等,目前已获得数个相关领域的技术专利,并在申请和动捕及多感知人机交互相关的技术专利。长期负责虚拟现实相关项目的内容开发和技术培训,如基于VR/AR平台(HTC VIVE、Oculus、HoloLens和ARKit)开发的教育类应用Project Minsky、未来教室、Cute Mimi等。张义红香港理工大学博士,东华大学信息学院副院长、副研究员,主要研究方向为增强现实、图像处理与模式识别。王少笛魔珐科技技术负责人、虚拟数字人探索者、国内首批虚拟现实爱好者、知乎专栏“动作捕捉技术”作者。曾任职于赛隆空间科技,担任产品设计与开发总负责人,主要面向市场主流设备(HTC VIVE、Oculus、Hololens等)开发教育类相关应用,目前已上线的产品有Project Minsky、未来教室、消防安全VR版等。
04
适合读者
对AR/VR开发感兴趣,但是之前并没有任何Unity3D开发经验的初学者。
对AR/VR开发感兴趣,并且已经具备一定Unity3D开发经验的开发者。
对AR/VR开发感兴趣,想了解项目开发整体流程的管理者或团队成员。
05
插图摘录
06
目录
前言
第一部分 Unity开发基础知识
第1章 虚拟现实开发技术入门2
1.1 什么是虚拟现实2
1.2 虚拟现实的技术基础3
1.2.1 立体显示技术4
1.2.23D建模技术5
1.2.3 自然交互技术6
1.3 主流的虚拟现实设备7
1.3.1Oculus 系列8
1.3.2HTC VIVE系列9
1.3.3Sony PlayStation VR11
1.3.4 其他VR设备12
1.3.5Microsoft HoloLens12
1.3.6AR眼镜设备12
1.4 主流的虚拟现实开发工具13
1.4.1 虚拟现实开发平台简介13
1.4.2 第三方工具和SDK14
1.5 虚拟现实应用开发的基本流程和注意事项16
1.5.1 基本流程16
1.5.2 注意事项18
1.6 本章小结19
第2章 你人生的第一款Unity3D游戏20
2.1 常用3D游戏引擎介绍20
2.1.1 什么是游戏引擎20
2.1.2 游戏引擎架构基础21
2.1.3 主流3D引擎对比分析28
2.2Unity的授权、服务与安装29
2.2.1Unity的授权类型和服务29
2.2.2Unity的安装29
2.3Unity编辑器入门34
2.3.1 界面布局34
2.3.2Unity的工具栏38
2.3.3 顶部菜单栏41
2.4Unity3D中的核心概念43
2.4.1 场景43
2.4.2 游戏对象44
2.4.3 组件44
2.4.4 预设体45
2.5 实战项目:《梦幻天堂》游戏的设计与实现45
2.5.1 《梦幻天堂》的策划与设计45
2.5.2 创建一个新项目46
2.5.3 搭建游戏场景47
2.5.4 添加游戏角色50
2.5.5 预览游戏效果52
2.5.6 在Windows平台编译运行52
2.5.7 在Android平台编译运行53
2.5.8 在iOS平台编译运行55
2.6 本章小结 56
第3章 无往不利:在Unity中使用C#进行编程57
3.1 游戏脚本语言概述57
3.1.1 游戏脚本语言的诞生57
3.1.2Unity3D所使用的脚本语言58
3.1.3C#的开发环境58
3.2C#的基本语法和使用58
3.2.1 变量和数据类型58
3.2.2 表达式与运算符61
3.2.3 流程控制68
3.2.4 函数71
3.2.5 类、对象和方法74
3.3Unity的脚本系统77
3.3.1 创建脚本77
3.3.2 事件函数79
3.4 本章小结82
第二部分 Unity开发核心技能
第4章 创建一个虚拟的新世界84
4.1 创建基础的游戏场景84
4.1.1Unity中的地形引擎84
4.1.2 基本几何体的使用92
4.1.3 添加天空盒93
4.2 创建Unity之外的游戏资源94
4.2.13D模型、材质和动画的创建工具94
4.2.2 音效创建工具97
4.2.3 其他资源创建工具98
4.3 导入外部的游戏资源98
4.3.12D图像文件的导入和设置99
4.3.23D模型的导入和设置99
4.3.33D动画的导入和设置100
4.3.4 音频和视频的导入和设置101
4.3.5Unity资源包的导入和导出101
4.4Unity光照系统102
4.4.1 灯光组件简介103
4.4.2 常见的光源类型103
4.4.3 灯光组件属性简介105
4.4.4 全局光照109
4.4.5 烘焙109
4.4.6Lightmap的使用111
4.4.7Light Probe的使用112
4.4.8Reection Probe的使用114
4.5 粒子系统117
4.5.1 粒子系统简介117
4.5.2Shuriken粒子系统118
4.6 着色器120
4.6.1 着色器简介120
4.6.2Unity中的标准着色器121
4.6.3 创建自定义的着色器129
4.6.4Shader Graph133
4.7 后期处理135
4.7.1Post Processing简介135
4.7.2 如何在Unity项目中添加Post Processing136
4.8 本章小结140
第5章 游戏中的UI系统141
5.1Unity中的UI系统简介141
5.2UGUI中的静态视觉元素142
5.2.1Canvas142
5.2.2Image144
5.2.3Text147
5.2.4TextMeshPro148
5.3 交互UI对象149
5.3.1Button 150
5.3.2Toggle154
5.3.3Slider156
5.3.4 其他交互控件159
5.4 本章小结159
第6章 让角色活灵活现:Unity中的动画系统160
6.1Unity动画系统概述160
6.2Legacy动画系统概览160
6.3Mecanim动画系统概览161
6.3.1Mecanim动画系统的特性161
6.3.2Mecanim动画系统中的核心概念161
6.3.3Blend Tree163
6.3.4Retarget和Avatar164
6.3.5Mecanim动画系统的工作流程164
6.4Mecanim动画系统的使用165
6.5 本章小结170
第7章 最简单的游戏AI:Nav Mesh寻路系统171
7.1Unity寻路系统概述171
7.2Nav Mesh烘焙设置175
7.3 添加障碍物:Nav Mesh Obstacle179
7.4 穿越障碍物:Off Mesh Link180
7.5 本章小结181
第8章 真实世界的法则:物理引擎182
8.1 物理引擎概述182
8.2Unity物理引擎的核心构成183
8.2.1Rigidbody183
8.2.2Collider189
8.2.3Raycast196
8.3 本章小结198
第9章 且听风吟:音乐和音效199
9.1Unity Audio系统概述199
9.2Audio Source200
9.2.1Audio Clip200
9.2.2 在Unity中播放音频201
9.2.3Audio Listener203
9.33D音效203
9.4 实战:通过脚本播放音效204
9.5Audio Reverb Zone206
9.6 本章小结207
第三部分 Unity AR/VR开发实战
第10章 实战:基于Oculus Quest设备的Beat Music音乐节奏游戏210
10.1Oculus Quest内容平台简介210
10.1.1Oculus Store平台210
10.1.2SIDEQUEST平台211
10.2 创建你的第一个Oculus Quest项目211
10.2.1 开始前的准备211
10.2.2 创建Oculus Quest项目并导入资源212
10.2.3 添加OVRCameraRig214
10.2.4 完成项目的其他设置216
10.2.5 在Oculus Quest设备上编译运行224
10.3Beat Music游戏的策划和设计230
10.4Beat Music游戏的实现230
10.4.1 创建项目并进行开发和测试环境的搭建230
10.4.2 创建游戏场景230
10.4.3 通过按压按钮实现场景切换233
10.4.4 在主场景中实现类似切西瓜的效果238
10.4.5 添加控制器的震动效果242
10.4.6 计算玩家的得分243
10.4.7 添加背景音乐和音效247
10.4.8 完善游戏并测试248
10.5 将游戏发布到Oculus Store或SIDEQUEST249
10.6 本章小结252
第11章 实战:使用动捕技术实现虚拟直播253
11.1 动捕技术发展史253
11.1.1 动捕的诞生253
11.1.2 百家争鸣的动捕时代255
11.1.3 主流的动捕技术原理257
11.1.4 混合动捕261
11.2 光惯混合动捕原理262
11.2.1 光惯混合技术的缘起262
11.2.2 动捕数据解析262
11.3Perception Neuron Studio 光惯混合动捕设备的使用263
11.3.1 软件安装与配置264
11.3.2 纯惯模式动捕267
11.4 动捕数据后期处理269
11.4.1 使用动捕软件进行动捕数据初修270
11.4.2 重定向272
11.4.3 动捕数据的实时传输275
11.5 实战:用惯性动捕开发虚拟现实项目279
11.5.1 开始前的准备279
11.5.2 创建新项目并导入资源280
11.5.3 使用动捕文件驱动模型282
11.5.4 使用动捕数据实时驱动模型285
11.5.5 虚拟形象抠绿288
11.5.6 添加真实场景并测试292
11.6 本章小结293
第12章 实战:使用Unity和Vuforia SDK开发iWatch AR应用294
12.1Vuforia SDK 简介294
12.1.1 什么是Vuforia294
12.1.2Vuforia的功能模块简介295
12.1.3Vuforia的授权类型295
12.1.4Vuforia的工具和资源295
12.1.5Vuforia支持的平台296
12.2 你的第一款Vuforia AR应用297
12.2.1 开始前的准备297
12.2.2 创建项目并安装Vuforia298
12.2.3 配置项目并进行测试299
12.3iWatch手表试戴AR应用的策划308
12.4iWatch 手表试戴AR应用的实现308
12.4.1 创建项目并导入所需资源308
12.4.2 创建并导入图像识别目标数据库309
12.4.3 设置Image Target310
12.4.4 添加手表的3D模型311
12.4.5 设置手部遮挡312
12.4.6 添加更换手表的UI312
12.4.7 添加用于切换手表的代码313
12.4.8 编译运行315
12.5 将游戏应用发布到 App Store和安卓应用市场315
12.6 本章小结315
第13章 实战:使用AR Foundation开发跨平台AR塔防游戏316
13.1AR Foundation简介316
13.2iOS ARKit简介318
13.2.1 什么是ARKit318
13.2.2ARKit的功能特性318
13.2.3ARKit所支持的设备及平台319
13.3ARCore简介320
13.3.1 什么是ARCore320
13.3.2ARCore的功能特性320
13.3.3ARCore所支持的设备322
13.4 你的第一款AR Foundation应用—Hello AR322
13.4.1 开始前的准备322
13.4.2 下载并打开官方示例项目323
13.4.3 下载并导入所需的资源包323
13.5 实战:跨平台AR塔防游戏ARDefense的设计与实现329
13.5.1ARDefense的设计329
13.5.2 开始前的准备329
13.5.3 创建新项目并导入所需资源330
13.5.4 放置基地331
13.5.5 添加游戏的核心逻辑机制333
13.5.6 外星飞船来袭336
13.5.7 向飞船发起攻击340
13.5.8 在设备上进行测试342
13.6 本章小结342
第14章 实战:开发AR汽车引擎教育应用343
14.1VoxelSense桌面级交互平台开发概述343
14.1.1VoxelTracker V4交互平台简介344
14.1.2VoxelTracker V4交互平台技术原理345
14.1.3VoxelTracker V4空间交互笔交互详解346
14.2 配置 VoxelTracker V4 的开发测试环境346
14.2.1 安装VoxelTracker V4硬件346
14.2.2 安装VoxelStation A600硬件349
14.2.3 下载并安装VoxelSense SDK350
14.3 实战:AR汽车引擎教育应用的设计与实现350
14.3.1AR汽车引擎教育应用的设计351
14.3.2 创建项目并进行基本设置351
14.3.3 新建汽车引擎场景351
14.3.4 实现汽车引擎放大/缩小354
14.3.5 获取内容帧数366
14.3.6 查看实际运行效果367
14.4 本章小结370
扫码关注【华章计算机】视频号
每天来听华章哥讲书
更多精彩回顾
书讯 | 8月书讯(上)| 这些新书不可错过
书讯 | 8月书讯(下)| 这些新书不可错过
资讯 | Rust跨界前端全攻略
书单 | 2021半年盘点,不想你错过的重磅新书
干货 | Rust跨界前端全攻略
收藏 | 快收藏!!整理了100个Python小技巧!!
上新 | 【新书速递】深入浅出Pandas,用好Python必备
点击阅读全文购买