隨著VR/AR眼球追蹤技術(shù)的逐漸成熟,如何使用眼球追蹤技術(shù)為自己的VR/AR APP提升用戶體驗(yàn)已經(jīng)成為開(kāi)發(fā)者的一大議題。
一般來(lái)說(shuō),眼控交互應(yīng)用開(kāi)發(fā)是開(kāi)發(fā)者的第一想法。
簡(jiǎn)單來(lái)講,眼控交互開(kāi)發(fā)的原理就是在開(kāi)發(fā)引擎中,將視線范圍設(shè)置為一條射線狀或圓錐狀物體,和VR/AR中的各種Object進(jìn)行碰撞檢測(cè),當(dāng)程序一旦檢測(cè)到碰撞,則視為用戶的視線落到了這個(gè)物體上,其基本原理對(duì)于開(kāi)發(fā)者是很容易掌握的。
但是在與很多VR/AR開(kāi)發(fā)者的交流中過(guò)程中,發(fā)現(xiàn)目前開(kāi)發(fā)者對(duì)于眼控交互設(shè)計(jì)上依舊存在較多誤解。
下面說(shuō)一下常見(jiàn)的一些設(shè)計(jì)問(wèn)題:
碰撞檢測(cè)的范圍
視線與物體進(jìn)行碰撞檢測(cè)時(shí),不要真的將視線視為一個(gè)無(wú)限細(xì)的射線進(jìn)行檢測(cè),因?yàn)榛谀壳把矍蜃粉櫦夹g(shù),是無(wú)法做到100%準(zhǔn)確,會(huì)存在一定的誤差,雖然誤差值很小,但是為了避免這種誤差造成交互失誤,在進(jìn)行碰撞檢測(cè)時(shí),視線一方的碰撞物體,一般需要設(shè)置一定的擴(kuò)展范圍,最好是將視線設(shè)置為一個(gè)圓錐形,這樣無(wú)論碰撞的距離是多少,其檢測(cè)范圍的半徑是不變的。
碰撞檢測(cè)并不等同于注視
檢測(cè)到視線物體的碰撞和用戶在注視這個(gè)物體并不是等同的。
人眼有兩種常見(jiàn)的運(yùn)動(dòng)模式:眼跳和注視。
眼跳的速度非???,而且人眼的視神經(jīng)經(jīng)常處于半關(guān)閉的狀態(tài),這時(shí)檢測(cè)到視線和物體的碰撞,產(chǎn)生交互是沒(méi)有必要的。視線落在某個(gè)物體上超過(guò)一定的時(shí)間才是注視,一般情況下要超過(guò)100ms,所以在交互設(shè)計(jì)中,一般需要通過(guò)一定的延遲判定才能認(rèn)為是注視。
圓圈代表注視(半徑越大,注視時(shí)間越長(zhǎng))線條代表眼跳
避免米達(dá)斯接觸
有些開(kāi)發(fā)者曾問(wèn)道:如何區(qū)別用戶是在觀察一個(gè)物體,而并不是想要觸發(fā)這個(gè)物體相應(yīng)的功能呢?
這是一個(gè)非常好的問(wèn)題,在眼球追蹤技術(shù)有一個(gè)專有的名詞對(duì)問(wèn)題進(jìn)行概括:米達(dá)斯接觸問(wèn)題。
米達(dá)斯接觸
所謂米達(dá)斯接觸(MidasTouch)問(wèn)題(米達(dá)斯是希臘神話中的一位能點(diǎn)石成金的國(guó)王)指的是由于用戶視線運(yùn)動(dòng)的隨意性而造成計(jì)算機(jī)對(duì)用戶意圖識(shí)別的困難。用戶可能希望隨便看什么,并非存在目的和意義,更不希望每次轉(zhuǎn)移視線都可能引發(fā)一個(gè)動(dòng)作。因此,視線跟蹤技術(shù)的挑戰(zhàn)之一就是避免“米達(dá)斯接觸”問(wèn)題。
米達(dá)斯
如果用戶只是選中激活(比如高亮、框選、變大變?。┯脩糇⒁暤奈矬w,米達(dá)斯接觸是不會(huì)產(chǎn)生什么副作用的,但是如果用戶注視的物體會(huì)觸發(fā)場(chǎng)景切換或功能設(shè)置上的變化。那么問(wèn)題就隨之而來(lái)了:
你怎么知道用戶僅僅是在查看,還是想直接觸發(fā)它的功能呢?
為了解決這個(gè)問(wèn)題,我們不會(huì)采用注視后馬上觸發(fā)的方式,因?yàn)檫@樣會(huì)不斷產(chǎn)生錯(cuò)誤的操作。
一般會(huì)有下面的解決方法:
延遲觸發(fā)
在被觀察物體上,顯示一個(gè)不影響正常瀏覽的時(shí)間進(jìn)度條,當(dāng)進(jìn)度條完成設(shè)定時(shí)間的計(jì)時(shí)時(shí),產(chǎn)生觸發(fā)行為。
二次眼控觸發(fā)
在被觀察物體旁邊,顯示“真正的”觸發(fā)元素,用戶余光可以看到,但不影響觀察主體。當(dāng)需要觸發(fā)時(shí),看那個(gè)“真正的”觸發(fā)元素即可。
但是細(xì)心的讀者會(huì)發(fā)現(xiàn),這兩個(gè)方法依舊存在問(wèn)題:延遲觸發(fā)要求用戶注意延遲進(jìn)度,而且這種操作容易引起眼睛的疲勞,而二次眼控觸發(fā)雖然在一定程度上可以避免誤觸發(fā),但是仍然有誤觸發(fā)的可能。
這就引出了下一個(gè)論點(diǎn):與其他輸入工具結(jié)合。
與其他輸入工具結(jié)合
只用眼睛進(jìn)行所有交互并不是最好的交互模式,結(jié)合其他輸入工具,如手柄、語(yǔ)音、手勢(shì)等,才是比較自然的,當(dāng)然,這里說(shuō)的交互不包括選中激活的交互。
延遲觸發(fā)的確會(huì)引起用眼疲勞,但是這種模式也有它的適用場(chǎng)景,例如類似漸凍癥患者這種殘疾人群,除了眼睛,其他交互手段全部失效,這種模式就是最適合的。
當(dāng)然,不排除某些特定場(chǎng)合,除了眼睛其他交互手段都不適用,那也可以采用這種模式。
漸凍癥患者使用的輸入法界面,典型的延遲交互
在正常環(huán)境中,多重交互將會(huì)更自然。比如在一個(gè)菜單界面上,眼睛的運(yùn)動(dòng)軌跡能夠反應(yīng)在菜單項(xiàng)中,使選項(xiàng)處于待激活狀態(tài),此狀態(tài)下不觸發(fā)場(chǎng)景切換或產(chǎn)生其他設(shè)置上的變化,這時(shí)可以搭配語(yǔ)音交互說(shuō)出“確認(rèn)”或者通過(guò)某個(gè)特定手勢(shì)(比如:OK手勢(shì)),進(jìn)行激活狀態(tài),這種多重交互協(xié)作方式將會(huì)有效的避免了誤觸發(fā)。
用眼睛做瞄準(zhǔn)不是好的游戲交互模式
目前在VR游戲中,槍擊游戲是最常見(jiàn)的一種,所以很多開(kāi)發(fā)者就會(huì)想到是否能用眼睛作為瞄準(zhǔn)工具。實(shí)際上,我們并不推薦大家將用眼睛做瞄準(zhǔn),因?yàn)檫@并不是一種好的游戲交互模式。
對(duì)于擁有這種想法的開(kāi)發(fā)者,存在需要兩個(gè)必須想通問(wèn)題:
游戲是想讓用戶彈無(wú)虛發(fā)永不失?。?/p>
還是想測(cè)試眼動(dòng)廠家算法的準(zhǔn)確性?
不要用眼睛做過(guò)于精細(xì)化的選擇
前面有提到,眼球追蹤技術(shù)還做不到100%的準(zhǔn)確,與傳統(tǒng)桌面式交互中的鼠標(biāo)是不可同日而語(yǔ)的,所以在交互設(shè)計(jì)中,不要信心過(guò)頭,碰撞檢測(cè)的范圍不要過(guò)小,甚至可以設(shè)置一定的吸附算法,以防止用戶無(wú)法產(chǎn)生交互行為。
另外,多個(gè)可產(chǎn)生交互的元素之間,需要有一定的距離,防止由于距離過(guò)近,產(chǎn)生錯(cuò)誤的交互。用戶本來(lái)看的是A,結(jié)果B開(kāi)始進(jìn)行交互反應(yīng)了。
除了上面所說(shuō)的常見(jiàn)問(wèn)題,下面我們也給開(kāi)發(fā)者一些常見(jiàn)的交互設(shè)計(jì)思路:
注視觸發(fā)滾動(dòng)
比如上下排列的菜單,當(dāng)用戶注視落點(diǎn)比較靠近下方時(shí),自動(dòng)向上滾動(dòng),使用戶的視線處于最舒適的方向上,以提升用戶體驗(yàn)。左右排列的請(qǐng)自行思考。
局部變化
當(dāng)用戶注視某些特定元素時(shí),可產(chǎn)生局部變化,如拉近、放大、變清晰、變亮等,而視線離開(kāi)時(shí),恢復(fù)原狀。比如在玩VR游戲時(shí),全局地圖可以在周邊視野比較小的地方,避免影響正常游戲視線,但當(dāng)用戶注視它時(shí),可以將地圖放大以便于用戶瀏覽,而當(dāng)用戶視線離開(kāi)地圖回到主游戲場(chǎng)景時(shí),地圖可以自動(dòng)收回到原來(lái)比較小的區(qū)域。