做了一個(gè)月的 VR 游戲主播之后,除了越發(fā)沉迷于《半條命:Alyx》之中,我還在思考另外一個(gè)問(wèn)題:現(xiàn)在的 VR 還差點(diǎn)什么?
作為一名“中之人”,我在直播時(shí)會(huì)用虛擬形象來(lái)解說(shuō)——我相信,如果未來(lái)一定要有一個(gè)虛擬世界,我們跟自己的數(shù)字替身要“深度綁定”在一起。這個(gè)綁定不僅是外在認(rèn)知上的,還有真實(shí)世界和虛擬世界中的體驗(yàn)應(yīng)該是共通的。
玩家知道,VR 游戲與傳統(tǒng)游戲擁有著截然不同的體驗(yàn)。在 VR 游戲里,你不必哈腰坐在電腦前,擺弄著鼠標(biāo)鍵盤(pán)。你真的可以用雙手手柄當(dāng)作槍?zhuān)闇?zhǔn)敵人、扣動(dòng)食指按壓扳機(jī),今天的 VR 游戲已經(jīng)能非常準(zhǔn)確地識(shí)別手指動(dòng)作——但你卻無(wú)法在 VR 世界中撿起一節(jié)掉落的彈夾。
偶然間,我在油管閑逛時(shí),看到 Lucas(一個(gè)美國(guó)的 VR 創(chuàng)業(yè)團(tuán)隊(duì)創(chuàng)始人)制作了一款 VR 觸覺(jué)手套,重點(diǎn)是所有零件成本,他只花了 60 美元。
我將這條視頻申請(qǐng)轉(zhuǎn)載到自己的賬號(hào)上,沒(méi)想到反響熱烈。加上 Lucas 的那句“你真的可以用它來(lái)觸摸任何東西”,加重了我的好奇心。順藤摸瓜,我在 GitHub 上找到了開(kāi)源的教程,準(zhǔn)備動(dòng)手做一對(duì)。
需要買(mǎi)的零部件丨作者供圖
目前的技術(shù)來(lái)說(shuō),我并沒(méi)有期待“能觸摸到任何東西”的 VR 外設(shè)出現(xiàn)。但打動(dòng)我的也正是這一點(diǎn)。目前 VR 市場(chǎng)上,除了一個(gè)頭顯、兩個(gè)手柄,就沒(méi)什么所謂的新東西了,任何能以“平民價(jià)格”擴(kuò)展用戶(hù)體驗(yàn)的嘗試,我覺(jué)得都值得一試。
用最便宜的方式觸摸虛擬
1987 年,還是任天堂紅白機(jī)的時(shí)代,手套作為體感游戲的外設(shè)就已經(jīng)承擔(dān)起“輸入設(shè)備”的功能。
Power Glove丨YouTube“Gaming Historian”
現(xiàn)實(shí)中的你如果想摸到游戲里那把槍?zhuān)俗層?jì)算機(jī)識(shí)別你的手在動(dòng),建模出虛擬的手跟著真實(shí)的手同步運(yùn)動(dòng)(信號(hào)輸入功能),還要等到虛擬的手握住槍時(shí),返回一個(gè)信號(hào)——這個(gè)信號(hào)作用在手上,也就是我們常說(shuō)的力反饋。
Meta 曾經(jīng)放出觸感手套的視頻,采用微流體(microfluidics)技術(shù),使用氣致動(dòng)器(pneumatic actuators)通過(guò)氣泡充氣、放氣的方式制造精準(zhǔn)壓力。為此 Meta 稱(chēng)還在構(gòu)建一個(gè)高速微流體處理器。本來(lái)大家還在欣慰“all in”元宇宙的扎克伯格,終于拿出來(lái)點(diǎn)兒東西時(shí),另一家觸感手套開(kāi)發(fā)商 HaptX 說(shuō),“Meta 是抄我們的!”
Meta 研發(fā)了七年,HaptX 研發(fā)了十年,誰(shuí)抄誰(shuí)我們不得而知,但確定的事,VR 相關(guān)技術(shù)從面世到成熟(最起碼價(jià)格上被普通用戶(hù)接受)需要很多年的沉淀。
如何以“極低成本”實(shí)現(xiàn)力反饋?zhàn)屛遗d奮。當(dāng)我翻閱教程之后,發(fā)現(xiàn) LucidVR 用了一種特別“取巧”的方式。如果說(shuō) Meta 和 HaptX 是讓你的每一寸手部皮膚都是受力點(diǎn),那 LucidVR 這副手套只把力反饋給指尖。
將拉繩固定在手指上丨作者供圖
簡(jiǎn)單來(lái)說(shuō),當(dāng)即將抓住物體的一刻,手指要被立即拉扯住,防止進(jìn)一步彎曲。因?yàn)閺澢炔煌?,意味著手里“握”著的物體大小、形狀都不同??刂剖种覆荒芾^續(xù)彎曲的方式,就是給指尖一個(gè)“反作用力”。
指尖受力丨作者供圖
所以手套的主體部分就是一個(gè)“總閘”,延伸出去五根套在指尖的拉繩,隨時(shí)喊停。
舵機(jī)與電位器相連。當(dāng)輪軸轉(zhuǎn)至(舵機(jī))限位時(shí),舵盤(pán)就會(huì)擋住輪軸上的螺絲釘,讓輪軸無(wú)法繼續(xù)轉(zhuǎn)動(dòng),拉繩不能繼續(xù)展開(kāi)。丨作者供圖
當(dāng)我知道力反饋的原理之后,還需要搞清楚何時(shí),以及如何“關(guān)閘”。
“何時(shí)”很好理解,就是當(dāng)虛擬的手觸碰到虛擬世界的物體的時(shí)刻。因此我們需要做一個(gè)媒介,讓生物體的動(dòng)作信號(hào)和計(jì)算機(jī)的電信號(hào)能相互轉(zhuǎn)換,彼此“理解”。這也是我認(rèn)為這副手套最為巧妙的設(shè)計(jì)。
旋轉(zhuǎn)式電位器(其原理類(lèi)似于初中課本上的滑動(dòng)變阻器)與拉繩連接使用,當(dāng)手指彎曲時(shí),五條拉繩分別帶動(dòng)五個(gè)電位器,拉繩拉出的長(zhǎng)度被轉(zhuǎn)化為電位器阻值的變化,傳遞給虛擬世界做解析。
課本上的滑動(dòng)變阻器丨圖片來(lái)自網(wǎng)絡(luò)
在建?!皵?shù)據(jù)手套”上,也有例如基于 IMU(慣性測(cè)量單元)或彎曲傳感器的其他實(shí)現(xiàn)方式。所謂慣性傳感器是測(cè)量物體三軸姿態(tài)角和加速度的裝置,一般包括三軸陀螺儀、加速度計(jì)、磁力計(jì)來(lái)進(jìn)行多傳感器數(shù)據(jù)融合,以重建每根手指的三自由度方向。彎曲傳感器更好理解,手指在做彎曲動(dòng)作時(shí),發(fā)生物理變形來(lái)使傳感器阻值發(fā)生變化。
對(duì)比彎曲傳感器和電位器的價(jià)格丨圖片來(lái)自淘寶
這兩者傳遞數(shù)據(jù)明顯更加精準(zhǔn),但為什么不用?答案只有一個(gè):更昂貴。
借助 3D 打印的輪軸把電位器和拉繩“連”起來(lái)丨作者供圖
了解完何時(shí)“關(guān)閘”,還有如何“關(guān)閘”。顯然,拉繩需要一個(gè)裝置,在其伸縮過(guò)程中“卡”住它。我跟著教程買(mǎi)回了 MG-90S,航模中常見(jiàn)的舵機(jī),也很便宜 10 元一個(gè)。
適用領(lǐng)域極廣的 MG-90S 舵機(jī)丨圖片來(lái)自亞馬遜
做了一個(gè)月,只在游戲里撿起了一支酒瓶子
看完一遍教程,我迅速掌握了原理,對(duì)自己說(shuō),這“貌似”挺簡(jiǎn)單的?不就先這樣,再這樣,最后那樣?
我立刻在電商平臺(tái)下單了所有零件,都是一些生活中常見(jiàn)的工具。唯獨(dú)有一部分沒(méi)法買(mǎi)到的現(xiàn)成品(將各模塊拼裝起來(lái)的骨架),我是根據(jù)開(kāi)源的零部件參數(shù),用家用 3D 打印機(jī)解決的。
當(dāng)然也可以找萬(wàn)能淘寶代打丨作者供圖
然后,這一做就是一個(gè)月啊……同時(shí)我深刻理解了“取巧”的另一層含義是“還不完美”。
當(dāng)我戴上做好的觸覺(jué)手套,調(diào)整好 Valve Index(VR 頭顯)的位置,啟動(dòng)游戲《半條命:Alyx》。我身處熟悉的“17 號(hào)城市”,從背包中掏出手槍?zhuān)闇?zhǔn)散落在街邊的酒瓶,“砰!”在開(kāi)槍的一瞬間,我腦補(bǔ)應(yīng)該有一股后坐力傳來(lái)。實(shí)際上,僅是我的食指在扣動(dòng)扳機(jī)的那一刻被拉住了——要說(shuō)這體驗(yàn)比在公園打氣球還“塑料”。
但是我應(yīng)該是成功了吧!我換了一個(gè)散落在街邊的酒瓶子,“拿”在手里,我能大概“摸”出,它是一個(gè)圓柱體。
游戲里的使用效果丨作者供圖
當(dāng)我想更靈活的使用它們時(shí),我發(fā)現(xiàn)了問(wèn)題。
首先是“識(shí)別準(zhǔn)確率”問(wèn)題。我們需要先明白,定位追蹤和局部追蹤是兩個(gè)概念,手套整體的定位追蹤可以通過(guò)附加 Vive Tracker、Oculus 手柄,這樣現(xiàn)成的追蹤技術(shù)來(lái)實(shí)現(xiàn)。
手指的局部追蹤才是一款力反饋手套要去解決的重點(diǎn)。我在組裝時(shí)就發(fā)現(xiàn),這副手套設(shè)計(jì)并非為每個(gè)指關(guān)節(jié)附有傳感器,手指的彎曲狀態(tài)只能通過(guò)拉繩轉(zhuǎn)化的電阻信號(hào)被大概建模出來(lái)(為此 Lucas 可能設(shè)計(jì)了一套軟件),不夠精確到每一處關(guān)節(jié)。
手部追蹤丨作者供圖
其次是“識(shí)別范圍”問(wèn)題。同樣是因?yàn)槭痔缀?jiǎn)陋的構(gòu)造,我的手指只能在上下運(yùn)動(dòng)時(shí)被識(shí)別,左右展開(kāi),旋轉(zhuǎn)等其他自由度是無(wú)法實(shí)現(xiàn)的。但是 Lucas 告訴我,他已經(jīng)在解決這個(gè)問(wèn)題,下一版手套將會(huì)增加左右展開(kāi)的自由度,實(shí)現(xiàn)方式是在第一節(jié)指關(guān)節(jié)處增加一個(gè)電位器。
識(shí)別準(zhǔn)確與否,會(huì)影響力反饋的效果。另外一個(gè)因素,就是限位位置的調(diào)整。手指的不同彎曲程度,與不同的限位位置一一對(duì)應(yīng),驅(qū)使舵盤(pán)轉(zhuǎn)向不同的角度,再作用給正在伸縮中的拉繩。
在我的理解中,能實(shí)現(xiàn)這一點(diǎn),是 LucidVR 系統(tǒng)預(yù)設(shè)好了這種“對(duì)應(yīng)關(guān)系”。
但是每個(gè)人手部狀況不盡相同,需要在使用前,對(duì)限位做“個(gè)人化”的校準(zhǔn)。調(diào)太緊導(dǎo)致,還沒(méi)等抓到物體手就被拉?。徽{(diào)太松導(dǎo)致,拿到物體就跟空手握拳一樣。
這一點(diǎn)沒(méi)有簡(jiǎn)便的方法,只能在戴上頭顯時(shí),感受松緊,“估算”限位位置。摘下頭顯之后,擰開(kāi)舵機(jī)螺絲,調(diào)整舵盤(pán),如此反復(fù),直到在虛擬世界中正巧抓住物體。
不停調(diào)試限位位置丨作者供圖
除此之外,長(zhǎng)時(shí)間的拉伸,會(huì)導(dǎo)致拉繩、手套變形。由于整套裝置并非完全貼合在手上,而是粘在手套上,手套的輕微移位也會(huì)帶來(lái)力反饋的誤差。
優(yōu)化體驗(yàn)不能停止!可以改造,也可以腦補(bǔ)
在手套真正用起來(lái)之前,還有一段小插曲。
在我調(diào)試很多遍之后,舵機(jī)依然紋絲不動(dòng)。我跑到 Discord 上面求助,網(wǎng)友告訴我,并不是舵機(jī)線跟開(kāi)發(fā)板連錯(cuò)了,而是電流太小了,帶不起舵機(jī)。我需要單獨(dú)給舵機(jī)連接一個(gè)新的充電寶,而不是跟開(kāi)發(fā)板共用一個(gè)充電寶。
LucidVR 的 Discord 討論組里有 14000 個(gè)關(guān)注者。有人將這副手套改良,把拉繩換成更加堅(jiān)韌的塑料片,解決拉繩容易變形的問(wèn)題。
也有人直接改變構(gòu)造,做成了外骨骼形狀,留出空間加更多傳感器。很多的開(kāi)源項(xiàng)目,都不會(huì)面面俱到,相反他們會(huì)留出很多“空白”,讓技術(shù)愛(ài)好者自行探索。
外骨骼版丨作者供圖
Lucas 在他的演示中,把戴了手套的 VR 體驗(yàn)描繪得令人異常興奮。在《半條命:Alyx》中,你可以拾起易拉罐,再扔出去,走到車(chē)旁,開(kāi)門(mén)上車(chē),甚至遇到危險(xiǎn)時(shí),爬墻而逃。不過(guò),這更多是帶入其他感官體驗(yàn)的“腦補(bǔ)”,你最多體驗(yàn)到頂在一面墻上的阻力,不會(huì)有克服重力向上攀爬的感覺(jué)。
明知道這些,當(dāng)我第一次戴上這只手套,感受著物體是大是小,是圓是方,即便只是從指尖傳來(lái)的生硬“觸感”,仍然讓我覺(jué)得新奇。在此之前,我甚至無(wú)法想象“空握”一只玻璃瓶。
幾乎在做手套同時(shí),我自制了 SlimeVR 全身追蹤器。與手套“同理”,我做了五個(gè)傳感器分別綁在腳踝、大腿、腰部(因?yàn)?SlimeVR 軟件沒(méi)有對(duì)上肢建模),五個(gè)傳感器先通過(guò) T-pose 重置識(shí)別出絕對(duì)位置,再通過(guò)“彼此”識(shí)別出相對(duì)位置,將電信號(hào)解析成虛擬人的動(dòng)作。配合這副手套(手柄)和頭顯,就能讓“老二次元”在 VRChat 里快樂(lè)斗舞。
SlimeVR 也將代碼開(kāi)源丨圖片來(lái)自 SlimeVR
幾個(gè)月之前,我將自己制作的視頻發(fā)在網(wǎng)上,隨機(jī)收獲了很多關(guān)注者。當(dāng)然這還不是令我最興奮的?!癝limeVR 全身追蹤器”視頻發(fā)出兩個(gè)月后,其中最重要的零部件——BNO-080(九軸傳感器模塊)在淘寶上從 90 塊錢(qián)漲價(jià)到 300 塊錢(qián)。(在此之前,沒(méi)有人教學(xué)自制 SlimeVR 全身追蹤器,姑且當(dāng)作是我激發(fā)了老二次元們的熱愛(ài)吧。)
傳感器模塊丨作者供圖
當(dāng)然我收到的不都是“贊美”。我 3D 打印了一個(gè)能正好裝下小風(fēng)扇的模型,接到頭顯上,解決悶熱的問(wèn)題。
自制 VR 頭顯風(fēng)扇丨作者供圖
但這一次,因?yàn)槭褂玫娘L(fēng)扇過(guò)于便宜,我的方案被調(diào)侃產(chǎn)生噪音過(guò)大——“像飛機(jī)場(chǎng)”。
作者:露露Mikuru
編輯:沈知涵
本文來(lái)自果殼,未經(jīng)授權(quán)不得轉(zhuǎn)載.
如有需要請(qǐng)聯(lián)系sns@guokr.com