查看原文
其他

应用 | 史上第一次 AR 多用户交互体验是如何实现的?这不是黑科技

Adam Debreczeni Mapbox 2019-06-01


👽

真的不是黑科技


受当前技术和设计的限制,在同一AR场景中实现多用户交互是非常难的——除了基础图层,目前的设备很难直接对周边环境进行识别,更别提(出现在画面当中的)定位其他设备。而且你很轻易就发现,每次打开AR应用的时候,场景都会进行重置,这从AR应用普及层面来看,其实是个大问题。


作为Fitness AR的创始人之一,在携Fitness AR团队加入Mapbox 之后,Adam Debreczeni 和团队小伙伴们仍旧在探究如何利用工具帮助人们高效协作的问题。

Adam Debreczeni


于是,基于Mapbox Unity SDK, Adam和AR团队的小伙伴们一起创造了史上第一个 AR多用户交互体验


🙆

戳视频感受一下https://v.qq.com/txp/iframe/player.html?vid=u1332feipfk&width=500&height=375&auto=0



🙌

他们是如何做到的?



👩‍💻  step 1 从实体工具认知开始


几年以前,如果你打算跟朋友一起出门旅行,那你首先要做的首先是买一张地图。从现今的角度来看,你们的线路规划以及地点标记这样的行为,其实就是一种“沉浸式”体验——因为你的身体,比如你的双手完全参与其中。


而事实是,我们从小到大都在进行这样的训练——我们在以各种各样的方式与物理世界发生着关联与互动。“我们希望在进行交互和AR设计的时候,能一直铭记这个道理”,Adam 希望自己做出来的产品,是可以让用户迅速获得代入感的——可以就像人们在现实世界当中随手拿起一根笔给地图标标记那样简单。


所以这就触发了一系列,会让我们在进行设计时会思考的问题👇

  • 在AR实时场景当中,对数字地图进行随手标记是怎样的一种体验?

  • 当多台设备同时出现在一个场景当中的时候,如何实现多台设备同时输入?

  • 如果你与朋友们处在不同的位置,你们如何共享彼此的屏幕?

  • 如何在像手机屏幕这样的平面上打破2D标记工具的限制,比如保证手指精确地操控屏幕其实是个难题。


👩‍💻  step 2 多人共享一个AR场景


苹果ARKit 和Google ARCore 的发布为开发者们提供了非常便捷的AR开发工具。但是,这两个开发工具所提供的追踪功能,实在是非常简单粗暴,对我们开发多用户交互体验来说,制造了不小的困难。


所以我们的解决方案是——收集设备检测平面信息的反馈。根据反馈当中的距离、角度、和位置数据这些信息,我们就可以建立起设备相对定位的3D模型。当在不同的设备间分享这些数据的时候,设备将获得识别彼此位置的能力。


我们利用Mapbox Unity SDK 来固定设备的3D模型在地图上的位置。如图所示,在我们利用Unity SDK 创建了一张地图,一张可以被AR设备(图中太空人)实时探索的地图。

测试Unity 模型中。静止的太空人其实是电脑,活动的太空人其实是一台AR设备。


在手机上也可以建立demo,在中AR体验。

https://v.qq.com/txp/iframe/player.html?vid=d1332dcto1k&width=500&height=375&auto=0


因为所有设备间的通讯都是通过服务器实现的,所以即便持有AR设备(如手机)的人不在画面当中,依旧可以实现人物“在线”。

https://v.qq.com/txp/iframe/player.html?vid=x133210alru&width=500&height=375&auto=0


👩‍💻 Step 3 3D互动的实现


在利用ARKit 和 ARCore 进行开发时,设备将既是屏幕又是控制器。当你想选择地图上某一点时,选中轻触就可以了。计算机语言当中,对轻触这一动作在3D环境中的编译和呈现叫做光线透射。传统意义上来说,在有精确控制器的前提下,这种方法是奏效的,但是手指操作手机屏幕时,精确度确实没有那么高。


我们通过用锥形体环境模型来增加面积,代替固定尺寸的环境模型,将光线透射这一概念延伸。


这就保证了定位的精准性——在虚拟物体远近不同的时候有不同效果的呈现。

因为微信推送最多智能添加三条视频,想要观看视频示例的朋友,请点击图片,自动跳转视频


接下来的几周时间,我们将对这个demo进行进一步探索,同时也将发布开源项目。如果你想在你的AR 项目当中整合地图和位置服务,现在就下载Mapbox Unity SDK,开始你的探索吧。


当然我们也欢迎你加入我们一起探索,我们AR/VR Unity 开发工程师职位在招聘🤹‍♀️。

我们还希望在Mapbox各大平台上也能够看到你的分享,可以直接在下方评论或者微信后台留言给我们,知乎搜索关注 @Mapbox中国,还可以在微博 @Mapbox 或者tag #builtwithmapbox#。


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存