查看原文
其他

Google AR 交互的开源与幕后

Google Play 谷歌开发者 2019-02-14

△ Google I/O 的 AR/VR 沙箱体验区一直人头攒动


在几周前的 Google I/O 上,我们的 AR 开发平台 ARCore 发布了一个重要更新,相信关注我们的开发者们已经知道了:我们添加了诸如 Cloud Anchors 这样的新 API*,从而实现了多用户协作 AR 体验,带来了可以将 2D 图像激活为 3D 对象的 Augmented Images 技术。这些更新将会改变我们今天使用 AR 的方式,并使开发者能够创建更丰富、更沉浸的 AR 应用。

* 注: Cloud Anchors (共享锚点) 通过 Google 的服务器来实现协作式的 AR 体验。


其实在确定下来这些新功能后,我们决定对我们的 AR 平台以及它蕴含的可能性进行测试。于是我们开发了真实的项目,来展示这些体验都是如何走进现实的。所有的演示都在 I/O 的 AR/VR 沙箱区域展示。更重要的是,我们完全开放了源代码,让您可以看到创建这些体验的过程是多么简单。在经历了 I/O 期间的实际操演之后,我们对这些项目的表现非常满意,并希望在这里与大家分享一些幕后的经验和想法。



Light Board - 多人游戏


Light Board 是一款 AR 多人桌面游戏,两位玩家在浮动游戏板上相互发射彩弹。

在创建 Light Board 的时候,我们必须牢记最终用户是谁,即参加 I/O 的开发者们。我们希望 Light Board 成为开发者们在访问 I/O 沙箱展区时会去尝试的简单而有趣的游戏。开发者们在路过时只有几分钟的时间来进行游戏,所以它需要让玩家 (甚至非玩家) 来快速上手,而无需经过复杂的设置过程。


所以视觉设计是我们对 Light Board 的关注重点之一。我们对游戏视觉的要求是:与 I/O 2018 现场的装饰设计风格保持一致。这样一来,我们的应用就像是与会者在身边看到的内容的延伸。因此,我们的设计理念中包含 3 个目标明快的色调简单的图形自然的实体材质

 

△ 左图 - I/O 2018 中 AR/VR Sandbox 展区的设计。右图 - Light Board 游戏桌面的主视觉设计。注意两者之间保持着风格和元素的延续。


Light Board 的这些设计是在 Maya 和 Cinema 4D 中创建的。我们使用 Substance Painter 为模型创建了基于实物的材质。连续迭代对开发来说至关重要,对创建美术内容来说同样如此。考虑到这一点,即使对于这个相对简单的项目,我们也会仔细跟踪设计工作流中的细节变化。这样一来,我们就能够在完成最终设计方案之前快速尝试不同的外观和桌面样式。


在开发方面,我们选择 Unity 游戏引擎作为开发环境。Unity 赋予了我们一些重要优势。首先,我们可以很容易地立即获得美观的 3D 图形并加以运行。其次,由于引擎组件已经解决了基础的工作,所以我们可以立即开始在游戏的玩法逻辑上进行代码迭代。与前面提到的视觉设计一样,完善的底层和工作流管理使得我们可以在做出最终决定之前测试许多玩法选项 (这里的工作很像游戏领域的关卡设计师来调校和打磨关卡方案)。此外,只需多处理一点点工作,Unity 就可以支持 Android 和 iOS 系统。


为了实现实时多人游戏,我们使用了 Firebase 实时数据库。我们一度很担心 I/O 期间的网络性能表现,并认为提升数据库的稳定性会让游戏更能容忍网络的不良状况。事实证明,这套系统一直运行得非常好,我们甚至能在退出后重新加入游戏时不损失任何操作 (做过实时多人对战的开发者会知道这有多重要)!


我们在创建 Light Board 的过程中获得了很多乐趣,也希望大家可以从这个例子中看到,你们不仅可以轻松创建 AR 应用,更可以轻松使用 Cloud Anchors 等非常酷的新功能。

请使用下面的地址获得我们的源代码,试试 Light Board 吧!

> https://github.com/googlesamples/arcore-lightboard



Just a Line - 和您的朋友一起画画


今年 3 月,我们发布了 Just a Line,这款 Android 应用可以让您使用手机在空中画画。这是一个旨在展示 ARCore 强大功能的简单实验性应用。在 Google I/O 中,我们将 Cloud Anchors 添加到应用中,这样一来,即使一个人使用 Android 设备,另一个人使用 iOS 设备,两个人也可以同时在同一空间中协同创作。

两个版本的应用都是原生开发的:Android 版本采用 Android Studio 编写,而 iOS 版本则采用 Xcode 编写。ARCore 的 Cloud Anchors 功能让 Just a Line 能够配对两部手机,允许用户在同一空间中同时进行绘画。配对功能适用于 Android 和 iOS 设备,图形则通过 Firebase 实时数据库进行同步。


Just a Line 的 Android 源代码链接:

> https://github.com/googlecreativelab/ar-drawing-java

iOS 版本源代码链接:

https://github.com/googlecreativelab/justaline-ios



Illusive Images - 活起来的艺术展


Illusive Images 演示了一个由 AR 技术增强的画廊,它由3件作品组成,每件作品都探索了不同的增强图像 (Augmented Images) 使用案例和用户体验。当人们从一边走到另一边,在物体周围走动,或者在特定方向注视时,2D 艺术作品将与 3D 空间结合,让观众超越物理框架,置身于艺术作品的空间。

由于增强图像的视觉性质天然会超越物理规则,所以我们在不同视觉特征的表现形式上进行了大量尝试。为了获得最佳效果,我们通过调整作品的画布大小来实现快速迭代,甚至还尝试着在用户的屏幕中直接强化亮度和对比度 (ARCore 可以准确识别环境中的光照等信息)。通过多种手法配合,在不影响设计意图的情况下实现最佳的成像效果。


该应用是在 Unity 中使用 ARCore 创建的,大部分视觉内容则是在 Cinema 4D 中创建的。3D 动画以 fbx 的格式导入到 Unity 中,在实际使用时展现的样子完全由用户和艺术品的相对位置来驱动,不得不说这种画廊看起来真是令人神往。


请下载源代码快来亲身体验一下吧!

> https://github.com/googlesamples/arcore-illusive-images


正如本文中提及的,为了让您的开发体验更轻松,我们开源了所有这次 I/O 上的 AR 演示项目,希望您玩得开心。更希望您能在了解到用 ARCore 进行开发是多么简单后,能更有自信地开始创建属于自己的 AR 体验。我们期待着看到来自大家的作品!


点击屏末 | 阅读原文 | 查看更多 ARCore 相关内容信息
 



推荐阅读:

· ARCore 再次进化,这些新功能不容错过

· ARCore 为你带来 AR 新体验!

· 全套 AR 应用设计攻略都在这里!

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

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