科技魔方

谷歌分享:如何用ARCore开发AR手游《太空入侵者世界防御》

AR/VR

2023年09月07日

  谷歌和TAITO合作的免费AR手游《太空入侵者世界防御》最初在今年7月发行。作品沿用了经典街机版《太空侵略者》的玩法,并利用ARCore来将现实世界作为战斗舞台,从而允许一系列的外星人精确出现在静态城市图像周围,如同真实一般入侵地球。

  日前,谷歌专门撰文介绍了他们是如何利用ARCore来开发《太空入侵者世界防御》,下面是具体的整理:

  为了庆祝《太空入侵者》的45周年,我们与最初的街机游戏开发商TAITO和UNIT9合作推出了《太空入侵者世界防御》。这是一款利用最先进的LBE AR技术的沉浸式游戏,而世界各地的玩家都可以走到户外并探索当地的社区,保护地球免受从附近建筑中产生的太空入侵者的攻击。所有这一切都是通过增强现实技术实现。

  这款游戏由我们最新的ARCore技术提供支持:Geospatial API,Streetscape Geometry API和Geospatial Creator。我们非常高兴向你展示游戏开发的幕后过程,以及我们如何使用最新的功能和工具来设计首个程序化的全球规模AR游戏玩法。

  Geospatial API:把世界变成游乐场

  Geospatial API允许你将内容远程附加到谷歌街景地图的任何区域,并创建与全球范围内的真实世界位置相关联的沉浸式体验。《太空入侵者世界防御》在100多个国家和地区的街景中都有视觉定位服务VPS覆盖,从而允许游戏适应繁忙的大都市和恬静的小城镇。

  对于没有VPS覆盖的地区的玩家,我们提供了一种全新的室内模式,从而允许你在任何环境或地点保护地球免受太空入侵者的攻击。

  创建初始用户流程

  ARCore Geospatial API通过用户设备的摄像头图像来扫描特征点,并将其与谷歌街景的图像进行比较,以便在现实世界空间中精确定位设备。

  这需要用户举起手机,在区域移动,以便收集足够的数据来准确定位用户。为了做到这一点,我们采用了一种聪明的技术:对于特定区域扫描,我们要求玩家在摄像头的视场中追踪宇宙飞船的轨迹,从而引导用户完成对特定区域的扫描。

  利用这个用户流程,我们不断检查Geospatial API是否收集了足够的数据来提供高质量的体验:if (earthManager.EarthTrackingState == TrackingState.Tracking) { var yawAcc = earthManager.CameraGeospatialPose.OrientationYawAccuracy; var horiAcc = earthManager.CameraGeospatialPose.HorizontalAccuracy; bool yawIsAccurate = yawAcc <= 5; bool horizontalIsAccurate = horiAcc <= 10; return yawIsAccurate && horizontalIsAccurate; }

  将环境转变为运动场

  扫描附近区域后,游戏使用来自Streetscape Geometry API的网格数据,并通过算法来确保在不同地点开玩游戏都是一种独特的体验。每个现实世界的地点都有自己的地形和城市布局,并以自己独特的方式影响着游戏玩法。

  在游戏中,太空入侵者可以从建筑物中生成,所以我们使用从世界不同地方获得的建筑几何来构建测试用例。这确保了游戏在从当地村庄到繁华城市的各种环境中都能发挥最佳效果。

  进入入侵者的次元

  我们从研究发现,对于用户而言,为了增强现实体验而长时间举起手可能会非常疲惫。这影响了我们的游戏玩法开发:我们创造了入侵者的次元,从而允许玩家有机会放松手臂,并提高用户的舒适度。

  我们最喜欢的“哇塞”时刻是真实世界的AR和虚拟生成的3D维度之间的过渡,它真正向你展示了Geospatial API的强大功能。

  这种效果是通过将摄像头馈送与虚拟环境着色器混合来实现。其中,虚拟环境着色器以独特的线框风格渲染建筑物和地形。

  在玩家进入入侵者的资源后,玩家的宇宙飞船将通过算法生成的路径飞过他们的当地社区。这是通过从过顶camera创建用户环境的深度图来完成。在这张深度图中,红色通道代表建筑物,蓝色通道代表可能用于飞行路径的空间。然后,可以使用图像生成包含路径应该遵循的点的网格,并使用A*搜索算法来求解遵循所有点的路径。

  最后,生成的A*路径进行后期处理,以平滑任何潜在的抖动,急转弯和碰撞。

  为了确保宇宙飞船的路径平滑,我们通过在一组节点间隔对路径进行采样来消除抖动。然后,我们通过分析路径的角度来确定路径是否存在急转弯。如果出现急转弯,我们引入两个额外的点来完成它。最后,我们查看这条平滑的路径是否会与任何障碍物发生碰撞,并调整它以在检测到障碍物时飞过它们。

  创造全球规模游戏体验

  制作游戏的一个关键收获是,情境生成的复杂性需要在全球范围内进行测试。使用Unity,我们将多个环境带入测试用例,从而能够快速迭代并验证算法的改动。这令我们有信心在全球范围内部署游戏。

  使用Geospatial Creator可视化游戏

  我们使用了Geospatial Creator来验证虚拟内容如何在Unity中出现在东京的特定地标旁边。

  通过Photorealistic 3D Tiles,,我们能够在特定的地点看到入侵者,包括日本的东京铁塔。

  未来的更新和版本

  自游戏发布以来,我们不断听取玩家的反馈,并一直在积极更新和改进游戏体验。

  我们已经增加了一个新的游戏模式室内模式,从而允许所有没有VPS覆盖的玩家或不想使用AR模式的玩家体验游戏。

  为了鼓励用户在AR中开玩游戏,我们重新平衡了分数,并给予室外玩家更多的奖励。

  更多关于游戏的情报和我们是如何改进游戏,请关注我们的X(原Twitter)账号Twitter(@GoogleARVR)。另外,请访问我们的ARCore和Geospatial Creator网站,以探索如何使用谷歌的AR技术构建内容。

+1

来源:映维网

延展资讯