當前位置:
首頁 > 科技 > 全篇乾貨!Oculus詳解VR設計過程中15個問題的處理方法

全篇乾貨!Oculus詳解VR設計過程中15個問題的處理方法

全篇乾貨!Oculus詳解VR設計過程中15個問題的處理方法

近日,Oculus負責開發者聯絡工作的Chris Pruett(他自身也是一名遊戲開發者,創建了自己的遊戲工作室)發布了一篇文章,總結了過去一年中Oculus開發者在遊戲設計的過程中遇到的各種問題和相應的處理辦法。文章內容極其豐富,包括從入門規則到具體動作設計的大量乾貨,並且給出了國外開發者的許多作品作為相應技術的案例。

VR入門:如何處理相對運動錯覺導致的眩暈感(vection)?

多年來,VR開發者一直在討論相對運動錯覺導致的眩暈感。這是前庭本體錯覺(vestibular illusion)引起的噁心不適的感覺。這裡沒有必要多說,不過如果你對暈3D的生理學原理感興趣的話,可以看看Oculus感知科學家Richard Yao的演講《Oculus Connect: The Human Visual System and the Rift》。

最基礎而言,避免相對運動錯覺導致的眩暈感需要一個好的頭顯設備,它要能在很短的時間內形成清晰聚焦的立體圖像,而且成像速度和頭部運動的延遲要控制到最小。早期的VR設備在這方面做得不盡如人意,但現在的設備已經可以做到這一點。

也就是說,必要的硬體條件已經具備了,那麼是否會產生眩暈感這個問題就直接落到軟體的設計上。

理解相對運動錯覺/眩暈感有助於奠定最基礎的VR設計原則,尤其是動作設計。

VR動作設計的基礎原則:

1、不要突然加速、減速或者旋轉鏡頭。前庭系統對加速和旋轉很敏感,但對勻速運動不會有什麼反應。

2、不要固定鏡頭或者隨意運動鏡頭。鏡頭的位置取決於玩家,鏡頭的運動應該由玩家頭頸的運動來控制。

3、限制玩家次級視野或者說周邊視野中的圖像精度/像素流(pixel flow)。

4、決不能卡幀跳幀!你的應用必須一直保持穩定的高幀率。

VR設計並沒有什麼鐵律,但是遵循這些基本原則是創造使人舒適的VR應用的第一步。

通用VR設計

今天VR開發者面臨的最普遍的問題,就是如何讓玩家在虛擬空間中移動而不引起暈眩。

在早期的VR應用中,我們發現許多開發者是這樣處理這個問題的:固定鏡頭,完全不動。玩家要麼站著不動,要麼就通過傳送的方式來移動。這樣就避免了運動,也就不會引起不適。

但現在,一些應用已經逐漸找到了實現平滑流暢運動的同時、又能避免引起不適的方法。

勻速運動(Linear Speed)

我發現,擬真運動實現得比較好的移動系統有一個共同點,就是勻速運動。

鏡頭可以平滑地向前移動,但絕不會加速或者減速:它要麼勻速運動,要麼就不動。

管狀視野(Tunnel Vision)

另一個逐漸興起的解決辦法是管狀視野,也就是將視野邊緣逐漸暈開,將中心視野範圍縮小,減少視野邊緣的視覺接收。

有些遊戲在移動的時候採取這種方法,還有一些則通過特殊的場景/視角設計來實現這一點。

比如說,視角設計在潛水頭盔中,或者場景設計為一個黑暗的房間,中間只有一束光。

這些做法都可以在不必過於明顯地模糊視野的同時,有效減少邊緣視野中的像素量。

這種系統設計的一個最生動複雜的例子是育碧的Eagle Flight.

分段轉向(Snap Turns)

平滑旋轉視角很容易引起相對運動錯覺暈眩,為此,開發者找到了一種更加舒適的轉向方式:分段轉向。

玩家只要向左或向右推搖桿,視角就迅速向一側跳轉,通常是一次轉30度到40度。

這種方式避免了主體接收到指示旋轉的視覺信息,前庭系統也就不會作出反應。分段轉向可以說是非常舒適了。

變化盲視(Change Blindness)

分段轉向的做法其實是在利用一種更深層的心理模式,叫做「變化盲視」(Change Blindness,一種心理現象)。

要利用變化盲視,就是把那些很可能引起暈眩的視覺信息用黑屏或者迅速切換視角的的方式給迴避掉。在認知流中,大腦會自動填補上這些空白(比如你通常意識不到自己眨眼)。這樣,我們就可以利用這一能力,把某些容易引起暈眩的動作用場景切換給切掉。

舉個例子,比如說有個人要打開車門坐到駕駛座上。實現這一連串動作顯然會違背上面列出的VR動作設計基礎原則,很可能導致暈眩。這時我們就可以直接從車門打開,切到已經在車裡坐好了,中間短暫黑一下屏就行,這樣就會自然多了。

頭部導航(Head Steering)

我們發現有很多應用在設計第一人稱運動的時候,都用玩家頭部的動作來指向。在這樣的系統中,玩家總是朝著他們看向的方向前進,只要轉動脖子就能在整個場景里自由移動。這樣一來,視覺信息和前庭系統接收到的信息之間就不會出現劇烈偏差,因為玩家的頭確實在轉。

Fallen Planet的AFFECTED: The Manor和OZWE的Anshar War 2都採用了這個模式,效果不錯,在Gear VR上的效果尤其好。

景深錯亂問題(Depth Cue Issues)

VR開發初學者常犯的一個錯誤就是把2D的元素直接疊加到3D場景上。

在傳統二維顯示的遊戲中,狀態條或者字幕這些懸浮UI元素很常見,開發者很容易在設計VR作品時直接把這些東西丟到遊戲里飄著。

但是,如果不好好處理的話,這些懸浮元素很容易引起景深錯亂。

通常來說,懸浮UI元素是無視景深和環境遮擋的(你肯定不會把UI放在前景物體的後面)。但是,在VR環境里,當玩家在立體視覺場景中看到這些懸浮元素時,會下意識地評估這些物體在場景中與自己的距離,而粗暴的疊加在此時就會引起玩家的混淆。

如果把UI元素簡單地設置為疊加在場景之上,那麼很可能本來按距離來說應該在某堵牆之後的東西卻顯示到了牆的前面。這就會導致物體的景深錯亂,引起玩家的不適。

景深錯亂這個問題在射擊瞄準十字線、字幕和其他懸浮UI元素上特別常見。

我們目前為止看到的對這個問題最好的解決方式是,把狀態欄和其他UI元素附著到場景物體之上。比如把字幕貼到牆上,把人物的生命條顯示在手臂之上。

把UI元素置入到遊戲世界之中,把它們當成場景中的物體而不是簡單粗暴的疊加在畫面之上,賦予UI元素實際的景深和現場感,這樣就可以避免景深錯亂問題。

空間音效(Spatialized Audio)

2016年開發中的一個關鍵收穫就是,合理使用空間化的聲音效果可以極大增強沉浸感。

空間化音效是指遊戲中物體發出的聲音要在聽覺上展示出方位感,讓它聽上去就是從它在遊戲里的那個方位傳過來的,這能夠使遊戲場景整體的真實感極大地增強。

我們推薦所有的VR開發者一定要使用空間化的音效編輯工具。

並不是說所有的聲音都要空間化。環境雜訊、背景音樂和其他沒有明顯空間聲源的聲音不需要空間化。但是有明確物體來源的聲音一定要空間化。

利用頭部設備:定位追蹤(Positional Tracking)設計

定位追蹤,也就是使玩家通過移動佩戴了設備的頭部,來改變VR中的鏡頭位置。這一技術是許多VR應用中的最基本的要素。在定位追蹤的設計中我們也會遇到許多問題。

可追蹤區域的大小(Tracked Space Size)

定位追蹤需要玩家在家裡划出一部分空間以供設備定位。但玩家可活動的區域大小差異很大,開發者很難確定到底要設計多大的虛擬空間。

在對Rift用戶的調查中,我們得出的結論是,大部分玩家平均可以提供4平方米的可追蹤空間。如果這個空間是正方形的話,那這個正方形的邊長大概是2米。但實際上玩家所能提供的空間通常是長方形。也有一些玩家能提供比4平方米更大的空間,但是也有相當多的玩家能使用的空間小於4平方米。

在這種背景之下,用戶使用VR的偏好會天差地別。

我們到底應該設計多大範圍?是360度追蹤還是180度追蹤?還是說設計成坐在椅子里就能玩的模式?使用移動VR設備的用戶在運動上可能更受限制,無法完成物理上的運動或者轉向。

不管你最初設計產品的時候,是希望玩家站著玩、還是坐著玩,玩家實際上只會選擇他們覺得最舒服最合適的方式來玩。

你的作品能夠適應越多的使用場景,你就能得到更廣的用戶群體。

多邊形剛體內部的處理(Polygon Clipping)

我們沒辦法阻止玩家在虛擬世界中把頭伸到牆裡去,但如果在鏡頭與牆交叉的時候直接切斷顯示的話,會導致很不舒適的體驗。

通常的做法是在探知到玩家頭要和虛擬的牆撞上的時候就開始逐漸減暗畫面,頭進入牆越深畫面就越暗,到能夠穿透物體的時候,屏幕就徹底暗下來。

這麼設計的好處是,玩家很快就會意識到,如果隨意穿透虛擬場景中的物體,就會導致畫面丟失,從而玩家就會自我約束。

Creative Assembly的Alien Isolation是最早一批使用這個處理方式的作品之一。

鏡頭基準選擇(Camera Origin Choices)

在開發VR應用的時候,我們可以選擇把鏡頭基準設置為玩家所處的地面,或者設置為玩家眼睛的高度,這兩種做法分別稱為地面基準或者眼高基準。兩種選擇都各有自身的優劣。

把地面作為基準可以使玩家在虛擬世界中的視角高度與現實世界中的視角高度一致,這有利於提高沉浸感,因為這是玩家習慣的視角。

但這樣一來,你就無法控制遊戲角色在虛擬世界中的身高。如果你要創造角色的虛擬身體,你得讓這具身體能夠隨玩家的高度變化而適當縮放,以匹配玩家的身高。

如果把眼睛的高度作為鏡頭基準,那麼開發者就可以控制玩家在虛擬世界中的視角高度。這對於生成特殊高度的遊戲角色很有用,而且還可以給玩家提供不同於現實生活體驗的視角。比如說,你可以向玩家展示,在孩子眼裡世界是怎樣的。(筆者認為,這種做法的要點不僅在於模擬不同身高的人類,更有趣的是可以模擬更多樣的角色設置,比如矮人、巨怪、動物或者會飛的生物——鳥類、精靈、天使,等等。)

眼高基準也常用在以坐姿體驗的遊戲中,EVE: Valkyrie就是一個絕佳的例子。

但是,使用眼高基準的問題在於,開發者無法得知物理世界中真實地面的位置,這會使得類似卧倒、蹲踞和從地面撿起東西這一類的互動設計變得更加複雜。

虛擬人物(Virtual Humans)

我們可以利用定位追蹤得到的數據,使NPC更加栩栩如生。關於如何實現這一系統的細節信息,請參看我們之前的文章《開發者視角下的NPC設計:以Dead and Buried為例》(筆者註:這篇文章我們後續會安排編髮,請關注我們網站或公眾號)

在設計NPC的時候,一定要加上最基本的頭部和眼部追蹤的動作,NPC要對玩家位置的變化有所反應。在VR里,NPC要是靜止不動,看上去就會像個塑料模特一樣,很尷尬。

利用手部控制器:控制器追蹤(Tracked Controllers)設計

去年VR界的一件大事是,像Oculus Touch這樣六度自由(上下、前後、左右的移動和旋轉)控制器開始出現。新控制器帶來了一系列有趣的設計挑戰,而開發者們也創造出了豐富的處理方法。

手部同步(Hand Registration)

Oculus Touch讓我們能夠在VR中得到一雙手,不僅僅是說你可以抓起東西,而是你真的可以擁有一雙手。

處理得好的話,這雙虛擬的手能夠讓玩家在虛擬世界中如臂使指,畢竟我們都知道怎麼使用自己的手。但如果處理得不好,這雙手很可能會導致手的「恐怖谷效應」:過於逼真但又離真實的手還有距離,這樣的手可能反而引起玩家的不適。

要設計出合適的虛擬雙手,需要做到優秀的手部同步。

手部同步的效果是,大腦在看到這雙虛擬的手時,能夠很快把它們當成是玩家真實的手的替代。要達到這一點,需要滿足以下要求:

虛擬手的位置和動向,必須與真實手的位置和動向高度一致。

要做到這一點,有一個方法:先做一個控制器的模型,然後戴上頭顯,從頭顯下面的縫隙中看著真實的控制器,把控制器緩緩向上移動,對比真實控制器和控制器模型的移動,保證一致。如果完成得好的話,你應該可以看到控制器從現實世界中無縫進入到虛擬場景。做到這一點之後,下一步就就是在控制器模型上做出手的模型,然後把控制器模型給隱藏掉。

測試同步的一個簡單方法是「手背測試」:在VR場景中用一手食指緩緩划過另一隻手的手背,看你感受到的觸覺位置和在VR場景中看到的虛擬手的圖像動作位置是否匹配。

手部設計(Hand Design)

不推薦設計有血有肉、過於擬真的手,做出來可能會不像活人的肢體,導致不適。(筆者註:參考上文提到的「恐怖谷效應」,可以查一下這個效應的詳細說明。)

可以設計一雙比較大的手,或者穿戴在手部的裝備,大腦會比較好接受,人們會覺得自己的手在那些裝備的裡面。太小的手就不合適了。

Oculus使用的手部設計是一雙優雅的半透明手,可以很好地表現各種人的手,無論他們是什麼性別、年齡、種族。

手與物體的干涉(Hand-Object Intersection)

就和頭部的定位追蹤一樣,你也無法阻止玩家用虛擬手伸到各種虛擬物品之中。如果用前面那種處理頭部與物體干涉的方法來處理的話,會導致玩家覺得手部追蹤斷開了,不是很合適。而Oculus使用半透明手的原因之一就是,這樣一雙手即使穿過了什麼物體,看上去也還是很可以接受的。

在這種條件下,一些開發者做出了非常精彩的手部設計。

Bossa Sudio的Surgeon Simulator設計的虛擬手是模擬真實人手的造型,但當玩家把手伸到物體內部的時候,手就會變成透明的骨骼狀。這樣一來,玩家不會覺得手部追蹤斷線,而外觀的變化又提示玩家在這種狀態下,手的動作無法影響到物體。這是開發者用創新來解決VR設計特有問題的一個絕佳案例。

前臂(Forearms)

本體感(Proprioception)是大腦對自身肢體在物理空間位置的內在感知,這種感知即使在看不到肢體的時候也仍然存在(筆者註:比如你閉著眼睛也能準確地摸到自己的耳朵。有人把這種感知能力稱作五感之外的第六種感覺)。

這套感知系統非常精確,使得模擬前臂和肘部的虛擬肢體非常困難:你看到了自己的虛擬肢體,但你感覺不到它們(因為沒有觸覺反饋),本體感也無法定位它們的位置。

通常開發者會以控制器的位置為基點製作反向動力學(IK,Inverse Kinematics,先確定子骨骼位置,反向推導出其所在骨骼鏈上n級父骨骼位置,從而確定整條骨骼鏈的方法)肢體,但是這常常會導致虛擬肢體位置和實際肢體位置之間的嚴重偏差,而本體感可以感知到這一偏差,導致不協調感。

現在也有作品已經做出了可信度很高的前臂和肘部(參見Lone Echo, https://www.loneecho.com/ )。但這個設計問題仍然需要我們高度關注,投入足夠的耐心來處理。做得不好的手臂比沒有手臂更糟糕。

阻力和扭矩(Resistance and Torque)

雖然設備的進步已經使我們擁有了虛擬手,但現在還是沒辦法模擬出操作重物時手部感受到的阻力和力矩。像搬起大石、推動巨大的控制桿這樣的動作,阻力在其中起到了很重要的作用,而我們現在還無法把這些互動做得足夠可信。在操作重物的時候,這些重物就好像是泡沫塑料做的一樣。

不過,從另一方面來考慮,那些不需要很大阻力來實現的動作我們現在已經做得很好了。然後,我們在模擬和控制器形狀相似的物品(比如槍)互動方面也做得很自然。

所以,在設計手部操作的時候,一定要考慮好讓玩家操作什麼樣的物品,來避免無法模擬阻力而產生的不可信感。(筆者註:我認為作者在這裡的意思是,既然沒辦法模擬好對重物的操作,那麼在設計交互的時候,就盡量不要設計操作重物的環節;應該揚長避短,多使用現在已經能夠模擬得比較好的動作。)

另外,要小心處理那些需要雙手的操作。比如舉起很重的箱子,或者使用雙手武器。這些動作在VR里可能會感覺很彆扭,因為玩家沒辦法在空空的兩手之間感受到應有的觸感和阻力,以及雙手操作帶來的限制。

撿/拿東西(Picking Things Up)

在VR里要撿起或者拿起一個什麼東西,最好的方式就是按他們應該持有的姿勢來撿/拿。

沒有人會捏著槍管撿起一把槍。當玩家打算撿起一個有明顯固定握持姿勢的物品,我們就讓物品直接以正確的姿勢出現在玩家手裡。玩家用拿槍的姿勢把手伸過去,想要拿槍,然後槍就在虛擬手裡出現了,用正確的姿勢握好,該是什麼樣就是什麼樣。

如果是沒有明確握持姿勢的物品(比如足球),那就在撿持觸發的時候讓物品出現在玩家手裡。在這種情況下,虛擬手觸碰到物品的位置和方向比較隨意,但只要能拿好不掉,這個效果還是可信的。這種情況下,就不要改變或者修正物品在手中的姿態,拿的時候怎麼拿到的、碰的哪兒,就那麼拿著。

如果手持的東西,手拿它的姿勢還要變化,這就比較麻煩。

舉個例子,早先Oculus測試Touch的時候發現乒乓球拍這東西很難搞,我們接球的時候,總要調整一下球拍在手裡的姿勢。這種角度調整很難靠追蹤控制器的位置變化來實現。

Tripwire』s的Killing Floor: Incursion想出了一個超級簡單但是非常有效的解決辦法。他們的情境是,玩家手裡有一把刀,握著刀柄的時候用來劈砍,捏著刀尖的時候用來投擲。而他們設計的改變姿勢的方式是:要改變拿刀的姿勢,玩家只需要按一下控制器上的按鍵。

這樣,不需要靠什麼手勢識別或者複雜的動作就能實現簡單而可靠的操作。

投擲(Throwing)

要靠追蹤控制器來實現穩定的投擲動作比看上去要難。

早先我們測試手部動作的時候,是通過追蹤手部速度的變化,得出被投擲的物體在離開手的瞬間獲得的平均速度。要得到可信的表現,需要重複模擬很多次,有時還需要一點小花招(比如在有些情境下,我們減小了重力對投擲物的影響)。

這裡主要的收穫是不同的物品需要表現出不同的投擲方式,扔飛盤和扔紙飛機的動態表現是完全不同的,要使得投擲不同物品的動作都足夠可信,需要建立起完備的以物品種類為單位的物理規則來處理投擲動作。

目前在這一點上做得最好的是Owlchemy Labs的 Job Simulator,給幾乎每一種物品都實現了各不相同的物理表現。

總結:

在過去的十二個月中,我們從VR開發者那裡學到了很多,但是這裡說到的各種方法僅僅只是最初級的內容。VR開發最令人興奮的一點就是它的設計語言很大程度上還是空白,留待我們來創造。

今天,開發者們在這片新天地中探索、追尋,為全新的設計挑戰創造解決方法,並且在這個過程中,為未來的VR設計書寫規則。

我們要感謝開發者,從他們身上我們已經學到了很多。但前路漫漫,我們仍需上下求索。

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

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


請您繼續閱讀更多來自 VRZINC 的精彩文章:

三星或將推出基於磁場的VR控制器方案
育碧展示兩款HoloLens遊戲原型
Unity XR Toolkit將於年底前上線,助力VR軟體跨平台開發
谷歌推出AdVR,為VR廣告提供新方案

TAG:VRZINC |

您可能感興趣

VR醫療公司VRHealth與Oculus合作 緩解化療過程中的疼痛
MongoDB系統CentOS 7.1 crash的排障過程
不一樣的Windows,ReactOS系統詳細安裝過程
解析|intel i7 CPU生產全過程圖解
Ultimaker Cura集成了HP 3D掃描軟體,以簡化3D列印過程!
FinnCiti理財遊戲的三個過程
Ryan Reynolds 談論《Pokémon: Detective Pikachu》角色 Pikachu 學習過程
MapReduce中源碼分析(map端的過程)
NBA 2019 全明星賽 Team LeBron 及 Team Giannis 隊長選人過程完整公開
圖解 intel Core i7 CPU生產全過程,漲知識
Photoshop詳解海報合成過程中思路和方法
《idol MOMS》Kang Ta公開H.O.T.重組籌備過程
HttpURLConnection使用過程中踩的坑
新車檢測過程有瑕疵 Suzuki、Mazda、Yamaha排污數據「全造假」
四方框框|Lidia Springer~「GIRL IN MASK」 精彩插圖繪製過程
Kubernetes中Node的網路重啟後,所有Pod無法訪問的調查過程
SAP Fiori實施之Transactional Apps實施全過程
年度最強球鞋!一起感受下Virgil Abloh x Air Jordan 1開箱全過程!
HackTheBox Writeup之拿下Mantis主機許可權過程
MySQL DeadLock故障排查過程