本文作者:拍不死你

你所不了解的VR

拍不死你 11-06 11
你所不了解的VR摘要: 本文摘自《Google Cardboard App 开发指南》...

本文摘自《Google Cardboard App 开发指南》


远在YouTube支持360°全景视频之前,我就使用过类似的应用。开始我也想过自己制作VR眼镜,最后还是决定偷懒,买一个算了。之后我购入了一个谷歌魔镜,来进一步提高游戏体验。那天,包裹被送了过来,从打开包装到组装完毕,共花了5分钟。

接着,我下载了谷歌魔镜的官方应用,插入手机。但这个应用一直在循环播放视频,后来发现是因为手机应用需要检测到谷歌魔镜里NFC的信号才开始正常工作。我把NFC标签贴好,打开了手机的NFC功能并重新插入手机。此时,一切都恢复正常了。

提示:

谷歌魔镜里的NFC标签通过与手机触碰发送信号可实现快速下载App、快速打开谷歌应用等便捷功能。

你也许从很多人那里听说过,第一次观看谷歌魔镜所呈现的画面时,你会惊呼“哇”!对我而言,我认为这主要是因为谷歌魔镜所带来的令人惊叹的效果。我开始非常怀疑,仅有两个廉价镜片的谷歌魔镜再加上手机中的几个传感器能否真的将虚拟现实的世界呈现在我的眼前。

但谷歌魔镜确实做到了,你看到的风景会跟真实的景象一样是 360°全景的,会随着你头部的转动而变化。难以想象这就是真正的VR,所以大家都会惊叹“哇”。

接着15分钟过去了。在这15分钟里,我在YouTube上观看了3D电影,体验了几次虚拟世界里的雨天效果,在谷歌地球中欣赏了许多地方的风景。然后我对自己说:“这很棒,但是我还没看够,我要去探索更多东西,我想在其中实现互动,我想要如同在真实世界里一样行走。”

于是我开始这样想:谷歌的官方应用应该具有代表性,毕竟谷歌魔镜是如此酷炫,谷歌应用商店里应该有许多更好的应用。但事实并非如此,下载完应用商店里的所有 VR 应用后,我才发现应用商店中支持谷歌魔镜的应用基本都处在测试阶段。这些应用当中没有一个能够让我实现互动,或者是不使用蓝牙手柄就可以操作的。

短暂的失望过后,我就到架子上找出我的蓝牙手柄来实现与虚拟现实世界的交互。然而在感到眩晕后,我的想法就落空了。在虚拟现实世界里通过游戏手柄来控制移动会让我感到晕眩。真正的VR怎么可能让人如此失望呢?

接着我开始思考:虽然人类的头部并没有像手和腿那样灵活,但我们平时也经常用头部动作来进行简单的信息传递,如点头代表“是”、摇头代表“否”。为什么不能用头部动作来对应用进行操控呢?我开始进行这方面的尝试,同时还试验了许多其他方法,结果证明通过头部动作进行操控的方式更好一些。

这种操控方式甚至影响了谷歌应用商店里人们对应用的评价。除了一些蓝牙手柄的铁杆粉丝还在坚持VR应用一定要支持蓝牙手柄外,其他人群的反响非常好。于是最终我找到了一种能够同时支持这两种控制方式的方法,并且将来还会支持更多控制方式。

我为了测试我的头部控制方式而开辟的专区变得广受好评。我开始收到不少用户的来信,信中说应用里的音乐很棒并且令人感到舒适,他们通过享受专区里的应用缓解了一天的辛劳(后续的章节里我会分析为什么用户会有这样的体验)。我开辟的专区逐渐打破了仅通过蓝牙控制器进行VR应用操作的固有模式。

最重要的是,谷歌商店里的VR应用非常少。难以想象,在一个拥有数十亿用户的应用商店中,VR应用却如此之少。因此在VR类别的应用中,这是获得巨大下载量的绝佳方式。最终事实也证明我的确是对的,Alien Apartment(这是笔者开发的一款用头部动作进行操控的VR应用)在几周内达到了数千次的下载量。尽管不及Flappy bird,但还是比较可观的。同时,谷歌将继续推广这个平台。

我参与VR的开发纯属偶然,但这并不影响我参与的热情,因为VR像音乐一样能带给我乐趣。研究VR并不仅仅是为了开发游戏,也是在设计一个新世界。如同你可以变换音乐的旋律,聆听它、享受它一样,你可以设计自己的世界,并沉浸其中。这和Minecraft(我的世界)的高速成长十分相似,不禁让我想到了VR的市场前景以及什么样的机会将首先出现。

假设你已经购买了这本书,也已经有一些开发谷歌魔镜和Oculus Rift(一种专用的VR头盔,价格较贵)上VR应用的经验,那么我们来比较一下基于上述两种平台开发VR应用的区别,具体情况如表1-1所列。

表1-1  两个平台开发VR应用的区别

项目

Oculus VR

谷歌魔镜

得出的结论

花费

这个头戴式显示器需要与一个高配置的电脑协同工作(电脑负责运行程序、处理图像,其价格在1000美元,Oculus VR则负责显示功能)

需要买一部性能和功能类似Nexus5的手机(300美元左右)和谷歌魔镜(5~100美元)

2014年最后一个季度大约售出了4亿部手机和8000万台电脑。这个数据应该可以帮助你从市场规模的角度得出结论

质量

具体最终性能怎样并不知晓,但很明显Oculus VR是高端产品

中低端产品,低分辨率,低功耗,而且显示器并非特制的虚拟现实显示器

如果你期望开发出像大卫雕像那样的顶级艺术画面,那你买错书了

体验

潜力无限

潜力无限

虽然通过Oculus不仅可以体验FPS类型的游戏或应用,也可以更好地渲染更大数量的多边形以取得更好的视觉效果,但同时,当下人们也非常喜爱复古风格的像素游戏,这些游戏的体验和音乐的吸引力同样很大。对于VR领域而言,更是如此。相信你应该已经知道这一点,这就是你购买本书的原因

发展水平

如果玩家已经拥有高配置的能与Oculus VR 协同提供流畅顺滑虚拟现实体验的主机,则不需要再购买新的主机,因而总花销不太高(作者认为这仅仅是针对骨灰级玩家而言的)

个人认为谷歌正在大力发展与谷歌魔镜相关的业务,准备占领下一代的大众市场

我个人认为由于Oculus定价不菲,所以目前还仅仅是骨灰级玩家案头的昂贵外设,仍然未被大众玩家所接受。而只要拥有安卓手机便可以轻松购得谷歌魔镜,通过其方便地进入虚拟现实的世界

总而言之,如果谷歌拿出大力发展谷歌魔镜的战略计划,就会有更广阔的市场和更大的发展潜力。此外,Oculus 是一个正在高速发展的、性能更强劲的平台,其能够全速支持更丰富的VR理念。

近期Oculus推出的Gear VR(与三星合作研发)使得VR的市场路线更加模糊,前景也不很明朗。但可以确定,未来的VR设备不会仍只是骨灰级玩家案头的专有外设或者是仅有两个廉价镜片的纸板盒。

可以预见,性能优良、价格合理的VR设备必将出现。那时,肯定可以以一款中端智能手机的价格购得一套完整的VR设备。这些VR设备可以方便地与你拥有的智能手机、智能手表、平板电脑或笔记本电脑配合使用。时间会证明我在谷歌虚拟现实上下的赌注是正确的。

有过软件开发经验的开发人员都了解,开发工具是生产效率的基石。合理的工具链能够支撑合理的工作流,因此下面将介绍几种在开发谷歌魔镜VR应用时可以配套使用的几个工具。

Unity可以说是开发Android 3D应用最简便、最快捷的工具。这与其非常成熟以及完全支持用户自定义密不可分。此外,谷歌还提供了支持Unity平台的谷歌魔镜SDK,这为开发提供了极大的方便。到目前为止,Unity已经发布了很多版本,本书为什么选用5.1版呢?原因如下。

实际谷歌魔镜VR应用的开发中,尽管理论上可以有多种选择,你甚至可以选择创建自己的立体渲染框架,但我认为只有使用谷歌魔镜开发工具包进行开发是正确的,原因如下。

我不太擅长3D模型的创作,因此花了很长时间去选择合适的模型制作工具。在尝试了多种不同的工具后,最终我选择了Blender,主要原因如下。

如果没有漂亮的纹理图,就不可能渲染出具有吸引力的场景,所以一款优秀的图像处理软件对应用中的所有3D场景都是非常关键的。我之所以喜欢用GIMP工具处理图像,是因为它简单且功能强大。GMIP 不断提供各种处理工具(包括色彩曲线、多参数调整、规格化、着色、色相/饱和度、色彩深度、alpha 通道处理、选择、图层、遮罩等)。这些处理工具正在迅速地发展,而且使用起来非常简便明了。当然,GIMP也是开源的,互联网上有大量的插件(诸如生成法向量贴图的工具等)。下载地址https://www.gimp.org。

这里你说了算!无论你是不是一个拥有自己家庭工作室的专职音乐制作人,都可以从网络上海量的开源音效素材中找到你最需要的音效。除此之外,还有一点我不吐不快:Single Cell Software(一个软件开发商)开发的Caustic是一款非常值得使用的音效制作软件,它虽然很小但功能强大,可以说是过去10年中MOD音轨制作软件非常值得一提的继承者。

说明:

MOD是一种较为古老的用来存储计算机音乐的文件格式,也是第一个模块化的音乐文件格式,其文件以“.mod”扩展名结尾,一度非常流行。

Caustic同时兼容Android和iOS平台,可以随时将灵光一现飘过你耳畔的旋律制作出来。当然,通过Caustic,你也可以在台式机上(包括Windows和MacOS)导出.wav或.mid格式的音频。即使你从来没有制作过音乐,你也应该尝试一下!下载地址:singlecellsoftware.com/caustic。

虽然我还没有使用过这款软件,但是在这里我必须要提一下。Makehuman 是一款基于大量人类学形态特征数据开发的,且有大量可自定义选项的开源3D人物角色建模软件,还符合Unity rig模型标准。下载地址:www.makehuman.org。

我的建议很简单:开发中的模型、音效等最好使用对应制作软件原本的格式存储,使用时导出为Unity友好的格式。到目前为止,我认为最好的经验如下。

如果你也是一位独立开发者,硬件拥有量是一个非常大的制约因素,因为很难有充裕的资金购买各种各样的手机和头盔来检查应用程序的兼容性。因此,实际的选择只能是“做能力范围内的事情”。以我为例,我最终只做了两种设备的测试,具体情况如下。

由于最初的谷歌魔镜本身没有提供头部固定装置,在测试时我使用了自己制作的绑带将其固定在我的头部。这对于检查我的场景对性能的要求和基本的平台兼容性(包括视野的范围、焦距、舒适度等)很有帮助。

这种组合的首要目的就是使眼睛和身体更加舒适。因为在体验诸如Alien Apartment这样的场景时,一不留神就会花费很长的时间。而长时间佩戴使用松紧绑带的一些VR设备后,你的脸部会被压出很深的皱痕,那是令人十分郁闷的一件事!在这种情况下,Freely VR这类的设备是一个很好的选择。另外,对我的眼睛而言,Nexus 5的屏幕像素密度能达到的效果已经基本和最新的Oculus原型设备相同,这也是能良好体验大范围虚拟现实场景所需达到的最低要求了。

其实这个问题没有标准答案,这取决于你自身的体会。我不可能一一列举,但可以给出一些帮助和提示。其实,最具革命性的是VR开创了新的纪元。从最早的游戏(Pong)到目前最新版的游戏(黑暗旅行)都可以被重新策划、制作,带来完全不同的体验!

对于传统屏幕而言,创作一款与市面上游戏类似的作品非常容易。但是如果让你开发一款VR游戏,估计你会无从下手。不要灰心!虽然我们刚刚登上这片新大陆,但是有足够的时间来慢慢开拓这片蕴含极大潜力的处女地。

说明:

Pong是世界上公认的第一款成功的商用计算机游戏,由Atari(阿塔里)在 20世纪70年代推出,可以说是计算机游戏的鼻祖了。

试想一下这样的情景:你拥有一家能做出世界上最美味食物的餐厅,但是餐厅装修得非常糟糕而且坐落在偏僻的地方,生意应该十分惨淡。之后,你又开了一家新的餐厅,由于主厨辞职了,餐厅只能提供一些基本的食物。但是如果这家餐厅坐落在科罗拉多大峡谷的顶部,有着漂亮的玻璃屋顶,餐桌都是用周围的天然石材制作,用餐环境特色突出、新奇好玩,你将会赚得盆满钵满。

说明: 

科罗拉多大峡谷是一个举世闻名的自然奇观,位于美国亚利桑那州西北部的凯巴布高原上,大峡谷全长446千米。由于科罗拉多河穿流其中,风景优美,是联合国教科文组织选为受保护的天然遗产之一,也是美国的旅游胜地之一。

明白我的意思了么?这听起来确实有点荒谬,但也不是不可能。如果将餐厅比作一款游戏,食物可以看作画面的质量,餐厅的装修可以看作画面的吸引力,而地理位置可以看作游戏的可玩性。通常,高端的画面并不意味着一定受欢迎。这一点从最近一段时间游戏的流行情况就可以看出来,不管是像素化的游戏、黑白界面的游戏以及彩色画面的游戏都有流行的。

手机的GPU无论如何也不可能达到同时代PC显卡的处理能力,因此很难期望手机游戏通过渲染数以百万计的多边形组成的复杂场景来吸引玩家。但就像前面餐厅的例子那样,可以通过提高游戏的可玩性、创造良好的游戏氛围来吸引玩家。

我并不想假模假样地解释一下如何营造身临其境的氛围,但是我曾做过一些有益的尝试。其中很多做法是非常有效而且简单的,诸如利用云、极光、视角、背景音乐和音效增强游戏氛围等。身临其境的氛围对于一个游戏的成功来说十分重要,后面我还会回到这个话题。

我们有必要确定一下讨论的是同一件事情,虚拟世界需要做到以下几点才能带来沉浸式的体验。

不过,想要让每个人都有完全沉浸式的体验是非常困难的。以我为例,当不需要手柄进行控制时,我很容易沉浸到游戏场景中,但是当我要思考应该按下哪个按钮时,我就会立刻回到现实中。对于需要使用磁钮的情况也是如此,我总是不断地在想:“磁钮在哪个位置啊?”再加上拨动磁钮时会带来那萦绕在耳边的糟糕声音,这就更难使我忘记现实世界而沉浸到虚拟世界中了。

然而,大部分人似乎并没有对这样的情况不满,我认为应该是有些人更容易融入虚拟世界中。值得高兴的是,如果你成功解决了某些人难以融入虚拟世界的问题,剩下的事情就会比较容易解决了。

我觉得营造一个身临其境的氛围理解起来比较容易。沉浸式的体验已经有点抽象了,而真实感和依赖性是更复杂的沉浸式体验的延伸。让我们先来谈谈依赖性,如果你玩过Alien Apartment这款游戏,就会发现没有太大的可重玩性。虽然刚上手时有点小小的困难,可一旦你通关了这个游戏,短期内就不会有再玩一次的欲望了。不过这并没有对这个游戏产生任何负面影响,许多人都给我来信说他们非常喜欢这款游戏,每次完成游戏都能让他们的身心得以放松。

我很难轻易理解为什么会出现这种情况,于是我做了一个测试,比较一下现实世界的我躺在床上和虚拟世界的我躺在床上有什么不同,但并没有什么特别的感觉。有一次,我闲来无事打开了游戏,在选项中关闭了游戏的背景音乐,然后随便选择了一个关卡。当时我有一种灵光突现的感觉,我很难用语言来形容它,如果你也进行过相同的体验后就会明白我当时的感受了。

我真的在里面!就像我平时做的那样,站在窗前,风扇嗖嗖地转着,四周环绕着 Sade的歌《Sweetest taboo》,我沉浸在美好的回忆中,极光映在天空中显得格外美妙。从那时起,我去Alien Apartment的目的就变成了从起初的做测试到如今的享受音乐,这就是我所说的依赖性。

我觉得只有真实感才能带来依赖性,那么下面再来谈谈真实感。这个时刻我感觉现实世界的我真真正正在Alien Apartment里面。并不像传统的沉浸式体验完毕后回到现实世界时会有昏昏欲睡的感觉,而是现实世界中的你真的处在虚拟世界中。这很难用语言描述,最好是自己亲自去尝试、体验。以下方式可以帮助你更好地体会到这种感觉:

谷歌魔镜的设计非常简单,这种设计能让每个人都很容易上手。通过谷歌魔镜能让更多的人开始接触虚拟现实,进而实现虚拟现实的大众化。

我非常喜欢虚拟现实,但我认为“虚拟现实”这个说法并不是十分恰当。因为虚拟现实不一定必须是真实的,同样也没有“真实现实”与之对应。那么我们应该称其为什么比较好呢?其实我也没有更好的命名,不过我想称其为“交互现实(intertwined reality)”等类似的名称。

因为这不仅能说明虚拟世界中的体验是和现实生活紧密相连的,还能体现出你在虚拟世界中的感受和在现实世界中是一模一样的。此外,我可以告诉你,迄今为止你所有的体验都是真实的。不论这些体验是在虚拟世界还是在真实世界中。只不过一种是机器产生的体验,而另一种是现实生活产生的体验。这也正是虚拟现实最大的缺点:机器产生的体验效果远远没有现实生活产生的体验效果好。

之前一直在讨论虚拟现实和现实世界的问题,下面我们来说说一个虚拟现实实践中存在的现实问题。最近许多PC端游戏的场景做得十分逼真,但我们很难直接将这些逼真的场景融入谷歌魔镜进行应用,主要原因如下。

我并不是说不能渲染非常逼真的场景,只要你的场景足够简单就可以(笔者这里的意思应该是场景中组成3D物体的多边形总量不能很多)。例如,你的场景中可以使用应用恰当纹理的天空穹作为背景,再包含数量不多的3D物体,这样不仅视觉效果良好,时延也较小,可以带来良好的用户体验。反之,如果你使用由大量3D模型组成的城市作为虚拟现实的场景,整体效果可能就远远达不到预期了。

依我拙见,大多数移动平台的用户都可以归为以下三类。

我并没有关于谷歌魔镜用户的准确数据,我接触的大部分用户都是一些游戏开发者、电脑朋克族或者仅仅是出于好奇才接触谷歌魔镜的人。但对于Alien Apartment这款游戏,还有其他两类用户:全景影院应用爱好者以及类似过山车那种非手动操控游戏的爱好者。因此开发VR应用时应该注意满足不同用户的各种需求,如游戏的操控方式、耗电程度等方面。

接着值得一提的是硬件,你可能想知道谷歌魔镜的用户都使用什么样的手机,答案是有很多种。出现在谷歌游戏开发后台的各种设备类型和数量是惊人的(约有1700种不同的设备)。尽管数据不完整,但我还是想和你分享在Alien Apartment中被频繁使用的手机种类。

图1-1所示的数据可能对你的项目计划有所帮助。

upload-ueditor-image-20180129-1517210907

图1-1 不同型号手机的使用情况

实际开发时,不要总想着高配置的专用头盔能够良好运行你的VR应用就满足了。我的建议是,要充分考虑低端组合的设备能否顺利运行你的VR应用。每当我的游戏需要更新时,我总是用最低配置的设备组合(Nexus 4+谷歌魔镜)来测试场景。因为这样的组合很可能由于屏幕范围的缩小(被纸盒挡住了屏幕的一部分)而难以完整显示游戏中的菜单项或HUD项目(一种将玩家需要实时获悉的与游戏直接相关的信息显示在游戏画面上的方式),这非常有助于调试以提高游戏的设备兼容性。

现在面临的问题是不知道有多少用户拥有独立的操控设备(比如游戏手柄或蓝牙键盘),但从谷歌应用商店我了解到以下信息。

你明白我的意思吗?你应该为应对不同的情况做好准备!我曾试图在Google+发布调查来收集更多信息,但只收到80个回复,统计结果如下。

根据项目的具体情况,你可以得出自己的结论。在我的项目中,用户更倾向于用游戏手柄操控的实现,同时这些用户也喜欢能够通过目光触发动作的设计。对于使用磁钮操控的应用,用户也希望射击类的动作能够通过目光来操控。

对于谷歌魔镜平台而言,你需要注意几点。首先是帧速率(FPS),专家建议FPS应该在60到120之间,这样才能带来良好的体验。实际在手机平台上运行时最高也就是60FPS,最低会到45~50FPS——这远远达不到专家建议的水平。当然,这很大程度上依赖于玩家手机的硬件情况。能够维持较低的延迟对于保持用户的舒适性是非常重要的,否则用户在体验了几分钟后就会感觉非常糟糕。对于某些人群来说,即使是保持在60FPS,游戏体验仍然不佳。值得庆幸的是,这类人群是小众群体。

提示:

并不是说智能手机的硬件能力肯定达不到60FPS以上,而是出于续航等方面的考量,大部分厂商都将智能手机等移动设备的最高FPS限制在60FPS。就笔者了解到的情况而言,目前没有一部智能手机的垂直同步设置高于60FPS。

其次,需要注意避免产生晕动症。我有过类似的经验,可以通过特定的场景画面在几秒钟内让所有人体验到晕动症的感觉。因此,在实际应用的开发中,下面的一些情况需要避免。

我曾有过一次这样的体验:我刚刚连上了手机,准备体验支持游戏手柄的新版Alien Apartment应用。由于代码的逻辑错误,将场景中的Y轴和Z轴倒置了。仅仅30ms后,我就有了晕动症的感觉,真的很难受。

偶尔丢掉几帧画面一般不会被用户注意到,但如果这种情况持续几秒后,情况就不容乐观了。

大家都有这样的经历,在平稳行驶的火车上我们很难意识到火车的运动,这种情况在VR体验中更加突出。研究建议在VR场景中的摄像机前面绘制一个虚拟的鼻子可以帮助解决这个问题,我也认为这种策略的确能起到一定的作用。但我认为基本没有这个必要,重要的是要确保离用户较近物体的运动符合经典的物理学并选择恰当的参照物。

最后一点也很重要,要注意用户交互界面的设计。我的意思是,即使你的游戏在使用过程中并不需要设置菜单,但在游戏开始之前总会有一些选项需要供用户选择。而当这些选项呈现于触控屏幕上时,会迫使用户摘下VR设备进行选择。总是辗转于虚拟世界与现实世界一般会引起用户的反感。好消息是,最近发布的谷歌魔镜SDK提供了一个通过目光进行输入的模块用以解决此类问题(这个模块的发布晚于我的应用,因此我还没有进行测试)。

对于点击类游戏(如打蚊子、打地鼠)的操控而言,鼠标并不是最好的选择。而智能手机采用的屏幕触控的交互方式在此类游戏中表现更佳。但鼠标具有精准定位、点击、拉动与拖曳等能力,对于没有触控屏幕的情况而言,用于玩此类游戏也是一个不错的选择。现在我们面对的是类似的情况,对于虚拟现实和谷歌魔镜而言最佳的操控方式还没有出现。然而,基于头部运动的控制可以完成很多操作,如通过点头、注视、倾斜头部等进行游戏操控和菜单选择。

到这里为止,读者应该对虚拟现实技术有了大体的了解。下一章将通过介绍如何创建Alien Apartment虚拟现实应用带领读者真正进入VR的世界。

本文摘自《Google Cardboard App 开发指南》

upload-ueditor-image-20180129-1517210908


本书循序渐进地引导开发人员学习用谷歌魔镜开发工具包(Cardboard Android SDK)以及Unity开发包进行VR应用开发的技术,讲解了创建令人沉浸其中的虚拟景观应用、开发使用智能手机拍摄3D全景照片的应用,以及采集和控制语音到优化画面的技术。 

本书内容分为5章,包括初始VR、VR应用——Alien Apartment、VR应用——Glitcher VR、Lanterns和Village案例以及谷歌魔镜——面向大众的VR。 


延伸推荐

cbb0163f752cad51dacb3f9f10a7e4dd3439041f

远在YouTube支持360°全景视频之前,我就使用过类似的应用。开始我也想过自己制作VR眼镜,最后还是决定偷懒,买一个算了。之后我购入了一个谷歌魔镜,来进一步提高游戏体验。那天,包裹被送了过来,从打开包装到组装完毕,共花了5分钟。

接着,我下载了谷歌魔镜的官方应用,插入手机。但这个应用一直在循环播放视频,后来发现是因为手机应用需要检测到谷歌魔镜里NFC的信号才开始正常工作。我把NFC标签贴好,打开了手机的NFC功能并重新插入手机。此时,一切都恢复正常了。

提示:

谷歌魔镜里的NFC标签通过与手机触碰发送信号可实现快速下载App、快速打开谷歌应用等便捷功能。

你也许从很多人那里听说过,第一次观看谷歌魔镜所呈现的画面时,你会惊呼“哇”!对我而言,我认为这主要是因为谷歌魔镜所带来的令人惊叹的效果。我开始非常怀疑,仅有两个廉价镜片的谷歌魔镜再加上手机中的几个传感器能否真的将虚拟现实的世界呈现在我的眼前。

但谷歌魔镜确实做到了,你看到的风景会跟真实的景象一样是 360°全景的,会随着你头部的转动而变化。难以想象这就是真正的VR,所以大家都会惊叹“哇”。

接着15分钟过去了。在这15分钟里,我在YouTube上观看了3D电影,体验了几次虚拟世界里的雨天效果,在谷歌地球中欣赏了许多地方的风景。然后我对自己说:“这很棒,但是我还没看够,我要去探索更多东西,我想在其中实现互动,我想要如同在真实世界里一样行走。”

于是我开始这样想:谷歌的官方应用应该具有代表性,毕竟谷歌魔镜是如此酷炫,谷歌应用商店里应该有许多更好的应用。但事实并非如此,下载完应用商店里的所有 VR 应用后,我才发现应用商店中支持谷歌魔镜的应用基本都处在测试阶段。这些应用当中没有一个能够让我实现互动,或者是不使用蓝牙手柄就可以操作的。

短暂的失望过后,我就到架子上找出我的蓝牙手柄来实现与虚拟现实世界的交互。然而在感到眩晕后,我的想法就落空了。在虚拟现实世界里通过游戏手柄来控制移动会让我感到晕眩。真正的VR怎么可能让人如此失望呢?

接着我开始思考:虽然人类的头部并没有像手和腿那样灵活,但我们平时也经常用头部动作来进行简单的信息传递,如点头代表“是”、摇头代表“否”。为什么不能用头部动作来对应用进行操控呢?我开始进行这方面的尝试,同时还试验了许多其他方法,结果证明通过头部动作进行操控的方式更好一些。

这种操控方式甚至影响了谷歌应用商店里人们对应用的评价。除了一些蓝牙手柄的铁杆粉丝还在坚持VR应用一定要支持蓝牙手柄外,其他人群的反响非常好。于是最终我找到了一种能够同时支持这两种控制方式的方法,并且将来还会支持更多控制方式。

我为了测试我的头部控制方式而开辟的专区变得广受好评。我开始收到不少用户的来信,信中说应用里的音乐很棒并且令人感到舒适,他们通过享受专区里的应用缓解了一天的辛劳(后续的章节里我会分析为什么用户会有这样的体验)。我开辟的专区逐渐打破了仅通过蓝牙控制器进行VR应用操作的固有模式。

最重要的是,谷歌商店里的VR应用非常少。难以想象,在一个拥有数十亿用户的应用商店中,VR应用却如此之少。因此在VR类别的应用中,这是获得巨大下载量的绝佳方式。最终事实也证明我的确是对的,Alien Apartment(这是笔者开发的一款用头部动作进行操控的VR应用)在几周内达到了数千次的下载量。尽管不及Flappy bird,但还是比较可观的。同时,谷歌将继续推广这个平台。

我参与VR的开发纯属偶然,但这并不影响我参与的热情,因为VR像音乐一样能带给我乐趣。研究VR并不仅仅是为了开发游戏,也是在设计一个新世界。如同你可以变换音乐的旋律,聆听它、享受它一样,你可以设计自己的世界,并沉浸其中。这和Minecraft(我的世界)的高速成长十分相似,不禁让我想到了VR的市场前景以及什么样的机会将首先出现。

假设你已经购买了这本书,也已经有一些开发谷歌魔镜和Oculus Rift(一种专用的VR头盔,价格较贵)上VR应用的经验,那么我们来比较一下基于上述两种平台开发VR应用的区别,具体情况如表1-1所列。

表1-1  两个平台开发VR应用的区别

项目

Oculus VR

谷歌魔镜

得出的结论

花费

这个头戴式显示器需要与一个高配置的电脑协同工作(电脑负责运行程序、处理图像,其价格在1000美元,Oculus VR则负责显示功能)

需要买一部性能和功能类似Nexus5的手机(300美元左右)和谷歌魔镜(5~100美元)

2014年最后一个季度大约售出了4亿部手机和8000万台电脑。这个数据应该可以帮助你从市场规模的角度得出结论

质量

具体最终性能怎样并不知晓,但很明显Oculus VR是高端产品

中低端产品,低分辨率,低功耗,而且显示器并非特制的虚拟现实显示器

如果你期望开发出像大卫雕像那样的顶级艺术画面,那你买错书了

体验

潜力无限

潜力无限

虽然通过Oculus不仅可以体验FPS类型的游戏或应用,也可以更好地渲染更大数量的多边形以取得更好的视觉效果,但同时,当下人们也非常喜爱复古风格的像素游戏,这些游戏的体验和音乐的吸引力同样很大。对于VR领域而言,更是如此。相信你应该已经知道这一点,这就是你购买本书的原因

发展水平

如果玩家已经拥有高配置的能与Oculus VR 协同提供流畅顺滑虚拟现实体验的主机,则不需要再购买新的主机,因而总花销不太高(作者认为这仅仅是针对骨灰级玩家而言的)

个人认为谷歌正在大力发展与谷歌魔镜相关的业务,准备占领下一代的大众市场

我个人认为由于Oculus定价不菲,所以目前还仅仅是骨灰级玩家案头的昂贵外设,仍然未被大众玩家所接受。而只要拥有安卓手机便可以轻松购得谷歌魔镜,通过其方便地进入虚拟现实的世界

总而言之,如果谷歌拿出大力发展谷歌魔镜的战略计划,就会有更广阔的市场和更大的发展潜力。此外,Oculus 是一个正在高速发展的、性能更强劲的平台,其能够全速支持更丰富的VR理念。

近期Oculus推出的Gear VR(与三星合作研发)使得VR的市场路线更加模糊,前景也不很明朗。但可以确定,未来的VR设备不会仍只是骨灰级玩家案头的专有外设或者是仅有两个廉价镜片的纸板盒。

可以预见,性能优良、价格合理的VR设备必将出现。那时,肯定可以以一款中端智能手机的价格购得一套完整的VR设备。这些VR设备可以方便地与你拥有的智能手机、智能手表、平板电脑或笔记本电脑配合使用。时间会证明我在谷歌虚拟现实上下的赌注是正确的。

有过软件开发经验的开发人员都了解,开发工具是生产效率的基石。合理的工具链能够支撑合理的工作流,因此下面将介绍几种在开发谷歌魔镜VR应用时可以配套使用的几个工具。

Unity可以说是开发Android 3D应用最简便、最快捷的工具。这与其非常成熟以及完全支持用户自定义密不可分。此外,谷歌还提供了支持Unity平台的谷歌魔镜SDK,这为开发提供了极大的方便。到目前为止,Unity已经发布了很多版本,本书为什么选用5.1版呢?原因如下。

实际谷歌魔镜VR应用的开发中,尽管理论上可以有多种选择,你甚至可以选择创建自己的立体渲染框架,但我认为只有使用谷歌魔镜开发工具包进行开发是正确的,原因如下。

我不太擅长3D模型的创作,因此花了很长时间去选择合适的模型制作工具。在尝试了多种不同的工具后,最终我选择了Blender,主要原因如下。

如果没有漂亮的纹理图,就不可能渲染出具有吸引力的场景,所以一款优秀的图像处理软件对应用中的所有3D场景都是非常关键的。我之所以喜欢用GIMP工具处理图像,是因为它简单且功能强大。GMIP 不断提供各种处理工具(包括色彩曲线、多参数调整、规格化、着色、色相/饱和度、色彩深度、alpha 通道处理、选择、图层、遮罩等)。这些处理工具正在迅速地发展,而且使用起来非常简便明了。当然,GIMP也是开源的,互联网上有大量的插件(诸如生成法向量贴图的工具等)。下载地址https://www.gimp.org。

这里你说了算!无论你是不是一个拥有自己家庭工作室的专职音乐制作人,都可以从网络上海量的开源音效素材中找到你最需要的音效。除此之外,还有一点我不吐不快:Single Cell Software(一个软件开发商)开发的Caustic是一款非常值得使用的音效制作软件,它虽然很小但功能强大,可以说是过去10年中MOD音轨制作软件非常值得一提的继承者。

说明:

MOD是一种较为古老的用来存储计算机音乐的文件格式,也是第一个模块化的音乐文件格式,其文件以“.mod”扩展名结尾,一度非常流行。

Caustic同时兼容Android和iOS平台,可以随时将灵光一现飘过你耳畔的旋律制作出来。当然,通过Caustic,你也可以在台式机上(包括Windows和MacOS)导出.wav或.mid格式的音频。即使你从来没有制作过音乐,你也应该尝试一下!下载地址:singlecellsoftware.com/caustic。

虽然我还没有使用过这款软件,但是在这里我必须要提一下。Makehuman 是一款基于大量人类学形态特征数据开发的,且有大量可自定义选项的开源3D人物角色建模软件,还符合Unity rig模型标准。下载地址:www.makehuman.org。

我的建议很简单:开发中的模型、音效等最好使用对应制作软件原本的格式存储,使用时导出为Unity友好的格式。到目前为止,我认为最好的经验如下。

如果你也是一位独立开发者,硬件拥有量是一个非常大的制约因素,因为很难有充裕的资金购买各种各样的手机和头盔来检查应用程序的兼容性。因此,实际的选择只能是“做能力范围内的事情”。以我为例,我最终只做了两种设备的测试,具体情况如下。

由于最初的谷歌魔镜本身没有提供头部固定装置,在测试时我使用了自己制作的绑带将其固定在我的头部。这对于检查我的场景对性能的要求和基本的平台兼容性(包括视野的范围、焦距、舒适度等)很有帮助。

这种组合的首要目的就是使眼睛和身体更加舒适。因为在体验诸如Alien Apartment这样的场景时,一不留神就会花费很长的时间。而长时间佩戴使用松紧绑带的一些VR设备后,你的脸部会被压出很深的皱痕,那是令人十分郁闷的一件事!在这种情况下,Freely VR这类的设备是一个很好的选择。另外,对我的眼睛而言,Nexus 5的屏幕像素密度能达到的效果已经基本和最新的Oculus原型设备相同,这也是能良好体验大范围虚拟现实场景所需达到的最低要求了。

其实这个问题没有标准答案,这取决于你自身的体会。我不可能一一列举,但可以给出一些帮助和提示。其实,最具革命性的是VR开创了新的纪元。从最早的游戏(Pong)到目前最新版的游戏(黑暗旅行)都可以被重新策划、制作,带来完全不同的体验!

对于传统屏幕而言,创作一款与市面上游戏类似的作品非常容易。但是如果让你开发一款VR游戏,估计你会无从下手。不要灰心!虽然我们刚刚登上这片新大陆,但是有足够的时间来慢慢开拓这片蕴含极大潜力的处女地。

说明:

Pong是世界上公认的第一款成功的商用计算机游戏,由Atari(阿塔里)在 20世纪70年代推出,可以说是计算机游戏的鼻祖了。

试想一下这样的情景:你拥有一家能做出世界上最美味食物的餐厅,但是餐厅装修得非常糟糕而且坐落在偏僻的地方,生意应该十分惨淡。之后,你又开了一家新的餐厅,由于主厨辞职了,餐厅只能提供一些基本的食物。但是如果这家餐厅坐落在科罗拉多大峡谷的顶部,有着漂亮的玻璃屋顶,餐桌都是用周围的天然石材制作,用餐环境特色突出、新奇好玩,你将会赚得盆满钵满。

说明: 

科罗拉多大峡谷是一个举世闻名的自然奇观,位于美国亚利桑那州西北部的凯巴布高原上,大峡谷全长446千米。由于科罗拉多河穿流其中,风景优美,是联合国教科文组织选为受保护的天然遗产之一,也是美国的旅游胜地之一。

明白我的意思了么?这听起来确实有点荒谬,但也不是不可能。如果将餐厅比作一款游戏,食物可以看作画面的质量,餐厅的装修可以看作画面的吸引力,而地理位置可以看作游戏的可玩性。通常,高端的画面并不意味着一定受欢迎。这一点从最近一段时间游戏的流行情况就可以看出来,不管是像素化的游戏、黑白界面的游戏以及彩色画面的游戏都有流行的。

手机的GPU无论如何也不可能达到同时代PC显卡的处理能力,因此很难期望手机游戏通过渲染数以百万计的多边形组成的复杂场景来吸引玩家。但就像前面餐厅的例子那样,可以通过提高游戏的可玩性、创造良好的游戏氛围来吸引玩家。

我并不想假模假样地解释一下如何营造身临其境的氛围,但是我曾做过一些有益的尝试。其中很多做法是非常有效而且简单的,诸如利用云、极光、视角、背景音乐和音效增强游戏氛围等。身临其境的氛围对于一个游戏的成功来说十分重要,后面我还会回到这个话题。

我们有必要确定一下讨论的是同一件事情,虚拟世界需要做到以下几点才能带来沉浸式的体验。

不过,想要让每个人都有完全沉浸式的体验是非常困难的。以我为例,当不需要手柄进行控制时,我很容易沉浸到游戏场景中,但是当我要思考应该按下哪个按钮时,我就会立刻回到现实中。对于需要使用磁钮的情况也是如此,我总是不断地在想:“磁钮在哪个位置啊?”再加上拨动磁钮时会带来那萦绕在耳边的糟糕声音,这就更难使我忘记现实世界而沉浸到虚拟世界中了。

然而,大部分人似乎并没有对这样的情况不满,我认为应该是有些人更容易融入虚拟世界中。值得高兴的是,如果你成功解决了某些人难以融入虚拟世界的问题,剩下的事情就会比较容易解决了。

我觉得营造一个身临其境的氛围理解起来比较容易。沉浸式的体验已经有点抽象了,而真实感和依赖性是更复杂的沉浸式体验的延伸。让我们先来谈谈依赖性,如果你玩过Alien Apartment这款游戏,就会发现没有太大的可重玩性。虽然刚上手时有点小小的困难,可一旦你通关了这个游戏,短期内就不会有再玩一次的欲望了。不过这并没有对这个游戏产生任何负面影响,许多人都给我来信说他们非常喜欢这款游戏,每次完成游戏都能让他们的身心得以放松。

我很难轻易理解为什么会出现这种情况,于是我做了一个测试,比较一下现实世界的我躺在床上和虚拟世界的我躺在床上有什么不同,但并没有什么特别的感觉。有一次,我闲来无事打开了游戏,在选项中关闭了游戏的背景音乐,然后随便选择了一个关卡。当时我有一种灵光突现的感觉,我很难用语言来形容它,如果你也进行过相同的体验后就会明白我当时的感受了。

我真的在里面!就像我平时做的那样,站在窗前,风扇嗖嗖地转着,四周环绕着 Sade的歌《Sweetest taboo》,我沉浸在美好的回忆中,极光映在天空中显得格外美妙。从那时起,我去Alien Apartment的目的就变成了从起初的做测试到如今的享受音乐,这就是我所说的依赖性。

我觉得只有真实感才能带来依赖性,那么下面再来谈谈真实感。这个时刻我感觉现实世界的我真真正正在Alien Apartment里面。并不像传统的沉浸式体验完毕后回到现实世界时会有昏昏欲睡的感觉,而是现实世界中的你真的处在虚拟世界中。这很难用语言描述,最好是自己亲自去尝试、体验。以下方式可以帮助你更好地体会到这种感觉:

谷歌魔镜的设计非常简单,这种设计能让每个人都很容易上手。通过谷歌魔镜能让更多的人开始接触虚拟现实,进而实现虚拟现实的大众化。

我非常喜欢虚拟现实,但我认为“虚拟现实”这个说法并不是十分恰当。因为虚拟现实不一定必须是真实的,同样也没有“真实现实”与之对应。那么我们应该称其为什么比较好呢?其实我也没有更好的命名,不过我想称其为“交互现实(intertwined reality)”等类似的名称。

因为这不仅能说明虚拟世界中的体验是和现实生活紧密相连的,还能体现出你在虚拟世界中的感受和在现实世界中是一模一样的。此外,我可以告诉你,迄今为止你所有的体验都是真实的。不论这些体验是在虚拟世界还是在真实世界中。只不过一种是机器产生的体验,而另一种是现实生活产生的体验。这也正是虚拟现实最大的缺点:机器产生的体验效果远远没有现实生活产生的体验效果好。

之前一直在讨论虚拟现实和现实世界的问题,下面我们来说说一个虚拟现实实践中存在的现实问题。最近许多PC端游戏的场景做得十分逼真,但我们很难直接将这些逼真的场景融入谷歌魔镜进行应用,主要原因如下。

我并不是说不能渲染非常逼真的场景,只要你的场景足够简单就可以(笔者这里的意思应该是场景中组成3D物体的多边形总量不能很多)。例如,你的场景中可以使用应用恰当纹理的天空穹作为背景,再包含数量不多的3D物体,这样不仅视觉效果良好,时延也较小,可以带来良好的用户体验。反之,如果你使用由大量3D模型组成的城市作为虚拟现实的场景,整体效果可能就远远达不到预期了。

依我拙见,大多数移动平台的用户都可以归为以下三类。

我并没有关于谷歌魔镜用户的准确数据,我接触的大部分用户都是一些游戏开发者、电脑朋克族或者仅仅是出于好奇才接触谷歌魔镜的人。但对于Alien Apartment这款游戏,还有其他两类用户:全景影院应用爱好者以及类似过山车那种非手动操控游戏的爱好者。因此开发VR应用时应该注意满足不同用户的各种需求,如游戏的操控方式、耗电程度等方面。

接着值得一提的是硬件,你可能想知道谷歌魔镜的用户都使用什么样的手机,答案是有很多种。出现在谷歌游戏开发后台的各种设备类型和数量是惊人的(约有1700种不同的设备)。尽管数据不完整,但我还是想和你分享在Alien Apartment中被频繁使用的手机种类。

图1-1所示的数据可能对你的项目计划有所帮助。

upload-ueditor-image-20180129-1517210907

图1-1 不同型号手机的使用情况

实际开发时,不要总想着高配置的专用头盔能够良好运行你的VR应用就满足了。我的建议是,要充分考虑低端组合的设备能否顺利运行你的VR应用。每当我的游戏需要更新时,我总是用最低配置的设备组合(Nexus 4+谷歌魔镜)来测试场景。因为这样的组合很可能由于屏幕范围的缩小(被纸盒挡住了屏幕的一部分)而难以完整显示游戏中的菜单项或HUD项目(一种将玩家需要实时获悉的与游戏直接相关的信息显示在游戏画面上的方式),这非常有助于调试以提高游戏的设备兼容性。

现在面临的问题是不知道有多少用户拥有独立的操控设备(比如游戏手柄或蓝牙键盘),但从谷歌应用商店我了解到以下信息。

你明白我的意思吗?你应该为应对不同的情况做好准备!我曾试图在Google+发布调查来收集更多信息,但只收到80个回复,统计结果如下。

根据项目的具体情况,你可以得出自己的结论。在我的项目中,用户更倾向于用游戏手柄操控的实现,同时这些用户也喜欢能够通过目光触发动作的设计。对于使用磁钮操控的应用,用户也希望射击类的动作能够通过目光来操控。

对于谷歌魔镜平台而言,你需要注意几点。首先是帧速率(FPS),专家建议FPS应该在60到120之间,这样才能带来良好的体验。实际在手机平台上运行时最高也就是60FPS,最低会到45~50FPS——这远远达不到专家建议的水平。当然,这很大程度上依赖于玩家手机的硬件情况。能够维持较低的延迟对于保持用户的舒适性是非常重要的,否则用户在体验了几分钟后就会感觉非常糟糕。对于某些人群来说,即使是保持在60FPS,游戏体验仍然不佳。值得庆幸的是,这类人群是小众群体。

提示:

并不是说智能手机的硬件能力肯定达不到60FPS以上,而是出于续航等方面的考量,大部分厂商都将智能手机等移动设备的最高FPS限制在60FPS。就笔者了解到的情况而言,目前没有一部智能手机的垂直同步设置高于60FPS。

其次,需要注意避免产生晕动症。我有过类似的经验,可以通过特定的场景画面在几秒钟内让所有人体验到晕动症的感觉。因此,在实际应用的开发中,下面的一些情况需要避免。

我曾有过一次这样的体验:我刚刚连上了手机,准备体验支持游戏手柄的新版Alien Apartment应用。由于代码的逻辑错误,将场景中的Y轴和Z轴倒置了。仅仅30ms后,我就有了晕动症的感觉,真的很难受。

偶尔丢掉几帧画面一般不会被用户注意到,但如果这种情况持续几秒后,情况就不容乐观了。

大家都有这样的经历,在平稳行驶的火车上我们很难意识到火车的运动,这种情况在VR体验中更加突出。研究建议在VR场景中的摄像机前面绘制一个虚拟的鼻子可以帮助解决这个问题,我也认为这种策略的确能起到一定的作用。但我认为基本没有这个必要,重要的是要确保离用户较近物体的运动符合经典的物理学并选择恰当的参照物。

最后一点也很重要,要注意用户交互界面的设计。我的意思是,即使你的游戏在使用过程中并不需要设置菜单,但在游戏开始之前总会有一些选项需要供用户选择。而当这些选项呈现于触控屏幕上时,会迫使用户摘下VR设备进行选择。总是辗转于虚拟世界与现实世界一般会引起用户的反感。好消息是,最近发布的谷歌魔镜SDK提供了一个通过目光进行输入的模块用以解决此类问题(这个模块的发布晚于我的应用,因此我还没有进行测试)。

对于点击类游戏(如打蚊子、打地鼠)的操控而言,鼠标并不是最好的选择。而智能手机采用的屏幕触控的交互方式在此类游戏中表现更佳。但鼠标具有精准定位、点击、拉动与拖曳等能力,对于没有触控屏幕的情况而言,用于玩此类游戏也是一个不错的选择。现在我们面对的是类似的情况,对于虚拟现实和谷歌魔镜而言最佳的操控方式还没有出现。然而,基于头部运动的控制可以完成很多操作,如通过点头、注视、倾斜头部等进行游戏操控和菜单选择。

到这里为止,读者应该对虚拟现实技术有了大体的了解。下一章将通过介绍如何创建Alien Apartment虚拟现实应用带领读者真正进入VR的世界。

本文摘自《Google Cardboard App 开发指南》

upload-ueditor-image-20180129-1517210908


本书循序渐进地引导开发人员学习用谷歌魔镜开发工具包(Cardboard Android SDK)以及Unity开发包进行VR应用开发的技术,讲解了创建令人沉浸其中的虚拟景观应用、开发使用智能手机拍摄3D全景照片的应用,以及采集和控制语音到优化画面的技术。 

本书内容分为5章,包括初始VR、VR应用——Alien Apartment、VR应用——Glitcher VR、Lanterns和Village案例以及谷歌魔镜——面向大众的VR。 


延伸推荐


一本基于Python语言的Selenium自动化测试书


点击关键词新书:


Python|机器学习|Kotlin|Java|移动开发|机器人|有奖活动|Web前端|书单

upload-ueditor-image-20180129-1517210908

异步图书”后台回复“关注”,即可免费获得2000门在线视频课程;推荐朋友关注根据提示获取赠书链接,免费得异步图书一本。赶紧来参加哦!

点击阅读原文,查看本书更多信息

扫一扫上方二维码,回复“关注”参与活动!


upload-ueditor-image-20180129-1517210908




upload-ueditor-image-20180129-1517210908

upload-ueditor-image-20180129-1517210908


upload-ueditor-image-20180129-1517210909



upload-ueditor-image-20180129-1517210909



upload-ueditor-image-20180129-1517210909


upload-ueditor-image-20180129-1517210909


upload-ueditor-image-20180129-1517210909

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

阅读
分享