美文网首页iOS 开发学习成长之路ios
WWDC 2018 | iOS 12 Beta 无与伦比的

WWDC 2018 | iOS 12 Beta 无与伦比的

作者: TankXie | 来源:发表于2018-06-06 23:24 被阅读296次

    本文的内容是承接 WWDC 2018 | iOS 12 Beta体验 一文的,上一篇中,从整体上过了一遍 iOS12 系统的更新的初体验,本文详细梳理一下ARKit2.0的更新内容。

    image.png

    写在前面

    在前面文中提到,iOS 12主要是在性能上进行了优化,对普通用户来说,iOS 12并没有从软硬件上给人耳目一新。

    但是对于开发者来说,关注点则很多,其中,ARKit2.0 就是一个很大的亮点。苹果在ARKit2.0的介绍过程中用了“无与伦比”来形容 ARKit2.0 :

    unparalleled augmented reality experiences

    我觉得 ARKit2.0 本次的更新,对于苹果系统下的 AR 发展具有划时代意义。
    为什么这么讲,ARKit1.0 虽然强大,但始终停留在只能一台设备玩,玩家之间没有交互,�你做的再好你只是一个单机游戏,但随着 ARKit2.0 的发布,这一切都变了。

    With ARKit 2 on iOS 12, your AR apps can now be experienced by multiple users simultaneously, and resumed at a later time in the same state.

    ARKit2.0 支持多人同时参与,玩家之间可以共享由虚拟世界和真实世界构建的场景,这样的话,随着这个功能的发布,AR 就加入了社交属性,对游戏设计者来说,这也就有了无限的想象空间。

    所以,可以预见,接下来的几个月内,会有一批优秀的、多人参与的AR应用出现,值得期待。

    ARKit2.0 虽然升级变化很大,但总结来看,我把变化归纳为两个部分:

    • 支持多人同时参与
    • 更好的支持3D

    本文也从这两部分来讲解。

    1. 支持多人同时参与的 SwiftShot

    SwiftShot是苹果官方给出来的一个示例,本节结合 SwiftShot 来讲解 ARKit2.0是如何让多人同时参与进来的。

    点击下载SwiftShot源码示例代码源码。

    在讲解原理之前,先来熟悉一下游戏的基本玩法。

    1.1 SwiftShot 玩法简介

    游戏首页如下图所示,上面有两个按钮:

    WWDC 2018 | iOS 12 Beta 无与伦比的 AR 初体验

    点击 Host 按钮为其他附近的玩家开始游戏,点击 Join 按钮参与在另一台设备上已经开始的游戏。

    如果你点击了 Host按钮,应用会要求你找到平面(如桌子)以放置游戏面板。你可以拖动,旋转并捏合以定位和调整板的大小,调整OK后点击屏幕,并出现游戏板。

    image.png

    当游戏板出现时,你会发现桌子上有积木和弹弓,弹弓每端有三个。
    将设备靠近弹弓,等弹弓高亮的时候,触摸屏幕抓住它,然后向后拉并释放,瞄准并发射球。
    球会击倒积木或者弹弓,发生物理碰撞。
    击倒对面三支弹弓者赢得游戏胜利。

    下图是一些游戏场景的截图:

    image.png

    经过这个介绍,你的脑海中对这个游戏有了大致的印象。

    接下来,就介绍苹果对这类游戏,在游戏设计方面的一些建议。

    1.2 多人参与的AR游戏设计基本原则

    1.2.1 鼓励玩家移动,增加游戏的沉浸式体验

    Encourage player movement to make gameplay more immersive

    在 SwiftShot中,因为在你和敌人弹弓之间有障碍物体,你可能会发现,你很难直接射击敌人的弹弓。但你可以移动到其他弹弓位置,与你的队友一起找到赢得比赛的最佳角度。

    1.2.2 不鼓励剧烈的、大范围的移动

    Don’t encourage too much movement

    玩这类游戏,大家都在同一个相对狭小的空间中,集中注意力的盯着设备屏幕。
    如果游戏过程中总移动的太猛烈,会导致队员撞在一起,这样就降低了AR游戏的沉浸体验,分分钟出戏,甚至还有受伤和摔坏设备的风险。

    所以在 SwiftShot 中,一旦你选定要使用某一个弹弓之后,你必须仔细瞄准,保持设备稳定,才能射出一个好球,所以你不会因为低头盯着设备,频繁移动,而导致和其他玩家发生身体碰撞。

    1.2.3 促进沟通和社交

    Foster social engagement

    多人AR游戏将玩家聚集在同一个空间,为他们提供新的娱乐方式。
    使用AR观看比赛,也为观众提供了不同的视角和新的体验。NBA 就在积极尝试用户 AR 观赛。

    保持游戏简短,但通过变化增加乐趣

    Keep games short, but add fun through variation

    通过下午和同事的体验这个游戏,发现玩这个游戏是比较累的,因为你需要端着设备,长时间保持在一个可能你并不是很舒适的姿势(比如半蹲),来完成球的发射。手机还相对好一点,抱着 iPad 真的特别累。

    所以 SwiftShot 保持短暂的鼓励派对式游戏,玩家可以经常进入和退出游戏。
    它还提供了几种游戏板布局和特殊效果,这样每次进入游戏都可以有所不同,避免审美疲劳。

    1.3 如何在设备间共享数据

    设备间共享数据包含两方面的内容:

    • 如何获取包含带有空间信息的数据,ARWorldMap 会帮我们完成这项内容;
    • 数据如何在设备间传递,通过 MultipeerConnectivity 可以实现。

    结合二者,苹果实现了多用户之间的数据共享和游戏交互。

    ARWorldMap

    在 SwiftShot 中,当一个玩家点击 Host 按钮创建游戏面板之后,ARKit会自动创建一个 ARWorldMap,其中包含ARKit对游戏板周围区域的空间理解。

    当其他玩家加入进来时,会收到一份 ARWorldMap 副本,并以此为依据构建多人一起玩耍的 AR 世界。

    有关设置多人AR会话的更多详细信息,请参阅 Creating a Multiuser AR Experience

    MultipeerConnectivity

    SwiftShot使用 MultipeerConnectivity 框架在设备间建立连接,并发送游戏数据。

    关于 MultipeerConnectivity的更多详细信息,可查看苹果的官方文档,后续我也会写相关的文档来做详细介绍。

    关于 MultipeerConnectivity 的内容,后面用一篇文章专门来介绍。

    注意: 使用Multipeer在设备之间直接传输数据,这些数据包括你的本地位置信息 ,通过设置MCEncryptionPreference.required 加密,它也可以防止窃听。苹果在用户数据隐私方面还是做的很好的。

    2. AR Quick Look Gallery

    iOS 12支持直接在Safari中预览3D模型,换句话说,也就是Safari 添加了对ARKit的支持。

    下面,我们来体验一下这个功能。

    在Safari下打开官方提供的3D模型链接

    打开链接之后,页面展示如下:

    image.png

    系统内置了一些3D模型,供我们预览:

    image.png

    在Safari中点击收音机,页面加载模型可能需要一点时间,加载完成后,如下图所示:

    image.png

    可以在屏幕上缩放和移动这个模型,点击顶部的 AR 选项,可以切换到 AR 预览模式:

    效果如下:

    image.png

    很逼真吧!

    这项功能为设计师和开发者,提供了在手机里预览模型的便捷方法!

    小结

    本文通过苹果提供的官方实例,剖析了AR对支持多人同时参与方面,官方提供的一些设计思路和实现原理;体验了在Safari中直接预览3D模型的功能。

    如果您只是一个普通玩家,并非开发者,看到这里,应该对ARKit2.0有了一个大致了解,希望这些以后能够有助于您体验AR项目。如果您对iOS 12beta版本感兴趣,需要升级beta版本系统或者体验SwiftShot游戏,您可以私信我,有时间了会帮您解答。

    如果您是一个开发者,这仅仅是一道开胃菜,下一篇,会从代码角度结合ARKit2.0新增的API,详细剖析 SwiftShot 的各个部分实现原理,您也可以翻阅我其他的关于 ARKit 和 SceneKit 的博客,获取更多信息。

    WWDC 2018 | iOS 12 Beta 无与伦比的 AR 初体验

    相关文章

      网友评论

      • Kii_la:深夜高产啊,的老铁
      • 天蓬大元:os.signpost.运行ARKit游戏,报错这个类。这个是干什么的?百度找不到。如何让项目可以跑起来。
        TankXie:@天蓬大元 这种问题,我没有碰到,baidu不到就上google或者Stack Overflow
      • ed1cdb8cd824:深夜高产啊,的老铁

      本文标题:WWDC 2018 | iOS 12 Beta 无与伦比的

      本文链接:https://www.haomeiwen.com/subject/whabsftx.html