史上第一次 AR 多用戶交互體驗是如何實現的?這不是黑科技
受當前技術和設計的限制,在同一AR場景中實現多用戶交互是非常難的——除了基礎圖層,目前的設備很難直接對周邊環境進行識別,更別提(出現在畫面當中的)定位其他設備。而且你很輕易就發現,每次打開AR應用的時候,場景都會進行重置,這從AR應用普及層面來看,其實是個大問題。
作為Fitness AR的創始人之一,在攜Fitness AR團隊加入Mapbox 之後,Adam Debreczeni 和團隊小夥伴們仍舊在探究如何利用工具幫助人們高效協作的問題。
於是,基於Mapbox Unity SDK, Adam和AR團隊的小夥伴們一起創造了史上第一個 AR多用戶交互體驗。戳視頻感受一下。
https://www.zhihu.com/video/942799768557277184?? 他們是如何做到的?
???? step 1 從實體工具認知開始
幾年以前,如果你打算跟朋友一起出門旅行,那你首先要做的首先是買一張地圖。從現今的角度來看,你們的線路規劃以及地點標記這樣的行為,其實就是一種「沉浸式」體驗——因為你的身體,比如你的雙手完全參與其中。
而事實是,我們從小到大都在進行這樣的訓練——我們在以各種各樣的方式與物理世界發生著關聯與互動。「我們希望在進行交互和AR設計的時候,能一直銘記這個道理」,Adam 希望自己做出來的產品,是可以讓用戶迅速獲得代入感的——可以就像人們在現實世界當中隨手拿起一根筆給地圖標標記那樣簡單。
所以這就觸發了一系列,會讓我們在進行設計時會思考的問題??
- 在AR實時場景當中,對數字地圖進行隨手標記是怎樣的一種體驗?
- 當多台設備同時出現在一個場景當中的時候,如何實現多台設備同時輸入?
- 如果你與朋友們處在不同的位置,你們如何共享彼此的屏幕?
- 如何在像手機屏幕這樣的平面上打破2D標記工具的限制,比如保證手指精確地操控屏幕其實是個難題。
???? step 2 多人共享一個AR場景
蘋果ARKit 和Google ARCore 的發布為開發者們提供了非常便捷的AR開發工具。但是,這兩個開發工具所提供的追蹤功能,實在是非常簡單粗暴,對我們開發多用戶交互體驗來說,製造了不小的困難。
所以我們的解決方案是——收集設備檢測平面信息的反饋。根據反饋當中的距離、角度、和位置數據這些信息,我們就可以建立起設備相對定位的3D模型。當在不同的設備間分享這些數據的時候,設備將獲得識別彼此位置的能力。
我們利用Mapbox Unity SDK 來固定設備的3D模型在地圖上的位置。如圖所示,在我們利用Unity SDK 創建了一張地圖,一張可以被AR設備(圖中太空人)實時探索的地圖。
在手機上也可以建立demo,在AR中體驗。
https://www.zhihu.com/video/942800019796021248 因為所有設備間的通訊都是通過伺服器實現的,所以即便持有AR設備(如手機)的人不在畫面當中,依舊可以實現人物「在線」。 https://www.zhihu.com/video/942812464094732288???? Step 3 3D互動的實現
在利用ARKit 和 ARCore 進行開發時,設備將既是屏幕又是控制器。當你想選擇地圖上某一點時,選中輕觸就可以了。計算機語言當中,對輕觸這一動作在3D環境中的編譯和呈現叫做光線透射。傳統意義上來說,在有精確控制器的前提下,這種方法是奏效的,但是手指操作手機屏幕時,精確度確實沒有那麼高。
我們通過用錐形體環境模型來增加面積,代替固定尺寸的環境模型,將光線透射這一概念延伸。
這就保證了定位的精準性——在虛擬物體遠近不同的時候有不同效果的呈現。
https://www.zhihu.com/video/942812768278122496
接下來的幾周時間,我們將對這個demo進行進一步探索,同時也將發布開源項目。如果你想在你的AR 項目當中整合地圖和位置服務,現在就下載Mapbox Unity SDK,開始你的探索吧。
當然我們也歡迎你加入我們一起探索,我們AR/VR Unity 開發工程師職位在招聘??。
推薦閱讀: