在之前的课程中,我们对 AR 目前面临的五大挑战进行了梳理。这些技术挑战的解决方案仍在完善中,功能不断强大的 ARCore 让技术难题迎刃而解,同时也为开发者打造体验更好的 AR 应用插上了翅膀。本文将带你起步,开始 AR 应用开发之旅。
ARCore 实际开发前提:扬长避短
优势:海量用户期待优质 AR 体验
全球超过 85% 的移动设备搭载的是 Android 操作系统。在 2018 年初,支持 ARCore 的 Android 智能手机达 1 亿部。截止到 2020 年,已经增加到了 7 亿部。但是因为 ARCore 需要使用强大的算法支持,所以不是所有 Android 平台设备都满足打造 AR 体验的必要规范。不过,正如过去十年我们看到的那样,技术会围绕着贴合用户需求的系统和功能迅速发展。越来越多的手机搭载了强大的处理器和创新的处理单元(简称 VPU),这些创新型移动处理单元将让 ARCore 功能变得更加强大。
2017 年 Android 在全球至少有 20 亿的装机量,是全球使用最广泛的智能操作系统,也就是说 ARCore 的应用拥有了庞大的潜在用户,他们在期待着获得更沉浸式的 AR 体验,开发者们快行动起来吧。
目前, ARCore 在中国地区支持的设备列表如下:
数据来源:谷歌开发者官网(最新)
局限:弱光环境和光滑平面识别困难
对于智能手机来说,AR 仍然是一项新兴的技术。ARCore 平台的功能十分丰富,但它目前仍存在一些局限。比较主要的局限现存于弱光环境和光滑平面下的识别。
就像眼睛一样,AR 需要光才能识别现实环境中的物体。为了找到特征点和平面,手机摄像头和其他传感器需要实时、流畅地探寻空间中所有的事物。这意味着,在昏暗的环境中,大多数增强现实设备难以正确理解所处的环境,因此无法准确地渲染体验。弱光环境是现有每个 AR 跟踪系统都面临的挑战。解决这个难题的关键在于看见和理解真实环境并确定自身朝向。要做到这一点,真实环境需要有良好的照明条件和可见度。
AR 会不断尝试寻找鲜明的特征点来观察、跟踪并记忆,从而在 AR 体验中确定设备和数字对象的朝向。这意味着 AR 跟踪系统在处理某些平面时会更加吃力。比如,在处理白色木质咖啡桌时,平面特征点很难抓取。相比较而言,放有咖啡杯、纹理粗糙的木桌更容易被 AR 识别。咖啡杯与粗糙的纹理所形成的高对比度可以方便系统创建特征点,可见鲜明的纹理结构至关重要。
简单来说,物体表面和周围空间的差异化特征越明显,AR 应用的效果就会越好。如下图中花园里的桌子, ARCore 很容易就识别到了桌面,然后让安卓小人出现在了桌子上。
然而, 摄像头技术的升级和计算机算法领域的不断进步, 让过去许多无法辨认的场景也在不断改善。
AR 应用开发需要哪些准备工作?
第一步:站在用户的角度思考问题
在思考 AR 应用要面对的用户时,不妨从“场景”这个角度切入。简单来说,就是开发者要写出用户可以看到的东西,运用第一人称,站在第一视角。这么做可以提前、直观且高效地把握用户体验。在这里,我们要介绍几个概念,帮助你更好把握用户心智。
输入选项(Input Option)输入选项指的是在任一个场景中用于互动的选项。作为开发者,需要充分了解输入选项的特点以及使用场合。用户操作(User Action)顾名思义,它指的是用户需要做些什么,进行哪些操作才能在一个场景内移动,或者在不同的场景间转换。虽然这个问题至关重要,但是没有一个统一的答案。归根结底需要开发者根据应用的场景打造最佳的个性化体验。图标含义(Icon Key)这是最重要的一点。开发者需要写出图标的图例信息,解释所有图标的含义,给用户明确的解释。整个 AR 系统,从初始场景的呈现到可用的输入选项,再到音频提示,开发者需要提前帮用户进行规划,才能打造沉浸式 AR 体验。第二步:克服技术局限
正如前文提到的那样,AR 技术目前仍存在诸多局限。例如,开发者无法在 AR 体验中加入很多逼真的资源和元素。因为大多数 3D “角色”都会引发所谓的 “恐怖谷(Uncanny Valley)” 效应。如果你对这个术语没有概念,看看下面两个例子。
左图中,开发者在现实环境中放置了一个一比一还原的“虚拟人物”。想一想,如果你利用移动设备体验 AR 时,突然有一个“真”人出现在你面前,但是看起来行动僵硬,你可能会觉得怪怪的。这种虚拟对象给用户的体验感并不好。相比较而言,选择卡通化的设计和光照会让用户感觉沉浸感更强。如同右图这个可爱的卡通狮子,它并不会让用户瞬间出戏,反而会觉得生动有趣。
由此可见,试图模仿真实物体效果往往会适得其反。所以开发者想要避开这个“坑”,就需要考虑如何在用户体验中增加并运用艺术设计,打造出理想效果。
第三步:提醒用户:不可“越界”
在玩游戏时,爱探索的玩家会试图跑出某个关卡的边界,或者直接跳转到最后一个关卡一试身手。用户对于新鲜的事物总是跃跃欲试,对于 AR 也不例外。比如,有不少用户会想走进虚拟对象或者与之互动,这种做法是不符合逻辑的,就如同下面这个例子:
例如你的 AR 场景是想要在真实世界中加上一盏“以假乱真”的灯,我们就需要考虑,如果这盏灯真实存在于现实生活中,图里这种操作还能实现么?答案是否定的。因为手机会和真实灯盏“亲密接触”,不可能出现图中的“破壁”效果。我们无法直接透过手机看到里面的结构。但是,虚拟的 AR 对象无法阻止用户进行图中的操作。这就需要开发者对用户进行引导和提醒。
第四步:打造 3D 数字对象,请备齐工具
部分 AR 资源是 2D 的展现形式,但沉浸式 AR 体验往往搭配的是 3D 数字对象,这样才能给用户更真实的体验。出色的 3D 建模工具如 Maya、ZBrush、3DS MAX 等是面向专业人员的,所以对于新用户来说,在最开始上手时有畏难情绪是很正常的。每种工具都有专门的课程,年轻的开发者只有不断学习、积累经验才能掌握这些工具的各种特性和功能。
在 ARCore 的入门阶段建议先使用 Google Poly 这个资源库。它汇集了各种 3D 资源和设计,几乎涵盖了全球用户构建的模型。通过 Poly,开发者可以从现有的庞大的资源库中挑选所需资源,下载后即可在自己的 ARCore 体验中应用。以此为基础,便可以快速打造自己首个 ARCore 体验。
比如,你只需要在 Poly 中搜索“汉堡”,选择并下载这个资源,就可以为自己的 ARCore 应用获得一个现成的汉堡,是不是非常方便。
第五步:模拟用户体验,提前起草设计
在用户流这部分中,我们与大家讨论过提前起草设计的重要性。一定要预先勾勒出想要为用户打造的体验,尽量避免可能出现的问题。想要做到这一点,分镜脚本、草图和文本大纲都是不错的展现形式。
具体哪种方式取决于团队的选择,以及想要打造哪一类 AR 应用。一般而言,建议编写一份带有注释的设计文档,方便团队成员及用户快速理解你的想法。
概念解析:设计文档(Design Document)在这里指的是想要构建的应用或体验的完整大纲。它应涵盖一份调查清单,详细说明了开发者期待用户发出的所有互动。同时,能够将应用体验具象化,呈现展示界面,阐释在现实空间中放置虚拟对象的方法。
参考示例
在编写这份文档时,开发者应采纳声音设计师、3D 模型专家和团队内其他专业人员的意见。确保文档中包含所有计划使用的元素和 3D 资源。在用户开启体验到停止使用的这段时间内,所有的互动都应有详细的规划。即使团队中只有一位成员,也能从这个具有“前瞻性”的神操作中获益。
第六步:组建团队,实现愿景
千军万马总好过单打独斗。在开始界定 ARCore 的体验并进行规划时,总会需要高手帮助你实现愿景。在预算允许的情况下,聘请专业人员会更加省时省力。这里给你一些参考。
软件开发者熟练运用计算机知识、有编程经验的软件开发者,可以帮助你细化一些宽泛的概念并实现具体的构思。不过,顶尖的计算机专家往往收费比较高,所以还要按照预算合理选择。3D 设计师如果在 Poly 中不能找到所需的资源,也没有能力从头开始设计模型,专业的 3D 设计师是团队必要的人才储备。这样,不仅可以为自己的内容搭建独有的资源,而且能够在打造 AR 体验中不断进行调整。纹理设计师独特的纹理如同 3D 模型的皮肤,而纹理设计师可以为 3D 设计师的成果添砖加瓦。如果你对 AR 领域有兴趣,想要乘上未来科技的新浪潮、打造属于自己的 AR 应用,相信读完这篇文章你能获得一些思路和想法。如果你对文中提到的工具仍然存在疑惑,请期待下一讲内容。我们将手把手教你如何利用 ARCore 来优化 AR 体验。
转载自:谷歌开发者原创文章