對于現有的虛擬現實動作控制器,如果沒有方法可以產生阻力反饋的話,用戶將如何能夠感受到虛擬物體的不同重量呢? 為此,創意公司B-Reel探索了幾個方法,并對外公開了他們的實驗成果,以供其他人共同探討。
本文由B-Reel撰寫,B-Reel是一家創意公司,于1999年在瑞典首都斯德哥爾摩成立。現在該公司擁有170多名設計師、策劃、開發者和策略分析師,在全球范圍內有6個辦事處。對技術和創意的熱愛是這家公司不斷探索未知領域的動力。該公司力求扁平、迅速和有趣的創作流程,確保從創意到制作的整體性。B-Reel的業務范圍包括策略制定、理念構思、設計、編程、動畫制作、導演和問題解決。
在過去一年中,從內部項目,到與谷歌I/O大會的Google Dayream,我們一直熱衷于進行虛擬現實相關的實驗。我們堅定不移地相信,虛擬現實的未來很光明,處處充滿著機遇。
在以往的VR嘗試中,我們通過制作一些獨立的體驗,進一步了解到了這種媒介的制作流程和具體要求。現在,我們希望更加深入地發掘提升虛擬現實體驗的基本交互原則。Daydream團隊采用的實用性虛擬現實平臺對我們產生了很大的啟發,而這種平臺的實現則需要上面提到的交互。于是,我們決定先對某種特定的交互進行單獨的探索。
視覺交互模型 vs 物理交互模型
目前,大部分實用性VR界面都是通過漂浮在半空的簡單2D平面固定的。但如果是VR游戲的話,它的界面顯然會有更少的視覺交互,更多的物理交互。以《Cosmic Trip》為例,這款游戲巧妙地采用了物理按鈕來作為菜單導航;而《Job Simulator》則幾乎完全摒棄了指向—點擊這種傳統的交互范式。
Cosmic Trip (左) Job Simulator (右)
我們以此前提進行了頭腦風暴,然后得出了一個非常吸引人的想法——我們可以模擬出與VR物體交互時的重量感。當用戶撿起物體的時候,我們能否通過調整用戶的動作速度讓其感覺到物體的重量區別呢?更重的物體撿起來會更慢,而更輕的物體則可以用正常的速度撿起來。雖然這不算是什么創新,或許也不能直接應用在實用性的場景中,但我們覺得這個想法是非常值得探索的。
我們希望可以想出一個方法,可以應用在所有使用動作控制器的平臺上:從Daydream的仿Wii控制器,到Vive和Rift這種高級的房間追蹤控制器。于是,我們決定先為最先進的平臺進行設計(在Oculus Touch推出之前,我們先以Vive為基準),然后為Daydream探索出簡化的方式,最后是為Gear VR和Cardboard設計出基于注視點的控制。
VR動作控制器
至于開發軟件,我們不知道該選擇熟悉的Unity引擎,還是渲染能力更強大的Unreal引擎。目前我們還是選擇了Unity,希望在未來可以更多地嘗試Unreal引擎。
確立目標
我們之前的虛擬現實項目都做得比較隨意,所以它們并沒有什么重復利用的價值。所以這一次我們準備為自己定下更高的目標。下面是我們至少要達到的成功標準:
建立Unity引擎的協作流程,同時讓更多團隊成員熟悉這個流程。
制作一個內部使用的基本“樣板”環境,以便我們未來可以快速建立和進行VR實驗
研究過程
決定好方向和目標之后,我們組建起了一支團隊:3位3D/動作藝術家、2位設計師、1位創意技術員。我們使用了Git(YiViAn注:Git是一款免費、開源的分布式版本控制系統)作為不同設備之間交流和分享資源的工具。各個場景每次可由一位成員進行查看與編輯,這時其他人員則負責制作用于主要場景的預制件(prefab)。雖然這種方式比較適合我們這樣的小型團隊,不過我們也在積極探索適合大型團隊和項目進行高效協作的方法。
第一步:成為撿東西的藝術家
首先我們需要明確認識撿起和移動物品的基本物理學原理,否則實現重量反饋將無從談起。而我們很快便發現,這些概念其實都是相通的。跟其他很多東西一樣,VR行業內還沒有形成實現這種動作的“正確”標準。所以,我們嘗試了幾個不同的想法,并將它們分成兩類:直接連接(直接提起,形成一個固定的節點);寬松連接(調整速度,或者使用引力把物體牽引至控制器)。不同的連接種類決定了我們模擬重量的方法。
直接連接
對于直接連接,物體會完全匹配控制器的運動。如果控制器移動太快,物體會因為重量問題而跟不上,然后兩者的連接會中斷,物體就會掉在地上。
寬松連接
對于寬松連接,不同重量的物體的引力強度也會不同。更輕的物體反應更快,更接近與直接連接的感覺。更重的物體的移動會滯后于控制器,而且需要更多的“力氣”才能提起來。我們原先并不期待這種效果會很好——因為物體不能完全跟蹤控制器的動作,這是虛擬現實的一個大忌。但是最后我們發現它的效果竟然出奇地真實。我們從中得出了兩個心得:
我們在提起物體的時候仍然會顯示控制器(保持對物體的完全追蹤),避免用戶感覺自己失去了對環境的直接控制。
當控制器接觸到物體的時候,我們就將兩者鎖定在一起,形成一個直接連接。我們加入這個機制的原因是,我們發現重量感是在“撿起”動作發生的時候最有用,隨后它就只能起到分散用戶注意力的作用。
第二步:探索其他感官提示
除了撿起和抓取這兩個機制外,我們覺得也有必要研究一下其他可以幫助反映物體重量的反饋形式。重量感可以通過兩種形式體現:視覺反饋和觸覺反饋。當控制器接近特定物體的張力臨界值時,我們試圖利用這兩種反饋來加強用戶所能感受到的“拉扯感”。
視覺反饋取決于連接的種類。對于直接連接,我們嘗試了多種可以提示控制器速度的指示器。我們發現越簡單的界面的效果會越好,于是我們決定使用基本的紅綠指示器,并將其連接在控制器上,隨著物體的速度逐漸到達臨界值,指示器的顏色也會從綠色變成紅色。在寬松連接中,控制器和物體之間就像是被一根“橡皮筋”連接著,所以指示器的顏色將能更加形象地反映出張力的變化。
指示器
在觸覺反饋方面,我們將視覺指示器的邏輯應用在了控制器的振動上。當用戶接近張力的臨界值時,控制器的振動強度會加大。這種方式雖然簡單,但很有效。
第三步:測試、調整、再測試
在如此多的影響因素之下,我們似乎有無數個需要測試的組合。所以為了更好地測試和比較不同的組合,我們開始在同一個環境中使用不同的配置,遵循先測試,再調整,然后在測試的原則。
最終,我們根據“撿起”這個動作,選定了一些最能反映出各種因素的影響的方法。這些方法之間的最要區別甚至還不是物理學規則的不同——它們主要體現在物理交互的視覺和觸覺反饋。
直接提起物體連接到控制器,但通過靜態碰撞器來固定。這是撿起東西最簡單的形式,沒有任何的重量模擬。
帶觸覺反饋的固定節點連接到控制器的物體在碰撞的時候會改變位置。如果控制器移動得太快,物體會由于自身的重力而掉落。在接近臨界速度的過程中,控制器的振動會越來越強烈。
帶視覺反饋的固定節點連接到控制器的物體在碰撞的時候會改變位置。如果控制器移動得太快,物體會由于自身的重力而掉落。在控制器接近臨界速度的過程中,視覺指示器的顏色和讀數會發生變化。
同時帶視覺反饋和觸覺反饋的固定節點連接到控制器的物體在碰撞的時候會改變位置。如果控制器移動得太快,物體會由于自身的重力而掉落。在控制器接近臨界速度的過程中,視覺指示器的顏色和讀數會發生變化,控制器的振動會越來越強烈。
張力物體通過張力牽引至控制器,當物體接近控制器的時候速度會增加。
速率(張力太大時連接會中斷)物體越接近控制器,它的速度會越快。如果控制器與物體之間的張力超過臨界值,物體會由于自身的重量而掉落。
速率(連接永遠不會斷開)物體越接近控制器,它的速度會越快,無論張力大小如何,物體永遠都不會掉落。
此時,我們想聽取一些來自團隊外部的意見,看看什么因素是有幫助的,起反作用的,或者沒必要的。
我們制作了兩個用于用戶測試的場景。我們可以看到下面兩張圖片,用戶四周都設置了7個架子。在第一個場景中,每個架子前面都有一個物體,測試者可以采用不同的方法撿起這些物體,然后直接比較它們的感受。在他們逐一嘗試這些方法的時候,我們會詢問一系列的問題,如:哪一個物體感覺最重?如果你需要撿起大量物體,你最喜歡使用哪一個方法?哪一個方法的感覺最自然?
第二個場景中,我們在每一個架子前加入了多個輕重不一的物體。這樣用戶就可以了解到哪一種方法可以更好地表現出各個物體之間的重量差異,然后在相同的環境中比較其他方法的區別。
心得總結
雖然我們可以從用戶測試中發現一些比較明顯的傾向,但是沒有得出一個普遍認可的最佳配置。但這也是我們意料之中的結果,對于這些實驗,我們并不認為可以找到一個“正確”的答案。但從用戶的回復中,我們還是總結出許多經驗。
當連接可以斷開時,寬松連接的效果最好
我們的測試者表示,這種機制能夠最自然地傳達重量感。當物體由于張力的關系不會斷開連接時,用戶會感覺物體像是漂浮在半空一樣,不會對用戶的動作產生反饋。斷開這個連接不僅可以讓物體掉落到地上,而且可以促使用戶有意識地根據物體的感知“重量”來調整自己的動作。
除非對交互很重要,否則重量只會令人感到厭煩
我們的測試者很享受在寬松連接下的交互,許多人都認為這種機制非常有趣好玩。在偶爾使用的情況下,如果要吸引用戶關注某個物品的重量,我們認為寬松連接會是一個不錯的機制,值得進一步研究。
不過,當我們詢問測試者更傾向于使用哪種方法來撿起多個物體時,他們不約而同地選擇了最簡單的直接連接。因為在效率優先的時候,人們就不想被物體的重量拖慢自己的操作速度。
這能為我們以后的項目帶來許多啟發。當需要精確模擬現實的時候,我們可能會直接避免讓用戶撿起體積會重量很大的物體,或者也可以讓他們這樣做。畢竟,虛擬現實最令人興奮的地方是,它可以讓人看到和做到現實生活中不可能的事情。
越多反饋越好,不要忘記聲音
我們的測試者都希望得到更多的反饋,但有一個例外:在能夠理解視覺反饋和動作之間的聯系的前提下,加入視覺和觸覺反饋會有不錯的效果,否則視覺反饋只會起到分散注意力的效果。
再詳細一點來說,我們可以想象一下聲音可以如何加強環境的物理性質,也就是說如何讓環境變得更加真實,更有沉浸感。我們在決定為測試加入聲音的時候并沒有考慮太多,但事實證明聲音對用戶的重量感知有很大的影響。重物掉落在地面所發出的聲音,或者物體之間互相摩擦的聲音都會加強用戶對重量區別的感知。
在虛擬現實中,“基本”的交互遠比想象中的復雜
與基于屏幕的傳統UX(用戶體驗)相比,基于物理學原理的交互模型的設計會復雜得多,因為有許多因素都會影響到最終的交互效果。你在設計交互發生的框架時肯定會發生一些無法控制的問題,而交互本身的設計就不會出現這種情況。游戲行業在這個問題的處理上已經有多年的經驗,而我們才剛剛開始趕上來。
最后的一些想法
在這個過程當中,我們得到了很多關于重量模擬交互的寶貴經驗。我們知道時間總是有限的,而且要把每一個交互的所有元素都分解出來是一項不可能完成的任務。不過,識別和解析重復的交互不僅可以優化它們,也能讓我們更好地處理以后肯定會遇到的其他特定交互。你會發現一些在理論上可行的方法卻不能應用于實踐。
我們還想強調這些實驗的次要目標也是非常重要的(對我們來說,這加深了我們對Unity的熟悉,并提供了一個基本的模板環境)。設定具體、可實現的目標是很有意義的。
那我們的建議是什么呢?我們發現這一切其實都是取決于體驗本身。在許多情況下,我們為模擬重量而加入的限制都是不受歡迎的,因為它們降低了用戶的操作效率,并迫使他們將注意力集中在交互本身,而不是他們正在進行的動作。所以,除非你有理由把用戶的注意力集中在物體的重量上,否則最好還是使用更簡單的直接連接。
話雖如此,我們仍然認為寬松連接(在張力過大時斷開連接)是有一定前景的。這背后還有很多值得斟酌和探討的地方,同時還要考慮很多其他的影響因素:不規則的物體形狀,物體移動的起始位置,還有是否使用雙手撿起物體。這只是開始而已,我們非常期待未來更多的配置方法。
評論
查看更多