Google AR 交互的開源與幕后

△ Google I/O 的 AR/VR 沙箱體驗區(qū)一直人頭攢動

在幾周前的 Google I/O 上,我們的 AR 開發(fā)平臺ARCore 發(fā)布了一個重要更新,相信關(guān)注我們的開發(fā)者們已經(jīng)知道了:我們添加了諸如 Cloud Anchors 這樣的新 API*,從而實現(xiàn)了多用戶協(xié)作 AR 體驗,帶來了可以將 2D 圖像激活為 3D 對象的 Augmented Images 技術(shù)。這些更新將會改變我們今天使用 AR 的方式,并使開發(fā)者能夠創(chuàng)建更豐富、更沉浸的 AR 應(yīng)用。

?注: Cloud Anchors (共享錨點) 通過 Google 的服務(wù)器來實現(xiàn)協(xié)作式的 AR 體驗。

其實在確定下來這些新功能后,我們決定對我們的 AR 平臺以及它蘊含的可能性進行測試。于是我們開發(fā)了真實的項目,來展示這些體驗都是如何走進現(xiàn)實的。所有的演示都在 I/O 的 AR/VR 沙箱區(qū)域展示。更重要的是,我們完全開放了源代碼,讓您可以看到創(chuàng)建這些體驗的過程是多么簡單。在經(jīng)歷了 I/O 期間的實際操演之后,我們對這些項目的表現(xiàn)非常滿意,并希望在這里與大家分享一些幕后的經(jīng)驗和想法。

Light Board - 多人游戲

Light Board 是一款 AR 多人桌面游戲,兩位玩家在浮動游戲板上相互發(fā)射彩彈。

在創(chuàng)建 Light Board 的時候,我們必須牢記最終用戶是誰,即參加 I/O 的開發(fā)者們。我們希望 Light Board 成為開發(fā)者們在訪問 I/O 沙箱展區(qū)時會去嘗試的簡單而有趣的游戲。開發(fā)者們在路過時只有幾分鐘的時間來進行游戲,所以它需要讓玩家 (甚至非玩家) 來快速上手,而無需經(jīng)過復(fù)雜的設(shè)置過程。

所以視覺設(shè)計是我們對 Light Board 的關(guān)注重點之一。我們對游戲視覺的要求是:與 I/O 2018 現(xiàn)場的裝飾設(shè)計風格保持一致。這樣一來,我們的應(yīng)用就像是與會者在身邊看到的內(nèi)容的延伸。因此,我們的設(shè)計理念中包含?3 個目標明快的色調(diào)簡單的圖形自然的實體材質(zhì)。


△? I/O 2018 中 AR/VR Sandbox 展區(qū)的設(shè)計
?Light Board 游戲桌面的主視覺設(shè)計。注意兩者之間保持著風格和元素的延續(xù)。

Light Board 的這些設(shè)計是在 Maya 和 Cinema 4D 中創(chuàng)建的。我們使用 Substance Painter 為模型創(chuàng)建了基于實物的材質(zhì)。連續(xù)迭代對開發(fā)來說至關(guān)重要,對創(chuàng)建美術(shù)內(nèi)容來說同樣如此??紤]到這一點,即使對于這個相對簡單的項目,我們也會仔細跟蹤設(shè)計工作流中的細節(jié)變化。這樣一來,我們就能夠在完成最終設(shè)計方案之前快速嘗試不同的外觀和桌面樣式。

在開發(fā)方面,我們選擇 Unity 游戲引擎作為開發(fā)環(huán)境。Unity 賦予了我們一些重要優(yōu)勢。首先,我們可以很容易地立即獲得美觀的 3D 圖形并加以運行。其次,由于引擎組件已經(jīng)解決了基礎(chǔ)的工作,所以我們可以立即開始在游戲的玩法邏輯上進行代碼迭代。與前面提到的視覺設(shè)計一樣,完善的底層和工作流管理使得我們可以在做出最終決定之前測試許多玩法選項 (這里的工作很像游戲領(lǐng)域的關(guān)卡設(shè)計師來調(diào)校和打磨關(guān)卡方案)。此外,只需多處理一點點工作,Unity 就可以支持 Android 和 iOS 系統(tǒng)。

為了實現(xiàn)實時多人游戲,我們使用了 Firebase 實時數(shù)據(jù)庫。我們一度很擔心 I/O 期間的網(wǎng)絡(luò)性能表現(xiàn),并認為提升數(shù)據(jù)庫的穩(wěn)定性會讓游戲更能容忍網(wǎng)絡(luò)的不良狀況。事實證明,這套系統(tǒng)一直運行得非常好,我們甚至能在退出后重新加入游戲時不損失任何操作 (做過實時多人對戰(zhàn)的開發(fā)者會知道這有多重要)!

我們在創(chuàng)建 Light Board 的過程中獲得了很多樂趣,也希望大家可以從這個例子中看到,你們不僅可以輕松創(chuàng)建 AR 應(yīng)用,更可以輕松使用 Cloud Anchors 等非??岬男鹿δ堋?/p>

點擊此處鏈接獲得我們的源代碼,試試 Light Board 吧!

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

今年 3 月,我們發(fā)布了 Just a Line,這款 Android 應(yīng)用可以讓您使用手機在空中畫畫。這是一個旨在展示 ARCore 強大功能的簡單實驗性應(yīng)用。在 Google I/O 中,我們將 Cloud Anchors 添加到應(yīng)用中,這樣一來,即使一個人使用 Android 設(shè)備,另一個人使用 iOS 設(shè)備,兩個人也可以同時在同一空間中協(xié)同創(chuàng)作。

兩個版本的應(yīng)用都是原生開發(fā)的:Android 版本采用 Android Studio 編寫,而 iOS 版本則采用 Xcode 編寫。ARCore 的 Cloud Anchors 功能讓 Just a Line 能夠配對兩部手機,允許用戶在同一空間中同時進行繪畫。配對功能適用于 Android 和 iOS 設(shè)備,圖形則通過 Firebase 實時數(shù)據(jù)庫進行同步。

Just a Line 的 Android 源代碼鏈接:點擊此處查看

iOS 版本源代碼鏈接:點擊此處查看

Illusive Images - 活起來的藝術(shù)展

Illusive Images 演示了一個由 AR 技術(shù)增強的畫廊,它由3件作品組成,每件作品都探索了不同的增強圖像 (Augmented Images) 使用案例和用戶體驗。當人們從一邊走到另一邊,在物體周圍走動,或者在特定方向注視時,2D 藝術(shù)作品將與 3D 空間結(jié)合,讓觀眾超越物理框架,置身于藝術(shù)作品的空間。

由于增強圖像的視覺性質(zhì)天然會超越物理規(guī)則,所以我們在不同視覺特征的表現(xiàn)形式上進行了大量嘗試。為了獲得最佳效果,我們通過調(diào)整作品的畫布大小來實現(xiàn)快速迭代,甚至還嘗試著在用戶的屏幕中直接強化亮度和對比度 (ARCore 可以準確識別環(huán)境中的光照等信息)。通過多種手法配合,在不影響設(shè)計意圖的情況下實現(xiàn)最佳的成像效果。

該應(yīng)用是在 Unity 中使用 ARCore 創(chuàng)建的,大部分視覺內(nèi)容則是在 Cinema 4D 中創(chuàng)建的。3D 動畫以 fbx 的格式導(dǎo)入到 Unity 中,在實際使用時展現(xiàn)的樣子完全由用戶和藝術(shù)品的相對位置來驅(qū)動,不得不說這種畫廊看起來真是令人神往。

點擊此處下載源代碼快來親身體驗一下吧

正如本文中提及的,為了讓您的開發(fā)體驗更輕松,我們開源了所有這次 I/O 上的 AR 演示項目,希望您玩得開心。更希望您能在了解到用 ARCore 進行開發(fā)是多么簡單后,能更有自信地開始創(chuàng)建屬于自己的 AR 體驗。我們期待著看到來自大家的作品!

請點擊此處查看更多 ARCore 相關(guān)內(nèi)容信息


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容