03.05 Oculus Quest手勢追蹤設計官方指南

自從Oculus Quest一體機開始支持手勢識別功能後,一直備受玩家和開發者們期待。儘管準確性和靈敏度有待提高,並且缺乏手柄可以提供的體感反饋,但直接用手勢操作的優勢在於體驗感更自然,在物理模擬交互等場景中沉浸感會更強,是一種很有潛力的VR輸入方式。

Oculus Quest手勢追蹤設計官方指南

不過目前Oculus商店中還沒有支持手勢識別的遊戲,只能通過SideQuest體驗一些還在探索手勢的第三方VR遊戲。為了鼓勵更多開發者探索這項功能,Oculus近期在官網發佈《手勢追蹤設計指南》文檔,通過一些經過驗證的手勢追蹤開發技巧為開發者帶來一些靈感。

Oculus在文檔中寫道:儘管手勢是一種有潛力的新型輸入方式,但由於計算機視覺與定位技術的侷限,手勢的實際應用也受到限制,因此希望通過一些有用的技巧來幫助開發者適應手勢的侷限性。

Oculus Quest手勢追蹤設計官方指南

設計原則

目前,手勢識別可用於一些基本操作,比如:瞄準、選擇、移動、旋轉、縮放等,你可以直接用手去觸碰虛擬物體,也可以像使用星戰中的原力那樣,定位遠處的虛擬物體(Raycast功能,指的是從用戶所在位置向遠處的虛擬場景投射一條線,用於選定遠處的目標)。

Oculus Quest手勢追蹤設計官方指南

與手柄不同的是,手勢操作不涉及物理按鍵,在與虛擬物體交互時難以獲得反饋,可能會讓用戶無法確定手勢可以觸發哪些功能。因此,Oculus建議開發者通過一些持續或明顯的視覺反饋或標記來提示用戶不同手勢的效果。

比如,Oculus將原型的光標做成可縮小的圓點,當你的手指做出捏的動作時,光標會縮小,並改變顏色集中在手所指的目標上,這樣的交互是在提示用戶選擇和確認需要使用捏這個手勢。當你的食指與拇指的指腹碰到一起,會有視覺和音頻來驗證你所做出的選擇。

Oculus Quest手勢追蹤設計官方指南

此外,為了提高手勢輸入的準確性,Oculus將手勢操作的菜單界面限定在二維,而不是像手柄那樣支持6DoF,你可以用手在菜單中進行旋轉、縮放、滑動等動作,不僅準確性得到控制,使用起來也更方便。

Oculus還指出,手勢操作也可以與手柄協同使用,當你需要放下手柄去抓取其他東西時,系統可以自動切換到手勢識別模式,即使沒有手柄也可以用手直接控制菜單,不會打斷VR體驗的沉浸感。對於遊戲等應用來講,也可以設計出手柄和手勢混合的玩法,比如在爬梯子時使用手勢,在攻擊敵人(對輸入的準確性要求更高)時用手柄來模擬武器,還能帶來手勢所沒有的震動反饋。

另一個值得注意的點是,手柄交互並不能直接移植到手勢操作中,開發者需要去考慮手勢作為輸入方式的優勢,尋找在技術侷限下手勢可實現的獨特交互。考慮到手勢輸入缺少手柄的震動反饋,因此在輸入和選擇上也需要去尋找更適合的方式。

應用範例

1)捏

Oculus認為,拇指和食指併攏的手勢最適合用於選擇,尤其是指腹觸碰的觸覺可替代手勢所缺乏的體感反饋。同時,兩個手指捏到一起的動作足夠簡單,方便記憶,而且由於並不是一個常用的手勢,因此不會在無意間觸發。

Oculus Quest手勢追蹤設計官方指南

捏這個動作有三種狀態:指腹靠近、逐漸靠近和完全觸碰,當兩個手指逐漸靠近,代表光標的圓點也會相應縮小,讓你知道系統響應到你的手勢。

2)替代震動反饋

考慮到手勢並不具備手柄的震動反饋,因此利用視覺和聽覺信號來代替體感反饋很重要。Oculus認為,信號的作用是提示用戶手勢的功能,而反饋的作用是驗證交互的狀態。視覺信號可通過變化的形態、色彩、透明度和空間中位置來表現。也可以使用不同音量、音高和音調的提示來提供聲音反饋,提示並幫助用戶自然適應手勢操作。

Oculus從動態的圓形光標(根據手指靠近程度而改變大小)、按鈕(光標瞄準後會產生反應)、虛擬手(畫面出現虛擬手代表正在追蹤手勢)等方面,為用戶提供了一個比較自然有效的手勢交互方案。

同時,拇指和食指靠近時產生的觸覺可看做是按按鈕等交互會產生的無力反饋。

3)Raycasting(遠距離瞄準)

當與遠處的虛擬物體交互時,可使用類似於手柄點選功能的raycasting方式,可更精確定位遠處的物體,從人體工學角度來講也更舒適。

Oculus Quest手勢追蹤設計官方指南

此外,考慮到手在移動時也會帶動身體顫動,可能會讓raycasting的光標產生漂移,因此Oculus將raycasting的起始點固定在身體的特定位置來提高穩定性。當你在站著的時候,起始點設定在肩膀位置,你所選擇的目標通常在肩膀一下。而坐著的時候,目標通常在肩膀以上,所以起始點設定在臀部,體驗感比較舒適。

當然,很多時候無法確定用戶是坐著還是站著,這時候可以自由在兩種模式之間切換,根據注視點角度來調整肩膀或臀部這兩個射線起始點。

4)手勢定位

考慮到Quest頭顯傳感器的定位範圍有限,超出追蹤範圍的手勢將無法識別,因此需要避免用戶將手伸到範圍以外。當然也要記得,傳感器追蹤範圍要大於視場角,即使眼前畫面裡看不到虛擬的手,可能依然能定位到用戶的手。

Oculus Quest手勢追蹤設計官方指南

為了確保雙手得到追蹤,開發者需要考慮控制用戶的手部動作,儘可能讓他們頭顯前方範圍,手掌面對頭顯移動,避免手指被遮擋。同時,也要避免兩隻手之間的遮擋,Oculus建議開發者設計一個只需要單手操作的交互,體驗感會更好。

Oculus Quest手勢追蹤設計官方指南

5)人體工學

當用戶以直立站姿使用VR時,手臂靠近取關,肘部與臀部在一條直線上,這種姿勢體驗手勢操作足夠舒適,傳感器追蹤的效果也比較理想。

Oculus Quest手勢追蹤設計官方指南

總之,手勢交互需要避免對用戶的肌肉產生傷害,避免讓用戶頻繁伸出手臂,儘可能將可交互的目標放在近處,不重要的內容放在遠處。

Oculus Quest手勢追蹤設計官方指南

6)虛擬手

Oculus認為,VR中代表手勢的虛擬手需要滿足兩個基本功能:為用戶提供一種臨場感,幫助瞭解不同手勢的作用。

Oculus Quest手勢追蹤設計官方指南

如果在VR中還原逼真的人手,成本和難度會比較高,尤其是隻有手沒有胳膊可能會讓人覺得好像手與身體分離了,因此在塑造虛擬手的時候需要考慮到最適合體驗內容的形態。開發者如果認為具象化的虛擬手對於沉浸式體驗足夠重要,則需要考慮什麼樣的形式能帶來具象化的體驗感,或者直接為用戶提供可自定義的功能。

當手勢對於遊戲來說主要是輸入方式時,較逼真的虛擬手是理想的選擇,更容易讓用戶清楚瞭解不同手勢的效果,降低手勢操作的錯誤率。

7)控制手勢邏輯

控制手勢邏輯的重要性在於,可降低誤觸的可能,Oculus為不同狀態的手勢提供了一些範例。當用戶的手在追蹤區域內靜止時,為避免手指捲曲的動作產生誤觸,開發者可做出以下設定:當手部在與頭顯達到特定距離,並且在一定時間內沒有移動時,將不再進行追蹤,當手部再次進入追蹤區域內時才會開始識別。

Oculus Quest手勢追蹤設計官方指南

此外,Oculus認為手勢識別的光標或射線並不需要一直出現,只有當食指和拇指靠近並遠離軀幹,與屏幕呈現特定角度時(體現用戶希望與菜單交互的意圖)才出現,好處是避免遮擋視線,打破沉浸感。

Oculus Quest手勢追蹤設計官方指南

那麼在應用中如何用手勢調出系統菜單呢?為了避免用戶誤觸,Oculus設定了兩種邏輯:首先需要舉起手掌並看向它,然後保持捏的姿勢。這樣做的好處是,首先是為手勢提供一個良好的追蹤,其次這並不是一個常見的動作,降低了意外觸發的可能。當進入系統菜單觸發狀態時,虛擬手會發出亮光來提示用戶,這時候如果是誤觸便可以及時放下手臂,同時最後保持捏的動作是為了進一步確認。

Oculus Quest手勢追蹤設計官方指南

交互的關鍵點和注意事項

1)目標距離

在近處的交互範圍,儘可能設置最重要且頻繁使用的目標,對於遠景的目標來說,則需要用射線的方式來選擇,或者提供有一種讓目標靠近手的方式,就像是星球大戰中用原力吸引物體的玩法。對於不同的體驗,開發者可混合不同形式的近景交互和遠景交互方式。

Oculus Quest手勢追蹤設計官方指南

2)交互方式

開發者可為不同的體驗搭配多種交互方式,它們主要分為兩大類:直接交互和raycasting。直接交互適合用於在近處按鈕、抓取等動作,容易上手,不過範圍僅限於一臂之間。而前面提到raycasting可用於遠處的交互,有點類似於Touch手柄上的射線光標,它的好處是用戶不需要很大幅度的動作就能與任意距離的目標交互。

3)選擇方式

與交互方式相同,用手勢進行選擇也分為兩大類,一是直接與近處的目標觸碰,而是通過捏的動作來確認選項。考慮到手勢操作不具備手柄能提供的體感反饋,開發者需要用視覺提示和反饋來彌補。而捏這個動作本身會帶來觸覺反饋,剛好為手勢識別帶來體感反饋功能。

4)手的移動速度

Oculus表示:VR中虛擬手、光標的移動速度或角度可1:1還原自用戶的手勢,好處是交互更自然逼真,手部的動作與虛擬手完全匹配,不過長時間容易讓用戶疲憊,限制交互場景。當然也可以進行調整,比如手每移動1°,光標則移動3°,比例越小精準度越高,越大則越省力。

為了更好的體驗感,開發者也可以對不同的交互使用不同的比例來提升效率,當用戶手快速移動時,虛擬手的速度則進一步加快,或者當用戶的手長時間放在最左邊時,虛擬手會持續向左邊移動,就像是將搖桿推到頭的感覺。而對於精準性要求高的交互,則儘量避免使用這種形式。

5)系統控制選項

Oculus認為系統控制手勢可分為抽象和類比兩大類,抽象手勢指的是類似於科幻電影中描述的特定隔空手勢,它的缺點是需要一段時間去學習和記憶,而且不能是用戶不小心做出的動作,還需要考慮特定手勢對於不同文化的意義,避免引起特定人群反感。因此Oculus建議儘量少用抽象手勢,更多去使用類比手勢。

類比手勢通常比抽象手勢更敏感,你可以立刻看到手勢產生的效果,而且很容易學會。比如,當你的手向右移,光標、目標或物品也會移到右邊,接觸式交互與raycasting都是類比手勢。開發者可根據不同場景,混搭兩種類型的手勢交互。

此外,Oculus還指出手勢交互需要滿足4項基本功能,開發者可選擇不同的交互方式來滿足這4類功能,即:選擇、移動、旋轉和縮放。

Oculus Quest手勢追蹤設計官方指南

在VR中,你可以在2D菜單上進行選擇,也可以選擇3D物體,戳這個動作適合用於菜單或按鈕,而捏的動作適合撿起虛擬物體。在移動虛擬物體時,可直接用手勢移動,也可以通過射線來選擇遠處的物體,甚至也可以加快在VR中移動物體的速度來提升效率。

Oculus Quest手勢追蹤設計官方指南

在旋轉物體方面,可通過簡單的滑動手勢來實現,如果對精準性有要求,則可以限制虛擬物體只能在一條軸上移動,簡化操作難度。另外對於2D物體,則可以選擇讓它自動圍繞用戶旋轉。

Oculus Quest手勢追蹤設計官方指南

而對於縮放功能,Oculus建議可採用統一縮放比例,並且將物體固定在2D平面上,只能在一個軸上移動。用戶可通過雙手捏的動作來實現對物體的縮放,一隻手固定物體,另一隻手進行縮放。使用雙手的缺點是,用戶需要雙手靈活,並且手中沒有其他東西,而且雙手移動過程也容易以產生遮擋。

Oculus Quest手勢追蹤設計官方指南

開發者也可以為3D虛擬物體的每個軸配備操縱桿,這樣一來,物體的縮放、移動、旋轉會更加精確,只需要用捏的動作來控制各個操縱桿就可以實現。

UI設計

手勢交互並不會使用到手柄的物理按鈕或搖桿,Oculus建議,可以在菜單中使用虛擬按鈕等交互方式來進行操作,為用戶提供持續的交互反饋。

Oculus Quest手勢追蹤設計官方指南

按鈕可通過在不同交互狀態中變化形態來提供視覺反饋,Oculus認為可以由7中狀態:默認、聚焦(按鈕周圍出現邊框,代表已選定)、靠近(手指靠近按鈕時)、接觸(改變顏色或出現接觸印記)、啟動(按鈕被按下去)、釋放(按鈕彈回原狀)。

對於近處的按鈕,Oculus建議可以對按鈕大小、接觸範圍、排列密度、形狀和距離幾個方面進行考量。其寫道,按鈕的每一條軸的長度應該至少6釐米,少於5釐米長度的按鈕容易降低準確性和交互速度。此外,可在按鈕周圍設定一個溢出的交互範圍,提高輸入的效率,範圍的形狀可選擇方形或矩形。

按鈕之間的距離可設定在1到3釐米,擴大距離可能會降低準確性。Oculus認為,按鈕的視覺形狀對效果並沒有影響,只要將交互範圍設定為矩形就可以。距離方面,按鈕位於用戶可觸及最遠距離的80%時最理想。假設手臂的中等長度約為61釐米,那麼虛擬按鈕應該位於距離頭顯49釐米的地方。

對於遠處的按鈕,Oculus建議可將按鈕的角直徑設定為小於1.6°,主要是確保按鈕的遠距離不會影響精準性。角直徑的作用是代表虛擬按鈕所佔據的視場角,比如:按鈕距離頭顯2米遠,角直徑為1.6°,那麼按鈕的直徑應該為5.6釐米,如果虛擬按鈕距離10米遠,那麼它的直徑應該至少28釐米。

Oculus Quest手勢追蹤設計官方指南

對於捏+拉這個手勢,開發者可加入虛擬操縱桿來提高精準性,同時它對於1D、2D和3D界面也可以有不同功能。1D界面中,操縱桿以一個軸移動,可用於翻頁、快進功能。2D界面中,用戶可通過兩個軸的方向來進行操作,適用於顏色選取或輻射狀選擇器,用戶可以先將調色盤拉出,然後控制操縱桿來選取不同的顏色。而在3D界面中,用戶可從三個軸方向進行操作,可用於立體的調色盤等場景。

Oculus Quest手勢追蹤設計官方指南

對於近處的交互,可選用短小的定向指針來進行瞄準,指針的形狀、色彩和透明度會根據用戶食指和拇指之間的距離來變化,提示用戶交互的狀態。光標則可以提示手勢目前瞄準的目標,當做出捏的動作時,光標會跳動,提示輸入成功,當兩個手指鬆開時則恢復原樣。為了避免光標遮擋視線,Oculus將它設為半透明式,並使用較深的輪廓來加深它的存在感,同時光標的角直徑是恆定的,與距離成反比。

Oculus Quest手勢追蹤設計官方指南

最後,Oculus分享了開發虛擬手的注意事項,認為它可以同時結合靜態的色彩和動態的輪廓。也就是說,當你做出手勢時,手指的重點部分會改變輪廓顏色,提示你正在輸入中。當你手掌面對自己,調出系統菜單時,輪廓是藍色的,手指也會變成藍色。當你使用捏的手勢時,虛擬手的輪廓變成淺灰色,食指和拇指變成白色。同時,為了避免遮擋,Oculus Quest中的虛擬手採用半透明式的灰色,並且只渲染到腕部。


分享到:


相關文章: