WWDC 2018|iOS 12 Beta無與倫比的 ARKit2.0 初體驗

本文的內容是承接 WWDC 2018 | iOS 12 Beta初體驗 一文的,上一篇中,從整體上過了一遍 iOS12 系統的更新的初體驗,本文詳細梳理一下ARKit2.0的更新內容。

寫在前面

在前面文中提到,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是如何讓多人同時參與進來的。

在講解原理之前,先來熟悉一下游戲的基本玩法。

1.1 SwiftShot 玩法簡介

遊戲首頁如下圖所示,上面有兩個按鈕:

WWDC 2018|iOS 12 Beta无与伦比的 ARKit2.0 初体验

點擊 Host 按鈕為其他附近的玩家開始遊戲,點擊 Join 按鈕參與在另一臺設備上已經開始的遊戲。

如果你點擊了 Host按鈕,應用會要求你找到平面(如桌子)以放置遊戲面板。你可以拖動,旋轉並捏合以定位和調整板的大小,調整OK後點擊屏幕,並出現遊戲板。

WWDC 2018|iOS 12 Beta无与伦比的 ARKit2.0 初体验

當遊戲板出現時,你會發現桌子上有積木和彈弓,彈弓每端有三個。

將設備靠近彈弓,等彈弓高亮的時候,觸摸屏幕抓住它,然後向後拉並釋放,瞄準併發射球。

球會擊倒積木或者彈弓,發生物理碰撞。

擊倒對面三支彈弓者贏得遊戲勝利。

下圖是一些遊戲場景的截圖:

WWDC 2018|iOS 12 Beta无与伦比的 ARKit2.0 初体验

經過這個介紹,你的腦海中對這個遊戲有了大致的印象。

接下來,就介紹蘋果對這類遊戲,在遊戲設計方面的一些建議。

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的支持。

下面,我們來體驗一下這個功能。

打開鏈接之後,頁面展示如下:

WWDC 2018|iOS 12 Beta无与伦比的 ARKit2.0 初体验

系統內置了一些3D模型,供我們預覽:

WWDC 2018|iOS 12 Beta无与伦比的 ARKit2.0 初体验

在Safari中點擊收音機,頁面加載模型可能需要一點時間,加載完成後,如下圖所示:

WWDC 2018|iOS 12 Beta无与伦比的 ARKit2.0 初体验

可以在屏幕上縮放和移動這個模型,點擊頂部的 AR 選項,可以切換到 AR 預覽模式:

效果如下:

WWDC 2018|iOS 12 Beta无与伦比的 ARKit2.0 初体验

很逼真吧!

這項功能為設計師和開發者,提供了在手機裡預覽模型的便捷方法!

小結

本文通過蘋果提供的官方實例,剖析了AR對支持多人同時參與方面,官方提供的一些設計思路和實現原理;體驗了在Safari中直接預覽3D模型的功能。

如果您只是一個普通玩家,並非開發者,看到這裡,應該對ARKit2.0有了一個大致瞭解,希望這些以後能夠有助於您體驗AR項目。如果您對iOS 12beta版本感興趣,需要升級beta版本系統或者體驗SwiftShot遊戲,您可以私信我,有時間了會幫您解答。

如果您是一個開發者,這僅僅是一道開胃菜,下一篇,會從代碼角度結合ARKit2.0新增的API,詳細剖析 SwiftShot 的各個部分實現原理,您也可以翻閱我其他的關於 ARKit 和 SceneKit 的博客,獲取更多信息。

鏈接:https://www.jianshu.com/p/8b51d3ef6572


分享到:


相關文章: