编辑推荐

适读人群:《Unity VR 虚拟现实完全自学教程》适合对制作VR应用程序感兴趣的人员,以及有志于从事VR软件开发工作的人员阅读,同时也适合院校及培训虚拟现实机构相关专业的师生参考。

VR行业目前处于初级发展阶段,但在未来将会蓬勃发展,所以当前是进行技术知识储备的关键时期。纵观整个行业的发展历程,当前的硬件设备水平已经有了长足的进步,分辨率更高的屏幕、视野更加广阔的头部显示器、携带更加方便的设备,未来的5G与人工智能技术也将会给VR行业带来巨大的发展机遇。

Unity是当前业界领先的VR/AR内容制作工具,全球60%以上的VR/AR内容都是基于Unity引擎进行制作的,Unity为制作优质的VR内容提供了一系列先进的解决方案,使项目需求得以完美实现。《Unity VR 虚拟现实完全自学教程》也将以Unity为核心,讲解制作VR应用程序的方方面面,希望能够帮助读者制作出属于自己的VR应用程序。

内容简介

Unity VR 虚拟现实完全自学教程》是VR自学爱好者的一本入门书,《Unity VR 虚拟现实完全自学教程》共16章,全面讲述了在制作VR应用程序的过程中所必备的软/硬件知识。硬件层面以HTCVIVE为主要硬件平台,同时介绍了两款配合其使用的外部设备——VIVE追踪器和LeapMotion;软件层面以制作VR应用程序的核心工作流程为主线,以Unity为游戏引擎,从VR交互原则、材质、UI、编程开发、调试优化等方面逐步展开介绍各工作环节的主要内容。同时,《Unity VR 虚拟现实完全自学教程》辅以丰富的案例项目,重点介绍了SteamVR、InteractionSystem、VRTK等必备插件在实际项目中的使用方法,帮助读者快速上手制作属于自己的VR应用程序。

Unity VR 虚拟现实完全自学教程》适合对制作VR应用程序感兴趣的人员,以及有志于从事VR软件开发工作的人员阅读,同时也适合院校及培训虚拟现实机构相关专业的师生参考。

作者简介

邵伟,Unity价值专家(UVP),公众号“XR技术研习社”(ID:XRStudy)主理人,现居山东省淄博市,毕业于山东理工大学。淄博木子信息科技有限公司创始人,蛮牛教育特聘高级讲师,录制了“HTCVIVE房产项目实战教程”“HTCVIVE开发实例教程”“VR写实材质技术实例教程”“SubstancePainter2018基础实例教程”等视频课程,累计录制视频时长超过3000分钟,线上及线下培训学员总计超2000人,目前专注于VR/AR技术分享工作。

李晔:国内第一批进入AR技术领域的开发者,蛮牛教育讲师,曾从事次世代美术、平面美术、前端程序、策划、责任编辑等多个领域的不同工种,善于对接整合不同阶段的技术需求,曾参与《辐射4》等大型游戏开发。

目录

第1章VR行业概述/1
1.1VR介绍/1
1.2VR技术应用案例/1
1.3VR技术当前面临的挑战/5
1.3.1硬件价格/5
1.3.2运算及显示能力/5
1.3.3交互/5
1.3.4移动性/6
1.3.5内容/7
1.3.6小结/7

第2章UnityVR概述/8
2.1UnityVR/8
2.1.1图形渲染/8
2.1.2真实物理引擎/9
2.1.3多VR平台原生支持/9
2.1.4丰富的资源/10
2.1.5对开发者友好/10
2.1.6不断更新的Unity版本/11
2.2使用C#脚本进行VR交互开发/12

第3章当前主流VR硬件/13
3.1HTCVIVE/13
3.2OculusRift/13
3.3GearVR/14
3.4Cardboard/14
3.5Daydream平台15
3.6逐渐崛起的VR一体机/16
3.6.1OculusGo和小米VR一体机/17
3.6.2HTCVIVEFocus/18
3.7未来展望/18

第4章VR应用程序开发工作流程/20
4.1资源准备/20
4.2模型优化及重拓扑/23
4.3展UV的过程/24
4.4材质贴图制作/25
4.5将资源导入Unity/25
4.6导入开发工具包/26
4.7场景搭建/26
4.8设置光照环境/27
4.9交互开发/28
4.10测试优化/28
4.11发布应用程序/28
4.12常用开发工具/29

第5章VR交互设计原则/36
5.1设计必要的新手引导/36
5.2使用十字线(准星)/36
5.3避免界面深度引起的疲劳感/37
5.4使用恒定的速度/37
5.5保持用户在地面上/38
5.6保持头部的跟踪/38
5.7用光来引导用户的注意力/39
5.8借助比例/39
5.9使用空间音频/40
5.10充分使用反馈/40

第6章HTCVIVE硬件/41
6.1简介/41
6.2产品特点/41
6.3VIVEPRO/43
6.4HTCVIVE硬件拆解结构/44
6.4.1头显/44
6.4.2控制器/45
6.5HTCVIVE控制器按键名称/46
6.6HTCVIVE定位原理/47
6.7Inside-Out与Out-Inside位置跟踪技术/47
6.7.1Outside-In跟踪技术/48
6.7.2Inside-Out跟踪技术/48
6.8HTCVIVE的安装/49

第7章VR中的UI./51
7.1概述/51
7.2将UI容器转换为世界空间坐标/52
7.3VR中的UI交互/53

第8章UnityVR写实材质.55
8.1Unity材质基础/55
8.2基于物理的渲染理论/56
8.3PBR材质的优势/57
8.3.1高品质写实级别材质表现/58
8.3.2为实时渲染而生/58
8.3.3标准的材质制作流程/59
8.4PBR材质主要贴图类型/59
8.4.1颜色贴图(Albedo/BasecolorMap)/59
8.4.2金属贴图(MetallicMap)/60
8.4.3光滑度贴图(RoughnessMap)/60
8.5PBR材质制作软件/61
8.5.1SubstanceDesigner/61
8.5.2SubstancePainter/65
8.5.3QuixelSuite/66
8.5.4MarmosetToolbag/66
8.6制作PBR椅子材质/67
8.6.1在SubstancePainter中制作贴图/67
8.6.2导出贴图到Unity/74
8.7SubstanceinUnity的使用/76

第9章SteamVR/81
9.1SteamVR简介/81
9.1.1SteamVRRuntime/81
9.1.2SteamVRPlugin/81
9.1.3获取控制器引用及按键输入/83
9.2使用SteamVRPlugin实现与物体的交互/84
9.3InteractionSystem/89
9.3.1InteractionSystem核心模块/89
9.3.2使用InteractionSystem实现传送/91
9.3.3使用InteractionSystem实现与物体的交互/93
9.3.4使用InteractionSystem实现与UI的交互/95
9.4需要注意的问题.96

第10章使用VRTK进行交互开发/99
10.1VRTK简介/99
10.1.1什么是VRTK/99
10.1.2VRTK能做什么/99
10.1.3为什么选择VRTK/100
10.1.4未来版本103
10.2SteamVRPlugin、InteractionSystem与VRTK的关系/103
10.3配置VRTK/103
10.3.1一般配置过程/104
10.3.2快速配置VRTK/108
10.4VRTK中的指针/109
10.4.1指针/109
10.4.2指针渲染器/113
10.5在VRTK中实现传送/115
10.5.1VRTK中的传送类型/115
10.5.2限定传送区域/118
10.5.3在VR场景中实现传送/119
10.6使用VRTK实现与物体的交互/121
10.6.1概述/121
10.6.2配置方法/122
10.6.3VRTK的抓取机制/127
10.7VRTK中的控制器高亮和振动/129
10.7.1控制器高亮/129
10.7.2控制器振动/131
10.8VRTK中与UI的交互/132
10.9实例:开枪射击效果/134
10.10实例:攀爬效果/140
10.11实例:实现释放自动吸附功能/143

第11章将基于PC平台的应用移植到VR平台/148
11.1项目移植分析/148
11.2初始化VR交互/149
11.3Player的移植/150
11.4设置道具为可交互对象/152
11.5实现控制器与道具的交互逻辑/154
11.6修改UI渲染模式为WorldSpace/156
11.7玩家伤害闪屏效果/157
11.8根据报错信息调整代码/158
11.9游戏结束及重新开始/159

第12章LeapMotionforVR/162
12.1概述/162
12.2硬件准备/163
12.3软件环境/164
12.4LeapMotionVR初始开发环境/164
12.5替换LeapMotion在VR环境中的手部模型/165
XUnityVR虚拟现实完全自学教程
12.6实现与3D物体的交互/167
12.7实例:使用LeapMotion实现枪械的组装/171

第13章VIVETracker的使用/175
13.1外观结构/175
13.2使用场景/176
13.3初次使用Tracker/177
13.4使用Tracker作为控制器/178
13.5使用Tracker与现实世界物体进行绑定179
13.6小结/181

第14章UnityVR游戏案例――《水果忍者VR》原型开发/182
14.1项目简介/182
14.2初始化项目/182
14.3配置武士刀/183
14.4编写水果生成逻辑/185
14.5实现切割水果的效果/187
14.6制作分数和游戏结束UI/189
14.7编写计分、计时和游戏结束等逻辑/190

第15章UnityVR案例――TiltBrush原型开发/194
15.1项目分析/194
15.2初始化项目并编写脚本/195
15.3实现修改笔刷颜色功能/197
15.4扩展内容:将绘制交互修改为VRTK版本/201
15.5异常处理/202

第16章UnityVR性能优化工具和方法/204
16.1UnityProfiler/204
16.2MemoryProfiler/205
16.3FrameDebugger/205
16.4优化原则和措施/206
16.4.1LOD技术/206
16.4.2较少DrawCall数量/207
16.4.3使用单通道立体渲染/208
16.4.4使用TheLabRenderer/209
16.4.5小结/210

附录AXR技术词汇解释/211
附录BUnity编辑器基础小贴士/217

前言/序言

虚拟现实行业由初期的概念炒作发展到了稳步增长阶段。纵观整个行业的发展历程,当前的硬件设备水平已经有了长足的进步,分辨率更高的屏幕、视野更加广阔的头部显示器、携带更加方便的设备,未来的5G与人工智能技术也将会给虚拟现实行业带来前所未有的发展机遇。

2018年9月14日,教育部正式宣布在《普通高等学校高等职业教育(专科)专业目录》中增设“虚拟现实应用技术”专业。2019年,全国将有71所高职院校首次开设虚拟现实应用技术专业,人才缺口随着行业的发展也日益凸显。VR内容(应用程序、视频等)始终是基础设置上的重要一环,也是各种政策及大环境下需要催生孵化出的结果。从宏观发展角度看,虚拟现实行业目前还处于初级发展阶段,但在未来必定会蓬勃发展,所以当前是进行技术知识储备的关键时期。

Unity是当前业界领先的VR/AR内容制作工具,全球60%以上的VR/AR内容都是基于Unity引擎进行制作的,Unity为制作优质的VR内容提供了一系列先进的解决方案,无论是VR、AR还是MR,都可以使用Unity高度优化的渲染流水线以及编辑器的快速迭代功能,使项目需求得以完美实现。基于跨平台的优势,Unity支持所有新型的主流平台,原生支持OculusRift、SteamVR/VIVE、PlaystationVR、GearVR、MicrosoftHoloLens以及Google的Daydream等。《Unity VR 虚拟现实完全自学教程》也将以Unity为核心,讲解制作VR应用程序的方方面面,希望能够帮助读者做出属于自己的VR应用程序。

Unity VR 虚拟现实完全自学教程》主要内容

第1章:对VR行业进行了概述,介绍了该技术在其他行业中的应用案例,以及目前VR行业面临的挑战。

第2章:对Unity编辑器进行了介绍。

第3章:对主流硬件设备及分类进行了介绍,使读者对当前主流VR硬件平台有了初步认知。

第4章:介绍了VR应用程序制作的基本工作流程和一些常用的开发工具。

第5章:介绍了在VR应用程序中需要遵循的交互原则。

第6章:介绍了HTCVIVE硬件的基本结构、安装步骤、实现位置追踪的原理,并对作为主要交互设备的控制器的按键进行了说明。

第7章:介绍了VR中的UI技术,讲解了在Unity中如何将UI元素设置为能够在VR环境中呈现的方法。

第8章:笔者从接触的学员作品来看,大部分VR应用程序只聚焦于交互的实现,忽视了作品的呈现品质,而这恰是VR应用程序给用户的第一印象。本章介绍了基于物理的渲染理论(PBR),以及常用的PBR材质制作软件,通过实例介绍了SubstancePainter的使用方法,目的是为了强调写实材质在VR应用程序中的关键地位。

第9章:SteamVR是进行PC平台VR应用程序开发的重要工具,本章通过实例介绍了SteamVR以及基于其上的InteractionSystem的核心模块和基本使用方法。

第10章:VRTK是基于SteamVR进行VR应用程序开发的重要插件,本章详细介绍了VRTK的使用方法,通过一系列实例,讲解了该插件在VR交互开发工作中的高效性。

第11章:VR平台与PC、移动平台最大的区别在于交互方式的不同,本章通过演示将PC平台上的一款游戏移植到VR平台的过程,展示交互开发在VR平台上的重要性。

第12章:介绍了手势识别设备—LeapMotion在VR中的应用,通过一个器械装配实例,讲解了如何在VR中通过手势实现与物体的交互。

第13章:介绍了VIVE追踪器(Tracker)的基本使用方法,通过实例讲解了如何实现在VR环境中将追踪器与现实世界物体进行绑定并跟踪其位置。

第14章:演示了类似VR游戏《水果忍者VR》的原型项目开发,包括游戏逻辑、水果生成、切割效果、计分UI呈现等功能模块。

第15章:演示了类似VR应用程序TiltBrush的原型项目开发,包括在VR环境中使用控制器绘制线条、修改画笔颜色等功能模块。

第16章:介绍了Unity编辑器内置的性能分析工具,同时针对Unity讲解了几种应用程序的优化原则。

附录A:收录了VR/AR行业常见的技术概念并做出解释,使读者在以后的工作和学习中能够有效地阅读VR/AR相关的文献资料。

附录B:由于《Unity VR 虚拟现实完全自学教程》重点不是介绍Unity编辑器的基本使用方法,所以在本部分为初学者提供了关于使用Unity的基础小贴士,以便读者更加熟练地使用Unity。

科技日新月异,Unity及相关的软件也在飞速发展,《Unity VR 虚拟现实完全自学教程》介绍的技术也会随着时间的推进而不再适用,甚至一个插件的版本号的更新也会导致之前的应用程序运行出现问题。鉴于此,读者可在公众号“XR技术研习社”阅读和查看关于VR技术的文章和资源,如果对《Unity VR 虚拟现实完全自学教程》内容存有疑问,也可在后台留言。

致谢

2016年5月,淄博创客空间创始人于方军老师介绍李晔老师给我认识,并带我们参加了在上海举办的CESAsia2016中美创客大赛,我和李晔老师分别获奖。我们也因此成了朋友,在以后的日子里时常交流工作中的经历和想法。上海之行后,李晔老师将我介绍给蛮牛教育,录制了我的首套VR视频教程—“HTCVIVE房产项目实战教程”,由于运气成分占多,当时国内在VR开发方面的资料相对较少,加之游戏蛮牛的影响力,这套教程在当时受到了一定程度的关注。后来,李晔老师又将我推荐给电子工业出版社,于是便有了这《Unity VR 虚拟现实完全自学教程》的出版,在这里一并向李晔老师表示感谢,同时也感谢于方军老师促成的这段机缘。

感谢《Unity VR 虚拟现实完全自学教程》的责任编辑孔祥飞先生,在整个写作周期里始终保持着耐心和专业的态度,也感谢其团队对书稿进行的专业审稿和排版工作。

感谢我的家人——邵昌文先生、张淑美女士、李木子女士在写作期间分担的家庭责任。


其他推荐