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