原书前言
2017年第三季度的硬件销售量,是虚拟现实(Virtual Reality,VR)硬件产业的一个新的里程碑。在经历了几年的使用率低下和销售不景气后,制造商售出了100万台VR头盔。这一成功震惊了许多科技作家,他们曾预言VR技术会被早期使用者和技术发烧友束之高阁。然而,在现代消费级头盔发布后,VR产业还是看到了其巨大的推动力,同时,各种场景下VR的大量使用也让VR开发人员数量迎来了蓬勃增长。随着头盔成本的降低和消费者市场的日益壮大,全球各地产业都在投资VR技术。这并不局限于娱乐公司,制造业、医疗卫生行业、零售和教育行业也正在引领VR技术一些新的探索和应用。
我们看看Glassdoor、Indeed和Monster这些公司的情况吧。从纽约到休斯敦,再到雷德蒙德,在美国的每一个技术人才市场都在不断涌现出新的与VR开发相关的招聘信息。VR开发能力可谓炙手可热。
本书采用了一种实用的、项目式的方法来进行VR开发。我们使用了4个易理解的而又启发人思考的创意,在Unity开发平台上就实现VR项目的一些细节展开教学。每一个项目都从分步式指南开始,之后还包括对VR最佳实践、设计选择、技术挑战的讨论,以及对读者自己的解决方案进行改进和实现的指导建议。
我们期望你在学习完本书后,能够获得一套新的技能并热爱上VR开发,同时具备使用Unity平台创建丰富的、沉浸式体验的想法和创意。
适用读者
你是否想过创建自己专属的VR体验?是否想过创建一个沉浸式环境?手头是否有一款VR头盔?如果你的答案都是“Yes”的话,那么本书正是为你准备的!本书内容既适合开发人员,也可帮助新手上手学习。最好具备一些Unity游戏引擎的知识,不过即使是开发新手也可以跟上并适应书中的分步式教程。
本书内容
“第1章 VR的过去、现在和未来”,详细介绍了虚拟现实平台,从起步阶段,到当今的硬件设备。该章介绍了视觉暂留、立体视觉和触觉反馈,这些要素的结合将虚拟世界和物理世界真正连接起来。
“第2章 为Google Cardboard构建一个‘太阳系’”,这是一个简单的入门项目,使用Trappist-1 Solar System作为背景向新手介绍VR开发。
“第3章 为Gear VR构建图片画廊系统”,使用虚拟实地考察(VR行业的基石)来演示如何创建虚拟场景。该章还列出了一个用户参与的计划进程。这个入门级项目也是为你迅速熟悉项目开发而准备的。
“第4章 为虚拟画廊项目添加用户交互”,用案例说明了VR沉浸的关键就在于用户交互。在该章中,我们对图片画廊进行扩展,使其接受用户输入,进而引出沉浸感这一主题。我们会创建一系列控制器脚本,用于在VR空间中选择图片和画廊。该项目是面向中级Unity开发人员的,但是其中的操作和方法适合于所有开发人员。
“第5章 在Oculus Rift上展开‘僵尸’大战”,探讨了第一人称射击类型游戏。无论是第一人称还是第三人称的射击游戏,几十年来都已经被牢牢地确立为顶级游戏类型。“僵尸”大战第一部分涵盖了环境的构建、射线系统的实现,以及使用状态机来控制动画预制件的播放。与此同时,我们还给出了一些优化VR体验的技巧。
“第6章 为Oculus Rift编辑‘僵尸’脚本”,这是“僵尸”大战的第二部分。该章详细介绍了如何构建控制“僵尸”和玩家进行交互的脚本。如果你有Unity脚本编程经验,理解起来会更容易,新手也完全不用担心,因为我们的操作说明非常详尽。
“第7章 嘉年华游乐场游戏(上)”,这个项目中我们将一起构建社区嘉年华中常见的两个小游戏。这一部分包括了构建环境、讨论关卡设计的相关技巧,以及规划传送系统。
“第8章 嘉年华游乐场游戏(下)”,提供了关于添加UI元素、各种游戏对象脚本编程、项目收尾的说明。作为终极任务,你需要对本章内容做一些拓展,通过添加Asset Store中的物品或是自定义游戏对象,来营造嘉年华气氛。
“附录A VR设备概览”,罗列了一些现有的VR头盔,主要提供产品的细节、规格以及价格比较。
“附录B VR相关概念”,为想更进一步理解书中概念的读者提供了一些额外的VR术语讲解。该附录中还包含了有关输入、移动和设计用户体验的最佳实践。
如何最有效地利用本书
开始书中所列项目之前,要先做几件事。首先,需要一台满足Unity 3D系统需求的Mac或PC。可以访问https://docs.unity3d.com/Manual/system-requirements.html以查看你的计算机配置是否符合软件运行需求。
本书使用的是Unity 3D游戏引擎免费版。如果你对Unity引擎并不熟悉,可以访问https://docs.unity3d.com/Manual/UsingTheEditor.html,该教程介绍了Unity软件界面和基本游戏对象。Unity引擎在不断进行改进,版本不断更新。每月都会发布一些新的补丁,每年大概会进行两三次主版本更新。因为更新很快,所以你最好安装最新版本的Unity软件。
开发项目时除了需要计算机外,还要配备VR头盔来对环境进行完整测试。
我们设计了几个针对不同平台的教程:Google Cardboard(项目:“太阳系”)、三星GearVR(项目:图片画廊),以及Oculus Rift(项目:“僵尸”大战、嘉年华游戏)。当然,构思都是通用的,只要略做调整,就可以将其应用在其他设备上。
每个硬件平台都需要相应的软件开发工具包(SDK)或自定义Unity软件包来帮助Unity和VR设备进行通信。每个项目的开头都有安装说明。记得检查与已安装Unity版本的软件兼容性,这点也很重要。可以通过下载网站或Unity的VR设备部分(https://docs.unity3d.com/Manual/XRPluginArchitecture.html)完成兼容性检查。
下载示例代码
可以通过以下步骤下载代码文件:
1)打开www.packtpub.com,登录或注册。
2)选择“SUPPORT”选项卡。
3)单击“Code Downloads&Errata”。
4)在搜索框输入原书的书名,然后跟着屏幕提示进行操作即可。
下载文件后,请确保使用以下软件的最新版本进行解压:
Windows系统:WinRAR/7-Zip。
Mac系统:Zipeg/iZip/UnRarX。
Linux系统:7-Zip/PeaZip。
本书代码在GitHub上也能下载:https://github.com/PacktPublishing/Virtual-Reality-Blueprints。