首頁>資訊 >
我做了一副元宇宙手套,成本300元 2022-04-15 16:42:28  來源:36氪

做了一個月的 VR 游戲主播之后,除了越發(fā)沉迷于《半條命:Alyx》之中,我還在思考另外一個問題:現(xiàn)在的 VR 還差點什么?

作為一名“中之人”,我在直播時會用虛擬形象來解說——我相信,如果未來一定要有一個虛擬世界,我們跟自己的數(shù)字替身要“深度綁定”在一起。這個綁定不僅是外在認知上的,還有真實世界和虛擬世界中的體驗應該是共通的。

玩家知道,VR 游戲與傳統(tǒng)游戲擁有著截然不同的體驗。在 VR 游戲里,你不必哈腰坐在電腦前,擺弄著鼠標鍵盤。你真的可以用雙手手柄當作槍,瞄準敵人、扣動食指按壓扳機,今天的 VR 游戲已經(jīng)能非常準確地識別手指動作——但你卻無法在 VR 世界中撿起一節(jié)掉落的彈夾。

偶然間,我在油管閑逛時,看到 Lucas(一個美國的 VR 創(chuàng)業(yè)團隊創(chuàng)始人)制作了一款 VR 觸覺手套,重點是所有零件成本,他只花了 60 美元。

我將這條視頻申請轉(zhuǎn)載到自己的賬號上,沒想到反響熱烈。加上 Lucas 的那句“你真的可以用它來觸摸任何東西”,加重了我的好奇心。順藤摸瓜,我在 GitHub 上找到了開源的教程,準備動手做一對。

需要買的零部件丨作者供圖

目前的技術(shù)來說,我并沒有期待“能觸摸到任何東西”的 VR 外設出現(xiàn)。但打動我的也正是這一點。目前 VR 市場上,除了一個頭顯、兩個手柄,就沒什么所謂的新東西了,任何能以“平民價格”擴展用戶體驗的嘗試,我覺得都值得一試。

用最便宜的方式觸摸虛擬

1987 年,還是任天堂紅白機的時代,手套作為體感游戲的外設就已經(jīng)承擔起“輸入設備”的功能。

Power Glove丨YouTube“Gaming Historian”

現(xiàn)實中的你如果想摸到游戲里那把槍,除了讓計算機識別你的手在動,建模出虛擬的手跟著真實的手同步運動(信號輸入功能),還要等到虛擬的手握住槍時,返回一個信號——這個信號作用在手上,也就是我們常說的力反饋。

Meta 曾經(jīng)放出觸感手套的視頻,采用微流體(microfluidics)技術(shù),使用氣致動器(pneumatic actuators)通過氣泡充氣、放氣的方式制造精準壓力。為此 Meta 稱還在構(gòu)建一個高速微流體處理器。本來大家還在欣慰“all in”元宇宙的扎克伯格,終于拿出來點兒東西時,另一家觸感手套開發(fā)商 HaptX 說,“Meta 是抄我們的!”

Meta 研發(fā)了七年,HaptX 研發(fā)了十年,誰抄誰我們不得而知,但確定的事,VR 相關(guān)技術(shù)從面世到成熟(最起碼價格上被普通用戶接受)需要很多年的沉淀。

如何以“極低成本”實現(xiàn)力反饋讓我興奮。當我翻閱教程之后,發(fā)現(xiàn) LucidVR 用了一種特別“取巧”的方式。如果說 Meta 和 HaptX 是讓你的每一寸手部皮膚都是受力點,那 LucidVR 這副手套只把力反饋給指尖。

將拉繩固定在手指上丨作者供圖

簡單來說,當即將抓住物體的一刻,手指要被立即拉扯住,防止進一步彎曲。因為彎曲幅度不同,意味著手里“握”著的物體大小、形狀都不同??刂剖种覆荒芾^續(xù)彎曲的方式,就是給指尖一個“反作用力”。

指尖受力丨作者供圖

所以手套的主體部分就是一個“總閘”,延伸出去五根套在指尖的拉繩,隨時喊停。

舵機與電位器相連。當輪軸轉(zhuǎn)至(舵機)限位時,舵盤就會擋住輪軸上的螺絲釘,讓輪軸無法繼續(xù)轉(zhuǎn)動,拉繩不能繼續(xù)展開。丨作者供圖

當我知道力反饋的原理之后,還需要搞清楚何時,以及如何“關(guān)閘”。

“何時”很好理解,就是當虛擬的手觸碰到虛擬世界的物體的時刻。因此我們需要做一個媒介,讓生物體的動作信號和計算機的電信號能相互轉(zhuǎn)換,彼此“理解”。這也是我認為這副手套最為巧妙的設計。

旋轉(zhuǎn)式電位器(其原理類似于初中課本上的滑動變阻器)與拉繩連接使用,當手指彎曲時,五條拉繩分別帶動五個電位器,拉繩拉出的長度被轉(zhuǎn)化為電位器阻值的變化,傳遞給虛擬世界做解析。

課本上的滑動變阻器丨圖片來自網(wǎng)絡

在建模“數(shù)據(jù)手套”上,也有例如基于 IMU(慣性測量單元)或彎曲傳感器的其他實現(xiàn)方式。所謂慣性傳感器是測量物體三軸姿態(tài)角和加速度的裝置,一般包括三軸陀螺儀、加速度計、磁力計來進行多傳感器數(shù)據(jù)融合,以重建每根手指的三自由度方向。彎曲傳感器更好理解,手指在做彎曲動作時,發(fā)生物理變形來使傳感器阻值發(fā)生變化。

對比彎曲傳感器和電位器的價格丨圖片來自淘寶

這兩者傳遞數(shù)據(jù)明顯更加精準,但為什么不用?答案只有一個:更昂貴。

借助 3D 打印的輪軸把電位器和拉繩“連”起來丨作者供圖

了解完何時“關(guān)閘”,還有如何“關(guān)閘”。顯然,拉繩需要一個裝置,在其伸縮過程中“卡”住它。我跟著教程買回了 MG-90S,航模中常見的舵機,也很便宜 10 元一個。

適用領(lǐng)域極廣的 MG-90S 舵機丨圖片來自亞馬遜

做了一個月,只在游戲里撿起了一支酒瓶子

看完一遍教程,我迅速掌握了原理,對自己說,這“貌似”挺簡單的?不就先這樣,再這樣,最后那樣?

我立刻在電商平臺下單了所有零件,都是一些生活中常見的工具。唯獨有一部分沒法買到的現(xiàn)成品(將各模塊拼裝起來的骨架),我是根據(jù)開源的零部件參數(shù),用家用 3D 打印機解決的。

當然也可以找萬能淘寶代打丨作者供圖

然后,這一做就是一個月啊……同時我深刻理解了“取巧”的另一層含義是“還不完美”。

當我戴上做好的觸覺手套,調(diào)整好 Valve Index(VR 頭顯)的位置,啟動游戲《半條命:Alyx》。我身處熟悉的“17 號城市”,從背包中掏出手槍,瞄準散落在街邊的酒瓶,“砰!”在開槍的一瞬間,我腦補應該有一股后坐力傳來。實際上,僅是我的食指在扣動扳機的那一刻被拉住了——要說這體驗比在公園打氣球還“塑料”。

但是我應該是成功了吧!我換了一個散落在街邊的酒瓶子,“拿”在手里,我能大概“摸”出,它是一個圓柱體。

游戲里的使用效果丨作者供圖

當我想更靈活的使用它們時,我發(fā)現(xiàn)了問題。

首先是“識別準確率”問題。我們需要先明白,定位追蹤和局部追蹤是兩個概念,手套整體的定位追蹤可以通過附加 Vive Tracker、Oculus 手柄,這樣現(xiàn)成的追蹤技術(shù)來實現(xiàn)。

手指的局部追蹤才是一款力反饋手套要去解決的重點。我在組裝時就發(fā)現(xiàn),這副手套設計并非為每個指關(guān)節(jié)附有傳感器,手指的彎曲狀態(tài)只能通過拉繩轉(zhuǎn)化的電阻信號被大概建模出來(為此 Lucas 可能設計了一套軟件),不夠精確到每一處關(guān)節(jié)。

手部追蹤丨作者供圖

其次是“識別范圍”問題。同樣是因為手套簡陋的構(gòu)造,我的手指只能在上下運動時被識別,左右展開,旋轉(zhuǎn)等其他自由度是無法實現(xiàn)的。但是 Lucas 告訴我,他已經(jīng)在解決這個問題,下一版手套將會增加左右展開的自由度,實現(xiàn)方式是在第一節(jié)指關(guān)節(jié)處增加一個電位器。

識別準確與否,會影響力反饋的效果。另外一個因素,就是限位位置的調(diào)整。手指的不同彎曲程度,與不同的限位位置一一對應,驅(qū)使舵盤轉(zhuǎn)向不同的角度,再作用給正在伸縮中的拉繩。

在我的理解中,能實現(xiàn)這一點,是 LucidVR 系統(tǒng)預設好了這種“對應關(guān)系”。

但是每個人手部狀況不盡相同,需要在使用前,對限位做“個人化”的校準。調(diào)太緊導致,還沒等抓到物體手就被拉住;調(diào)太松導致,拿到物體就跟空手握拳一樣。

這一點沒有簡便的方法,只能在戴上頭顯時,感受松緊,“估算”限位位置。摘下頭顯之后,擰開舵機螺絲,調(diào)整舵盤,如此反復,直到在虛擬世界中正巧抓住物體。

不停調(diào)試限位位置丨作者供圖

除此之外,長時間的拉伸,會導致拉繩、手套變形。由于整套裝置并非完全貼合在手上,而是粘在手套上,手套的輕微移位也會帶來力反饋的誤差。

優(yōu)化體驗不能停止!可以改造,也可以腦補

在手套真正用起來之前,還有一段小插曲。

在我調(diào)試很多遍之后,舵機依然紋絲不動。我跑到 Discord 上面求助,網(wǎng)友告訴我,并不是舵機線跟開發(fā)板連錯了,而是電流太小了,帶不起舵機。我需要單獨給舵機連接一個新的充電寶,而不是跟開發(fā)板共用一個充電寶。

LucidVR 的 Discord 討論組里有 14000 個關(guān)注者。有人將這副手套改良,把拉繩換成更加堅韌的塑料片,解決拉繩容易變形的問題。

也有人直接改變構(gòu)造,做成了外骨骼形狀,留出空間加更多傳感器。很多的開源項目,都不會面面俱到,相反他們會留出很多“空白”,讓技術(shù)愛好者自行探索。

外骨骼版丨作者供圖

Lucas 在他的演示中,把戴了手套的 VR 體驗描繪得令人異常興奮。在《半條命:Alyx》中,你可以拾起易拉罐,再扔出去,走到車旁,開門上車,甚至遇到危險時,爬墻而逃。不過,這更多是帶入其他感官體驗的“腦補”,你最多體驗到頂在一面墻上的阻力,不會有克服重力向上攀爬的感覺。

明知道這些,當我第一次戴上這只手套,感受著物體是大是小,是圓是方,即便只是從指尖傳來的生硬“觸感”,仍然讓我覺得新奇。在此之前,我甚至無法想象“空握”一只玻璃瓶。

幾乎在做手套同時,我自制了 SlimeVR 全身追蹤器。與手套“同理”,我做了五個傳感器分別綁在腳踝、大腿、腰部(因為 SlimeVR 軟件沒有對上肢建模),五個傳感器先通過 T-pose 重置識別出絕對位置,再通過“彼此”識別出相對位置,將電信號解析成虛擬人的動作。配合這副手套(手柄)和頭顯,就能讓“老二次元”在 VRChat 里快樂斗舞。

SlimeVR 也將代碼開源丨圖片來自 SlimeVR

幾個月之前,我將自己制作的視頻發(fā)在網(wǎng)上,隨機收獲了很多關(guān)注者。當然這還不是令我最興奮的?!癝limeVR 全身追蹤器”視頻發(fā)出兩個月后,其中最重要的零部件——BNO-080(九軸傳感器模塊)在淘寶上從 90 塊錢漲價到 300 塊錢。(在此之前,沒有人教學自制 SlimeVR 全身追蹤器,姑且當作是我激發(fā)了老二次元們的熱愛吧。)

傳感器模塊丨作者供圖

當然我收到的不都是“贊美”。我 3D 打印了一個能正好裝下小風扇的模型,接到頭顯上,解決悶熱的問題。

自制 VR 頭顯風扇丨作者供圖

但這一次,因為使用的風扇過于便宜,我的方案被調(diào)侃產(chǎn)生噪音過大——“像飛機場”。

關(guān)鍵詞:

相關(guān)閱讀:
熱點
圖片 圖片