手勢是HoloLens三個首要輸入形式之一。一旦你使用凝視定位了一個全息圖像,手勢允許你與它交互。手勢輸入允許你使用手或者點擊器原生地與全息圖像交互。
手勢之外,你也可以在應用中使用語音輸入來交互。
手勢識別 Hand recognition
HoloLens通過追蹤手來實現手勢識別。HoloLens能夠明白手什么時候准備好了(豎起食指手背面向臉)或者點擊(手背向臉食指點下)。當手處於其他姿勢時,HoloLens將會忽略它們。
HoloLens在設備前方的錐形范圍內追蹤手部運動,這片區域被稱為手勢框(gesture frame),這拓展了全息圖像顯示視圖的上下左右邊界。這允許你手勢輸入時,可以舒適地保持着手臂彎曲。當使用點擊器時,就不必將手保持在手勢框之中。
對於每個HoloLens識別的手,你能夠得到它的位置(無方向)和他的點擊狀態。當手接近手勢框邊緣時,你能得到一個方向向量,你可以提醒用戶將手移回HoloLens可識別的區域。
交互 Interactions
HoloLens的核心交互是點擊(press)、松開(release)和綻開(bloom)手勢。
點擊和松開 Press and release
你選中和激活全息圖像的首要方式是air-tap手勢,它包含了一個點擊和松開手勢。
Air-tap手勢,首先是指面向了臉點下,這是點擊手勢;隨后食指向上松開,這是松開手勢。Air-tap會實現對全息圖像的選擇,點擊器或者語音命令也能做到。
綻開手勢 Bloom
Bloom是很特別的系統手勢,被用於從全息應用中喚起開始菜單。這和在鍵盤上點擊Windows鍵或者Xbox手柄上點擊Xbox按鈕功能類似。
為了做Bloom手勢,先攥緊拳頭,手心向上,然后五指綻開。通過說:“Hey Cortanna,Go Home”也能喚起開始菜單。注意:你的應用無法刻意響應Bloom手勢,因為它只能被系統響應。
手勢 Gesture
你的應用可以識別簡單點擊和松開之外更多的手勢。通過移動手或使用點擊器,你可以做更多復雜的手勢:
- 長按Hold:保持點擊手勢直到觸發系統長按手勢閾值
- 操作 Manipulation: 保持點擊手勢,在3D世界中絕對運動
- 導航 Navigation: 保持點擊手勢,在一個標准3D立方空間內相對運動
長按手勢 Hold
Hold手勢和觸屏上長按手勢類似,被用於執行二級行為,例如拿起一個對象而不是激活它或者顯示上下文菜單。
操縱手勢 Manipulation
當你想要全息圖像1:1響應用戶手部移動時,操縱手勢能被用於移動、縮放或旋轉全息圖像。如此的一個用處是使得用戶可以在世界中繪制圖像或作畫。
使用所有的手勢時,操縱手勢的初始目標應該通過凝視來選中。一旦點擊手勢開始,通過手部移動的任何對對象的操作都能夠被處理,在用戶操作全息圖像時,從而使得用戶得以自由地四處張望。
操縱行為只能使用手勢來實現。
導航手勢 Navigation
導航手勢就像一個虛擬的操縱桿,能夠用於UI控件導航,例如弧形菜單。通過點擊開始手勢,然后在以點擊處為中心的標准立方空間中移動手部。你可以沿着X、Y、Z軸移動手部,這回帶來數值-1到1的變化,初始位置的值為0.
導航手勢可以用於構建基於速度持續滾動或縮放的手勢,這和在2D UI上通過按住鼠標滾輪上下移動類似。
定向導航是指在特定軸上識別運動直到此軸上閾值的能力。當應用中開發者啟用了多軸運動,這很有用,例如如果一個應用被設置為識別X、Y軸上的運動,但同時X軸被設為定向導航。在這種情況下,如果手也在Y軸上移動,只要他們保持在X軸假想導軌區間上,系統會識別到X軸上的手勢移動。
在HoloLens 2D應用內,用戶可以使用垂直導航手勢來滾動、縮放或在應用內拖拽。為了模擬同樣類型的觸摸手勢,導航手勢為應用虛擬了手指觸摸,實際體驗和觸屏上的相應手勢類似。用戶可以通過切換Holobar上的Scroll/Drag/Zoom工具來顯示相應行為。