如何选择合适的AR-VR开发工具?这里有一份详尽的指南
文章相关引用及参考:oreilly
选择一个合适的工具是关键
(映维网 2017年11月14日)虚拟现实,增强现实和混合现实正在快速增长。这种体验的动力和经济影响将会继续加快,因此现在是进军内容开发的完美时机。然而,这将意味着你需要选择一个适合的创作工具。
面对这个新兴的领域,你可能会困惑于应该从何入手,因为这三种类型的体验似乎有时会相互重叠,而我们难以理解三者的相似之处和差异之处。每个体验都需要一个稍微不同的开发堆栈和工具,以及需要针对用户使用的不同显示器进行设计。例如,为系留头显开发VR内容意味着你需要为用户创建一个完整的虚拟世界。
例如,如果你希望为Oculus开发VR内容,你可以从以下工具中进行选择:
- Unity:用于开发跨平台2D和3D体验的引擎。开发者需要支付一定的费用才允许发行基于Unity的游戏或体验,但开发免费。
- Unreal:一个完全基于C ++开发的引擎,可用于开发跨平台的体验。开发免费,但开发者在发行游戏或体验时需要支付一定的费用。
- CryEngine:免费引擎,为开发者提供源代码访问。开发免费,但如果要获得额外的支持和培训,开发者需要支付一定的费用。
- Lumberyard:来自亚马逊的免费引擎,据说是基于CryEngine。亚马逊免费发布源代码,开发免费。如果要使用Amazon Web Services,开发者需要支付一定的费用。
但如果你需要同时瞄准PlayStation VR,你的主要工具目前仅限于前三个:Unity,Unreal和CryEngine。
大多数iOS,tvOS,watchOS和MacOS开发者习惯于把XCode作为开发环境。对于AR,VR和MR的新晋开发者而言,确定使用哪种工具是关键。下面映维网将和大家一起看看如何选择合适的开发工具。在着手开发之前,开发者需要确定自己瞄准的体验和受众。但在映维网开始阐述不同的工具和环境之前,先让我们一起看看不同类型的体验,以及相关的术语。
1. 虚拟现实:一个由计算机生成的世界
大多数人都熟悉“虚拟现实”一词。所谓的VR是指计算机生成的,有时是模拟的,有时是近似真实的3D世界视图。虚拟世界可以是逼真的,想象的,或者是两者的结合。要进入虚拟现实,用户必须使用完全遮挡现实世界视场的屏幕,使眼睛沉浸在虚拟世界。这种屏幕可以是系留头显(如Oculus或Vive)或移动头显(如谷歌Cardboard或三星Gear VR)的形式,或者VR一体机。许多其他企业也在研发的无需缆线,手机或笔记本电脑的一体机设备。
360度视频是一种允许用户控制视角的沉浸式体验。有人将360度视频与虚拟现实混为一谈,因为用户都会沉浸在视频的360度视场中。当本文所指的“虚拟现实”不是指360度视频,而是由计算机生成的3D视图。
2. 增强现实:物理世界的补充
增强现实是指将计算机生成的内容叠加在真实世界之后所获得的视图,是一种通过附加信息或元数据(如声音,图形,GPS数据和文本显示)来增强世界的技术。一般来说,叠加的内容不能与现实世界交互,反之亦然。用户必须使用某种类型的屏幕才能查看这种世界。
想象一下,当你把手机摄像头对准建筑物,支持增强现实的应用就会显示建筑物中的名称,地址和经营业务。虽然用户不能与文字叠加层进行交互,但数据可以增强现实世界。目前最流行的AR屏幕是谷歌眼镜和安装了特定增强现实应用的智能手机。有许多科技公司正在开发增强现实眼镜,预计产品将在未来几年内开始进入市场。
跟增强现实类似,混合现实包含现实世界视图,但混合现实所叠加的虚拟世界和虚拟对象可以与现实世界相互作用。当前主要的混合现实头显是微软HoloLens。HoloLens可以在3D空间中映射真实世界,因此虚拟对象可以实际覆盖在现实世界的表面和对象之上。例如,混合现实允许用户将虚拟立方体放置在房间角落的桌子或椅子上。谷歌于几年前发布了Tango(以前称为Project Tango),并于最近发布了ARCore,而这似乎是他们对苹果ARKit的回应。混合现实支持运动追踪,光线估计和环境理解。ARCore现在可以支持运行着安卓N及更高版本的所有兼容手机,而SDK预览版支持谷歌Pixel,Pixel XL和三星Galaxy S8。Tango则支持谷歌Pixel,Pixel XL,以及华硕和联想的产品。
业界尚未对混合现实和增强现实之间的区别制定标准定义,两者之间的界限似乎在不断变化和模糊。苹果最新的ARKit框架允许虚拟对象与现实世界进行交互,这进一步混淆了增强现实和混合现实之间的定义。我们相信行业最终会为“增强现实”的用法制定标准,而其定义将包括可以与真实世界交互的对象,以及不能与现实世界相互作用的对象。就我看来,“增强现实”最终会包含“混合现实”的情景,行业将不再使用“混合现实”。因此在谈论AR和MR时,我们将主要集中在AR的工具选择。
3. 合适的工具
如前所述,VR和AR体验有时候需要不同的工具和开发环境。例如,如果希望使用Unity开发虚拟现实游戏,你需要指定目标头显(如HTC Vive,Oculus Rift,PSVR等等)。如果你希望开发增强现实应用程序,你可以选择在跨平台工具集上开发(如ReactVR),否则你将需要进一步定位iOS或安卓设备。如果你希望为HoloLens开发体验,你可以选择从Unity开始入手,然后再通过Visual Studio进行测试和部署应用程序。
不同体验的用户普及度尚未达到可以促使硬件和软件行业为工具,界面或编程语言制定统一标准的关键临界点。在那之前,创新公司在开发标准化工具集上拥有无限的机遇。目前来说,开发者仍然需要确定他们希望创建的现实(VR或AR),瞄准头显和平台类型,然后再了解所需的要求。
由于VR和AR的广阔市场前景,希望为一个或多个平台开发内容的你很有可能正在阅读这篇文章。统计数据表明,现在是采取行动的最好时机。市场分析机构预计,VR和AR到2020年的的预期经济影响将从58亿美元(低采用率)上升到205亿美元(高采用率)。2018年的VR软件市场规模估计为48亿美元。在明确的广阔的市场前景后,我们需要明确的问题是:如何为特定现实开发选择合适的工具。
在我认识的开发者中,没有太多愿意学习一个只能支持一款设备的新工具或应用。我们不想将时间和金钱投入到无法转换或转移到其他工具和平台的东西上。如果你像我一样,所有这三种体验都激励着你,你可能希望在未来一天中都能掌握它们全部。这意味着你应该选择可以尽可能支持更多平台,更多设备和更多体验的工具,或者你应该愿意学习多种不同的平台和工具集。
4. 选择VR开发工具
选择工具的第一步是观察市场并确定目标受众。我们应该考虑创建硬件和平台的公司实力,并评估其中的发展潜力。下面的图片显示了市场分析机构预测的2016年畅销VR头显。然后,你需要考虑应该开发什么类型的应用程序,以及所面向的平台和用户。你是否正在开发教育,游戏,商业,培训或营销领域的应用程序呢?大多数硬核玩家都在使用其中一款系留头显,因为这种设备能够提供更高的分辨率,更好的刷新率,以及更优秀的传感器和控制器。
表1:VR头显和开发工具
VR头显 | HTC Vive | Oculus Rift | PSVR | 三星Gear VR | 谷歌Daydream |
---|---|---|---|---|---|
系留头显 | 是 | 是 | 是 | 否 | 否 |
2016年销量 | 42万 | 35.5万 | 74.5万 | 230万 | 26.1万 |
开发工具 | |||||
Unreal | 支持 | 支持 | 支持 | 支持 | 支持 |
Unity3D | 支持 | 支持 | 支持 | 支持 | 支持 |
CryEngine | 支持 | 支持 | 支持 | 不支持 | 不支持 |
Lumberyard | 支持 | 支持 | 不支持 | 不支持 | 不支持 |
显然,Unreal和Unity主要5款主要的VR头显。如果你希望为三大系留VR头显开发内容,你可以选择
- Unreal:支持Oculus, Steam, HTC Vive, Playstation VR, Mac, iOS/ARKit, 三星Gear VR, Google VR, Leap Motion和OSVR
- Unity3D:支持Unreal支持的所有平台,外加Nintendo Wii, Hololens, Xbox One, Facebook Gameroom等等。
- CryEngine:支持Oculus,Xbox One,Windows PC,Playstation 4和Linux PC。
5. 选择AR开发工具
增强现实(和混合现实)要求用户通过屏幕查看叠加了数字内容的现实世界。这意味着用户必须使用搭载摄像头的手机或平板电脑,或者说他们必须佩戴某种形式的屏幕。这种屏幕可以分为两种主要的形式:一种可供用户佩戴的头显;搭载摄像头的手机或平板电脑。由于摄像头,处理能力和AR显示器的问题,今天市场上的头显仍然相当笨重,体积巨大。但可以想象,设备的体积将会不断缩小,而我们最终有可能会穿戴一种眼镜形态的AR显示屏。就目前而言,AR头显市场中尚未出现主要的领先者,所以文本暂时不会纳入头显的分析。
表2:AR设备和开发工具
AR设备 | iOS手机和平板电脑 | 安卓手机和平板电脑 |
---|---|---|
用户比例 | 33% | 65% |
Unreal | 支持 | 支持 |
CryEngine | 支持 | 支持 |
Lumberyard | 不支持 | 不支持 |
ARKit | 不支持 | 支持 |
ARCore | 不支持 | 支持 |
Unreal:需要ARToolkit和增强现实插件
CryEngine:需要Vuforia(iOS和安卓),或ARKit(iOS),或ARCore(安卓)
如你所见,如果你希望开发的体验能够支持尽可能多的设备,你的主要选项仍然是Unreal和Unity3D。然而,这并不意味着开发支持更多设备的体验将变得容易或无缝,而且在某些情况下,你必须专门针对目标设备开发应用程序,但映维网认为至少你能够掌握一款可支持众多设备的工具。
如果你对安卓设备的AR应用开发最为感兴趣,你可以选择Unreal引擎或Unity3D,以及最新的ARCore。另一方面,如果你对iPhone和iPad的AR应用开发最感兴趣,ARKit毫无疑问将是你的第一选择。AR是一项令人兴奋的技术,特别是因为苹果最新iPhone X智能手机。开发者很快就可以创建支持面部识别的应用。想象一下,当你走进一个会议或酒店时,一个礼宾员会对你说:“欢迎回来。我们第一次见面是在两周前,对吧?你的房间已经准备好了,在7楼。你需要我为你带一本杂志吗?”这一切都是得益于面部识别和AR功能,以及因为AR眼镜的外形尺寸将不断缩小至可管理的大小。未来将至,但我们现在就可以开始进行开发。
如果你已经知道Objective-C和/或Swift,那你现在可以使用Xcode开发AR应用程序。如果你不知道Objective-C或Swift,Unity可以帮助你用更少的代码行来完成大量的工作。所以选择一个工具,然后开始着手开发,相信不久之后你可以发行属于自己的ARKit应用程序。