/ Nweon / 0浏览

研发实践:Mozilla谈WebAR应用开发的经验与教训



映维网
2019年02月06日

)我们都希望能够带来下一个(乃至成为第一个带来)伟大的增强现实应用程序。但摆在我们面前的挑战很多,这是一个全新的领域,尚未得到充分的挖掘与定义,同时没有任何一款我们每天都会使用的AR程序来作为起始点或示例。你的新概念必须与已经非常高质量的传统2D应用程序进行竞争。开发新应用程序的成本可能非常高昂,尤其是对于本地应用程序环境而言。对于未知领域的AR而言,我们需要更多初始的时间,人才与资金投入。

但这同时带来了无尽的机遇,允许我们在前景光明的AR市场饱和之前成为真正的拓荒者。日前,为Mozilla探索AR/VR的Anselm Hook撰文介绍了他们对浏览器与增强现实的一次应用程序实验,以下是映维网的具体整理:

Moziila眼中的问题是:对于美术,开发者,设计师,创业家和创意人士而言,能够帮助他们轻松开发增强现实体验的工具是什么呢?我们提供的工具可以帮助他们开发哪种应用程序呢?

例如:我今晚看了崔佛·诺亚的《每日秀》,然后明天是否可以发行一款还原前一晚戏剧节目的应用程序呢?衡量成功的标准是能够快速、轻松地呈现在丰富的媒介中,并及时地提供给全世界。

在Blair MacIntyre的帮助下,我编写了一个实验来测试探索所述问题的各个概念。在下面的文章中,我将回顾我们开发的应用程序,我们从中学习到的经验教训,以及未来的目标方向。


1. 寻找“优秀”用例

为了回答以上问题,我们开始调查AR和VR开发者,向其询问他们的想法和观察。我们制定了一定的原则。我们正在寻找人们重视,足够有意义,有用,拥有足够差异化优势,并有可能成为人们日常生活一部分的AR用例。

现有的AR应用程序同样提供了灵感。我喜欢AirMeasure这款简单的AR应用程序,它类似于Augmented Reality Measuring Tape等应用程序,而我每个月都会用上一次或两次。尽管频率不高,但非常方便。这是一个真正的实用性应用程序,而且App Store上有6500条评论,所以显然它已经积累了一定的用户量。

Mozilla的首席研发官Sean White对MVP(最小可行性产品)有一个非常具体的定义:每天有100人用什么?

当我听到的这个问题时,我同时听到:什么样的体验是完整的,引人入胜的,有用的,甚至在早期迭代中就具备了能够牢牢抓住100名用户,即便存在当前限制仍然愿意每天使用的核心品质?发行应用程序可能很难,而寻找第一批用户更是难上加难。


2. 基于浏览器的AR

全新的Pixel,iPhone,以及诸如
Magic Leap
等新兴设备都已经支持增强现实。它们能够报告地面位置,墙壁位置,以及其他对AR至关重要的环境感知问题。它们同时支持透视视觉,3D追踪与注册。新兴的范例,尤其是WebXR,将很快以标准方式向浏览器提供所述的功能,就像其他硬件功能嵌入浏览器的方式一样。

本地应用程序开发工具链非常出色,但存在摩擦。同时登陆几个不同的应用程序商店或平台存在挑战性。常规3A级内容所需的成本可能不适合小型项目。如果你希望明天就为客户开发出一款应用程序,或者为新闻报道或当前事件开发一款相应的体验,所需的时间可能会很长。

随着AR支持开始走进浏览器,现在我们可以选择专注于故事叙述,而非担心技术,成本与分发。一直以来,浏览器都提供了较低的进入门槛,即时可以部署至数百万的用户,允许你不受限制地进行分发和共享。只需点击链接即可,无需安装,从而降低激活成本并实现病毒式传播。这是对其他开发方法的补充,同时可以帮助你快速构思概念。


3. ARPersist:概念

我们在实验中探索了通过虚拟便利贴来装饰世界的感觉。这种便利贴可以通过应用程序发布,而且它们会会话之间保持不变。用户实际上可以看到对方,并且能够看到对方实时移动便利贴。这种便利贴能够固定于空间之中,并永远存在。

利用我们的实验,企业可以用各种各样的便利贴来装饰办公室,如提供有关如何操作打印机的提示,或者通过创意路标来将新员工引导至会议室。或者,一对度假夫妇可以走进爱彼迎Airbnb民俗,打开应用程序,并看到说明额外毯子位置或如何使用洗衣机的便利贴。

我们在实验中定下了如下目标:


4. ARPersist:应用程序

对于上述想法,我们为iPhone 6S及以上设备编写了一款应用程序,你可以通过

这个网址

进行体验,而且我们已经把源代码托管至

github.com/anselm/arpersist”>GitHub

下面是一个实操视频:

更多关于操作方式的视频演示:

下面是通过iPhone屏幕看到的画面:

在下面这张图中,每位玩家都能在3D空间中看到对方的智能手机,以及一个红心。

你需要适用于iOS的WebXR Viewer,而这可以在iTunes进行下载(WebXR标准正在开发之中,因此尚无法直接在大多数浏览器中运行)。

上面的视频已经很好地进行了说明:基本上,你打开ARPersist,转到URL(arpersist.glitch.me)。这时你将进入透视视觉显示。屏幕右侧提供了四个按钮。最下面的“贝壳”按钮将传到可以加载和保存映射的页面。你可以“创建一个锚点”并选择“保存你的映射”。这时,你可以点击最上方的图标并添加新功能。你放置的对象将叠加在最近的地板或墙壁上。如果你加入别人的映射,或者你正位于附近的地理位置,你将能实时看到其他玩家。

这款应用程序采用了Sketchfab的3D模型,下面是我使用的asset:


5. 做得好的地方

对于初始阶段的开发,我有了一系列惊人的实现,甚至是恍然大悟的时刻。下面是做得好的地方,而我将其描述为AR体验的基本属性:


6. 依然存在的挑战

我们同时发现了一系列的挑战,如:


7. 下一步

下面是我认为这项实验的前进方向:


8. 几个架构观察

这起研究不仅只是专注于用户体验,但同时旨在探索内部架构。我认为MVP(最小可行性)背后的架构应该能反映出成熟应用程序提供的工作分区。在新生的形式中,MVP(最小可行性)必须在架构上反映出更大的代码库。这个应用程序的当前实现包括这些部分(我认为这反映出一个更成熟系统的重要部分):


9. 关于对象地理定位的一个架构观察

有一个技术要点值得我们进一步阐述。在我们开始之前,我们必须回答一个问题:“我们应该如何表示或存储虚拟对象的位置呢?”。这也许不是你在周末晚上与朋友聊天的话题,但它仍非常重要。

在现实世界中,我们将许多事情视为理所当然,如标志,路灯和建筑物。即使你看向别处它们都能维持在原地。但编程就像是创造宇宙一样,你必须手工完成所有事情。

我们采取的方法似乎很明显:用GPS坐标定义对象位置。我们为每个物体提供纬度,经度和高度(以及方向)。

但问题是,今天的智能手机无法提供十分精确的地理位置。我们必须自行编写一个wrapper。当用户启动应用程序时,我们将构建(或加载)区域的增强现实映射。利用精确的地理位置,系统可以将映射保存至服务器。一旦有了房间的映射,映射中的所有内容都能实现非常精确的定位。这意味着你在应用程序中放置的对象或执行的所有操作都指定了全球坐标。

Blair认为,尽管当前的智能手机(或其他的设备)尚无法提供非常精确的GPS,但情况很快就将发生变化。我们预计在明后两年GPS将变得超级精确,从而令我们的wrapper成为可行的选项。


10. 总结

我们的探索一直在谈话和代码中进行。就个人而言,我喜欢这种实践:花一些时间进行讨论,然后实现一个可行的概念证明。没有什么能够比示例更能说明白你的构思。

在希冀理想的状态时,很明显我们都会对最完美的AR持不同的看法。我渴望的AR未来是,不同用户都可以提供一系列不同的信息:个人提醒,城市交通覆盖,天气机器人,朋友位置通知等等。我感觉它应该是一种创造性媒介。我看到用户渴望创建对象,其中不同的对象具有不同的优先级,而且不同的对象都是“活生生的存在”,有着自己的意愿,移动性,以及与其他对象的交互。通过这种方式,AR视图能够回应默认世界的自然视图,各种虚拟和真实对象都在争夺我们的注意力。

再往后退一步思考,你会发现一些人类创造性地予以应用的基本通信模式。我们使用视觉媒介(标牌),我们使用音频(语音聊天)。我们拥有高分辨率的高保真表现能力,这包括我们的肢体语言,我们的手势,尤其是非常丰富的面部表情。我们还有基于文本的媒体,以及许多其他类型的媒体。感觉就像是,如果你能构建出一种允许人们导出其高带宽需求的通信媒介时,这种媒介就会变得非常流行。Skype,短信,维基百科,甚至是音乐,所有这些都符合基本的表达性人类动机,它们是输出和表现自我的渠道。

从那个角度来看,摆在我面前的一个问题是:“在空间中共享3D对象是一种基本的通信媒介吗?”。如果是这样,问题就将变成:“为什么不建立一种在空间中表达持久性3D对象放置的罪行可行性MVP呢?”。显然,作品需要赚钱,并且对于开发作品的人来说是可持续的过程。我们是否正在开发某种根本性的工具,而且即使在早期迭代中都能提供足够的价值,令用户愿意投入资金(或精力)呢?我认为如果我们能够帮助用户表达出基本的人类沟通模式,我们将能取得成功。

令人感到惊讶的是持久性的力量。当体验运作良好时,我会产生一种心理错觉,即我的房间里确实存在这一个个虚拟图像和虚拟对象。我们的大脑似乎深深地被持久性幻觉所迷惑。类似于Magic Leap,你会感受到一种“魔力”感,仿佛现实世界维度之上尚有另一个世界,而且即便放下设备后你仍然能感觉到它的存在。这时,虚拟将开始变得真实。

0

  1. This post has no comment yet

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注