當前位置:
首頁 > 科技 > VR-AR腳手架: Leap Motion演示堆疊與裝配交互設計

VR-AR腳手架: Leap Motion演示堆疊與裝配交互設計

文章相關引用及參考:映維網


本中文版由Leap Motion官方提供,來自Leap Motion首席VR交互工程師Barrett Fox和VR設計師Martin Schubert,你可以在RoadtoVR看到英文版

(映維網 2018年03月08日) 在VR/AR環境中搭建物體是很神奇的。想像一下,無重力情況下去組裝汽車發動機,搭建靈活的虛擬工作區,或用無限塊磚頭建造虛擬的城堡。在VR/AR的很多場景中都需要移動、組裝虛擬對象,特別是在教育、企業和工業培訓中——更不用說桌面和實時策略遊戲了。

VR-AR腳手架: Leap Motion演示堆疊與裝配交互設計

在最新的交互實驗中,我們(Leap Motion)探索了如何讓搭建、堆疊類交互變得順暢、穩定、有效響應,以及如何在保持完整物理模擬的細微差別和豐富性的同時,快速準確地放置、堆疊和裝配虛擬物體。

1. 挑戰

使用裸手操作符合物理定律的虛擬對象是一項極其複雜的任務。這是我們開發Leap Motion交互引擎的初衷之一,目的是讓用戶在抓取和釋放虛擬物體的過程中感覺自然、真實。

VR-AR腳手架: Leap Motion演示堆疊與裝配交互設計

然而,精確的旋轉、放置和堆疊有物理屬性的物體需要被巧妙地感知。堆疊就是一個很好的例子。

VR-AR腳手架: Leap Motion演示堆疊與裝配交互設計

在 VR 中堆疊不應該讓人感覺像在拆彈。

在現實世界中堆疊物體時,我們可以通過觸覺來感知塔的穩定性。把一塊物體放到塔上時,我們能感覺到物體是何時何地碰觸到了塔結構的。在那一瞬間,是可以實際感受到阻力的。

在 VR 中解決這些問題最簡單的方法是禁用物理,僅是簡單地移動對象。這可以成功消除意外動作(比如碰撞、推)帶來的影響。

VR-AR腳手架: Leap Motion演示堆疊與裝配交互設計

當禁用重力和慣性時,我們可以隨意組裝物體。不過這看起來還是怪怪的。

然而,這個解決方案遠非理想,因為精確的旋轉、放置和對準仍然是一個挑戰。此外,對虛擬對象禁用物理會使得體驗的吸引力大打折扣。VR/AR 先天具有仿造豐富現實的能力,而且只有當你使用自己雙手時才會將這能力完全釋放。

2. 供差遣的腳手架

最佳的 VR/AR 交互通常需要將現實世界的靈感與媒介的獨特可能性相結合。在現實世界中,如何能更容易地組裝東西呢?

VR-AR腳手架: Leap Motion演示堆疊與裝配交互設計

我們想到了用標尺來對齊,和腳手架——在建築工程中輔助材料搭建的臨時結構。

VR-AR腳手架: Leap Motion演示堆疊與裝配交互設計

網格是平面3D 應用程序的一個常見特徵。在 VR中,我們看到早期的例子Google Blocks就很好的運用了這一元素。

VR-AR腳手架: Leap Motion演示堆疊與裝配交互設計

然而,我們並不建議將整個世界放在網格中,而是建議將網格作為可分散的立體工具。這將是一個臨時的,可調整大小的三維網格,來幫助你裝配虛擬對象——你可以把它想成是一個聽候差遣的腳手架!當物體被放置到網格中時,它們就會被一個物理彈簧捕捉到相應位置,並在整個交互過程中保持物理模擬。一旦用戶完成組裝,他們就可以停用網格來釋放彈簧並讓對象返回到無約束的物理模擬中。

要創建這樣一個腳手架系統,我們需要構建兩個組件: (1) 一個可供差遣、可調整大小的3D 網格,(2) 一個可供裝配對象的示例集。

3. 生成一個3D 網格

在需要「腳手架」交互的周圍生成一個視覺網格是簡單而直接的。但是,由於我們希望能夠動態地改變腳手架的尺寸,我們可能需要為腳手架做多個網格部署 。為了優化,我們創建了一個自定義的 GPU Instancing 著色器來呈現我們腳手架網格中的點。這種對相同對象的重複渲染很適合放到 GPU上——它有助於節省 CPU 周期和保持高幀率。

在開發的早期階段,可以對點進行顏色編碼。由於網格能隨時被調整大小,顏色有助於識別我們正在破壞和重新創建的內容,同時了解我們的點是否有序。(當然這也很漂亮,我們喜歡彩虹的東西)

VR-AR腳手架: Leap Motion演示堆疊與裝配交互設計

4. 基於著色器的網格懸停反饋

讓VR環境中讓儘可能多的事物能對我們的動作有所反饋,一直以來都是我們工作的努力方向,因為這能夠讓 VR 這樣神奇的媒介變得更有存在感、更有魔力。另外,VR 缺乏我們在現實世界中所依賴的許多深度線索,虛擬物體的反饋也可以幫助我們了解自己身體不同部位在VR中的相對位置。

在這一想法驅動下,我們在做完一個立方體網格後再度發散。由於我們使用了自定義著色器來呈現網格點,所以我們可以為著色器添加功能,以幫助用戶更好地了解他們手的位置和深度—— 當你的手靠近時,我們的網格點就會變大發光,使反饋更明顯,用戶更方便使用。

VR-AR腳手架: Leap Motion演示堆疊與裝配交互設計

5. 創造能與腳手架互動的立方體,和他們的「思想」

要想創建一個可以放置在網格中(並對齊)的物體,首先要添加 InteractionBehaviour 組件到我們的立方體模型中。與Leap Motion交互引擎相結合,它可以解決重要的任務——讓這個物體可被抓取。為了是立方體能與網格交互,我們創建並添加了另一個 Monobehaviour 組件(可以叫它 ScaffoldBehaviour)。這種Behavior能儘可能多地處理立方體特定的邏輯,使得網格保持簡單易用。

與網格本身一樣,我們已經學會了思考我們交互的作用以及交互本身。我們設計了交互邏輯,來創建和控制立方體的「思想」,這樣你就可以很容易地知道當你釋放它時,立方體會跑去哪裡:

VR-AR腳手架: Leap Motion演示堆疊與裝配交互設計

6. 使用Leap Motion交互引擎把手(Handles)工具調整網格大小

用戶通過建立把手來抓取和拖動,可以調整腳手架大小以適應特定區域。我們創建了帶有交互引擎行為的球形把手,來限制它們在控制軸上的移動。這樣,如果用戶在腳手架中放置立方體,並拖動把手使網格變小,這個立方塊就會被丟棄。反之,如果拖動把手讓網格變大,這些已放置在網格點上的立方體,會迅速就位!

7. Widget部件的階段、狀態和形狀

現在,我們有了一個可調整大小的3D 網格,而且能夠顯示對象的目標位置,是時候將此功能捆綁到一個部件中。我們希望能夠使用多個腳手架,而且能釋放一個腳手架部件,使它可以自動移到最近的表面,自動對齊,並自動著陸。為了管理此高級功能帶來的所有狀態更改,我們創建了一個腳手架分類,以置頂並控制其他分類。

為了這個功能,我們有一個具有四個狀態的簡單狀態機(state machine):

  • 已錨定: 所有腳手架的功能都將被隱藏,除了可被抓取的圖標。

  • 保持: 將顯示腳手架的網格和把手。我們運行邏輯來尋找合適的平面

  • 著陸: 當腳手架被放走時,它將動畫至與最近的表面對齊。

  • 部署中: 這是腳手架網格及其把手的主要活動狀態。

部署前的錨定階段是網格的完全收縮狀態。 它可連接到浮動的手菜單插槽,或放置在環境中的某個位置,可以隨時拾取。在這種狀態下,我們將小部件縮小到3D 圖標,僅有三個彩色球體和一個較大的白色錨球。

VR-AR腳手架: Leap Motion演示堆疊與裝配交互設計

一旦你拿起圖標小部件,我們就進入到保持/放置狀態。圖標成為完整的功能小部件,其紅色,綠色和藍色軸把手顯現出來。在握住它的時候,我們從小部件中投出射線來尋找合適的放置面。旋轉小部件可以讓你瞄準射線。

在位置命中時,我們將顯示與目標表面對齊的展開的小部件。當指向一個可行的表面時,鬆開小部件,就可將小部件動畫到其目標位置,然後自動展開坐標軸,生成3D 腳手架。

VR-AR腳手架: Leap Motion演示堆疊與裝配交互設計

部署好的小部件需要一些功能: 通過推或抓取軸把手來調整每個軸的長短,拾取整個腳手架並將其放置在其他位置的方法,以及停用/重新激活腳手架的方法。

小部件本身的形狀經歷了幾次迭代,我們從捲尺和其他手持式建築輔助工具,以及一些軟體中汲取靈感,最後打磨出了紅、綠、藍三個軸把手用來直接交互,白色的錨,以及白色結構來暗指方向。

VR-AR腳手架: Leap Motion演示堆疊與裝配交互設計

你可以左右推動、抓取、拉動彩色的軸把手:

VR-AR腳手架: Leap Motion演示堆疊與裝配交互設計

抓住較大的白色錨,可以拾起、移動整個小部件和腳手架。這會暫時讓小部件返回到保持/放置狀態,並投射新的可行目標位置。

VR-AR腳手架: Leap Motion演示堆疊與裝配交互設計

按一下開關,三個軸可以收回,整個腳手架停用:

VR-AR腳手架: Leap Motion演示堆疊與裝配交互設計

終於我們到了有趣的環節——裝配物體,完了再拆卸他們!網格單元的大小是可定義的,我們把它設置成雙手便於操作的大小——大於樂高積木,小於磚塊。我們建了一些簡單的形狀模型,並創建了一個小的傾斜環境來安裝和拆卸組件。現在嘗試下快速而準確地裝配。

當你的手接近一個形狀時,它的顏色會輕微變亮,越接近越亮。當你選擇它時,它會變亮,讓你清楚地知道它被 「抓住」 了:

VR-AR腳手架: Leap Motion演示堆疊與裝配交互設計

當你手拿著一個形狀物體進入網格,會出現另一個淺白的形狀,顯示最接近的可行位置和旋轉方案。這個時候釋放形狀,他就會移動到淺白形狀的位置。如果形狀物體與被佔據的空間相交,淺色的形狀會變成紅色。這時釋放的話,形狀物體就會直接從手上掉下來。

VR-AR腳手架: Leap Motion演示堆疊與裝配交互設計

一旦一個物體被拉到了網格里,它們的角上會出現凹槽動畫,營造一種他們被安在腳手架上的感覺:

VR-AR腳手架: Leap Motion演示堆疊與裝配交互設計

VR-AR腳手架: Leap Motion演示堆疊與裝配交互設計

最後也可能最重要的一環,就是調整整個互動的物理感。舉個例子,下面是我們將一個物體安在腳手架後禁用物理時它的樣子。

VR-AR腳手架: Leap Motion演示堆疊與裝配交互設計

缺少了和物體對象的互動,會給用戶空洞和不滿意的感覺。一會兒碰的上,一會兒碰不上的交互規則切換使得體驗的連貫性被打破。如果我們添加些彈簧,保持物體的交互連貫性後會發生什麼呢?

VR-AR腳手架: Leap Motion演示堆疊與裝配交互設計

是不是好多了!現在網格更像是一個結構化的力場,將物體牽在它的位置上。但這時需要注意,因為物體間也可以相互碰撞,所以當我們干擾整個結構時,這些物體也可能會互相干擾,因為它們的彈簧正試圖將它們推回到原位。

VR-AR腳手架: Leap Motion演示堆疊與裝配交互設計

幸運的是,在 VR 中我們可以簡單地使用分層功能使安在網格中的物體只能和手,而不能和其他物體碰撞。

VR-AR腳手架: Leap Motion演示堆疊與裝配交互設計

這樣整個交互過程中既兼顧物理屬性,也不會因為碰撞混亂而犧牲速度或精確度。現在是堆積木表演時間啦!

VR-AR腳手架: Leap Motion演示堆疊與裝配交互設計

您對VR/AR中的堆疊和裝配有何看法?您希望在哪些應用程序中使用這個功能?在評論中讓我們知道!如果您想嘗試下Demo,請訪問下周的Leap Motion博客 。我們將分享這個演示以及詳盡說明它是怎麼做出來的。

VR-AR腳手架: Leap Motion演示堆疊與裝配交互設計

VR-AR腳手架: Leap Motion演示堆疊與裝配交互設計

VR-AR腳手架: Leap Motion演示堆疊與裝配交互設計

VR-AR腳手架: Leap Motion演示堆疊與裝配交互設計

圖片版權: Leap Motion,CanStock,Medium,Google,Sunghoon Jung,Epic Games

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 映維網VR 的精彩文章:

Magic Leap與NBA合作,為球迷帶來沉浸式比賽觀影
張嘉臨離職帶來震蕩,HTC美國團隊已經開始裁員

TAG:映維網VR |