记得2014年曾经写过一个Unity3D的游戏开发初探系列,收获了很多好评和鼓励,不过自那之后再也没有用过Unity,因为没有相关的需求让我能用到。目前公司有一个App开发的需求,想要融合一下AR到App中以便为客户提供更好的体验,因此我开始了一些调研和学习,会依次总结一些文章出来与各位分享。此外,也希望能给更多的.NET&.NET Core开发者看到用C#语言开发AR应用的场景,有更多的人使用C#开发应用程序。
一、理清VR、AR与MR的概念 1.1 VR所谓VR,就是Virtual Reality,虚拟现实,就是把虚拟世界的东西呈现到你的面前,让你以为是真实的。其实,游戏世界就是典型的虚拟现实。
电影头号玩家 — 里面全是VR世界
1.2 AR所谓AR,即Augmented Reality,增强现实,是指将虚拟世界的东西叠加到现实世界里。2018年任天堂公司推出了一款Pokemon Go的游戏,运用了AR技术,玩家可以通过手机屏幕在现实世界中发现精灵,然后进行捕捉或战斗。
Pokemon Go — 一款AR手机游戏
1.3 MR所谓MR,即Mixed Reality,混合现实,与AR相反,MR是指将真实世界的东西叠加到虚拟世界里。
举个栗子, 对于修汽车,有些老师身怀绝技且经验丰富,但人数有限,而汽车故障可以发生在任何地方,无法保证每个修车店都有优秀的技师。如果有了MR工具,现场的技师就能把车况排成三维的虚拟图像传给你老师傅,老师傅则可以根据眼前看到的非常真实的现场情况给出修理建议,而且还能够在三维的虚拟实体上把每一步都指点出来,现场的技师只要照着做就可以保证修理质量了。
MR混合现实—将真实世界叠加到虚拟世界
1.4 More AR?目前VR已经很成熟,AR正在广泛地应用之中,而MR还在研究阶段,这里我主要关注AR。
(1)AR的行业应用及发展趋势
AR目前主要应用在幼教、游戏及大屏互动之中。AR游戏目前处于不断试水阶段,大屏互动已经广泛地应用在了博物馆、商场及广告屏等公共场所。
(2)AR的主流应用玩法
Scan It — 根据识别图出发AR操作
Place It — 由用户根据需要将虚拟物体拖动到真实环境的某个区域之中
Find It — 将虚拟物体直接初始化在真实环境中的某个区域(就像它本来就真实存在一样)引导用户去寻找得到快感
(3)如何制作AR?
不同的项目和开发人员会有不同的选择,这里介绍一种常见的工具技术栈:
引擎:Unity
AR开发工具包:EasyAR(中国出品)、Vuforia(高通出品)、ARKit(苹果出品)、ARCore(谷歌出品)
Note:如果将Unity比作厨房,各种资源是料理用的食材,那么制作AR的SDK就是菜品的配方。
3D美术工具:AutoDesk MAYA
平面美术工具:Photoshop
二、Unity与EasyAR环境准备 2.1 Unity与EasyAR版本
这里Unity选择版本为5.5.2,因为跟随了我参考的书籍《UnityAR增强现实完全自学教程》的版本,避免我在学习初期就碰到很多坑,降低学习的挫折感。
这里AR SDK选择EasyAR,版本为1.3.1,因为也是跟随参考书籍,实际开发中还可以考虑苹果公司的ARKit以及高通公司的Vuforia。
2.2 安装Unity
由于我们下载的是历史旧版本,因此到archive中找到5.5.2,并下载它:
打开Unity5.5.2f1.exe开始安装: