如何徒手抓精靈?我們試了試在VR和MR里玩Pokemon Go
雷鋒網 2016-08-31 08:38
雷鋒網按:本文來自微動投稿雷鋒網發布。
(圖:微動和易瞳共同嘗試了VR和MR版Pokémon GO)
你們日思夜想的手感操控VR和MR版Pokémon GO,我們做出來了。這才是Pokémon GO打破次元壁的正確方式。
Pokémon GO讓AR和手游、街頭甚至社交相結合,僅僅是這幾個關鍵詞就足夠吸引人,再加上Pokémon 這一世紀大IP,好像不火反而沒道理。但是在手機上用長按→滑動的觸屏操作模擬「拋出」精靈球,將寶可夢收入其中……會不會有些略顯拘謹和中二?
雖 然國服還未開放,但是中國玩家對Pokémon GO的思考和想像並不少,Pokémon GO確實帶給我們很多驚喜,但是玩家最期待看到的不是技術最初級的樣子,而是將之與最適合的技術表現形式相結合,從情節設計和操作方式來看,VR/MR+ 手感操控能帶給我們更爽的體驗。
| 開腦洞容易,但實現呢?
我們嘗試了VR和MR版Pokémon GO,讓寶可夢從手機螢幕中解禁,你可以抓住想要選擇的精靈球,在眼前調整角度瞄準後衝著寶可夢拋出。如果你遇到的是一隻剛烈而又狡猾的寶可夢,為了避免 被帶節奏,還可以打圈兒扔出最強旋轉精靈球、投喂食物,大概沒有哪只寶可夢可以從閣下手中逃脫了吧。
| 關於開發教程
相 信各位老司機們對VR的了解已經非常透徹,我們做的這段demo除了想要幫大家解鎖抓寶可夢的新姿勢,還想把MR+手感操控的技術表現形式普及給大家。以 下為開發教程,除此之外SDK也可以在我們Vidoo官網免費下載,期待開發者在吃下這記良心安利後會有更多大作產生。
手感操控:
首先,通過我們的雙目深度傳感器得到深度圖像。
在深度圖像中,我們通過修改每個像素RGB的值用以標定該像素與傳感器之間的距離。當我們觀察深度圖像時,會發現其效果與我們熟悉的紅外熱成像圖像類似,只不過我們把溫度替換成了距離。
下圖中,左側為深度圖像,右側為原始圖像。通過觀察可以看出,距離越近的區域,顏色越紅;距離越遠的區域,顏色越藍。
其次,我們將深度圖像中符合人體手部特徵的部分分割出來,進行手部姿態、動作的識別。
這裡需要指出的是手勢識別算法是基於深度圖像而不是普通圖像的。這樣可以方便我們獲得手部每個點的深度信息,從而還原出整手的骨骼結構。如果我們想要與虛擬物體進行觸碰式的交互,骨骼結構是不可缺失的技術前提。
最後,我們通過算法將傳感器坐標系(包含手部骨骼空間信息)、虛擬世界坐標系(包含所有虛擬物體的空間信息)、現實坐標系(包含環境信息和手部信息)這三個坐標系對齊。
這樣,我們可以將檢測到的手部骨骼與真實的雙手對齊;將虛擬物體與現實環境對齊。當真實的手部觸碰到虛擬的物體時,將會產生類似滑鼠點擊的事件,來驅動程序的執行,具體到Pokémon GO裡面,就是投喂小精靈,扔出精靈球等操作。
至此,已完成了手感操控的基礎部分,後續將進一步在Unity3D中完善事件的邏輯,完成Pokémon GO中將精靈球、食物拋向小精靈的功能。
| MR顯示
接下來,我們要做的就是在空間當中顯示Pokémon GO中的遊戲元素,並且讓皮卡丘和精靈球顯示在合理的空間範圍之內。
我們採用視頻透視技術,通過雙目攝像頭實時採集你看到的「現實」世界並將之數字化,然後通過計算機算法實時渲染畫面。這樣做完既可以完全疊加虛擬圖像,也可以看到經過計算機渲染後新的「現實畫面」,滿足了我們對於虛擬物體和現實環境同時存在的需求。
在解決了交互和顯示核心技術之後,在Unity3D裡面加入相應的SDK,調整下流程邏輯。MR版Pokémon GO便誕生啦。
| MR正名
本 文所提到的「MR」並非「混合現實」。MR是介於VR與AR之間的技術,名為介導現實技術,由「智能硬體之父」多倫多大學教授SteveMann提出的介 導現實,全稱Mediated Reality(簡稱MR)。VR是純虛擬數字畫面,包括AR在內的Mixed Reality是虛擬數字畫面+裸眼現實,MR是數字化現實+虛擬數字畫面。
MR也並非近幾年才出現,上世紀七八十年代,為了增強自身視覺效果,讓眼睛在任何情境下都能夠「看到」周圍環境,Steve Mann設計出可穿戴智能硬體"Digital Eye Glass"作為視覺輔助設備,這被看作是對MR的初步探索。
革新人類視覺感知的能力,不僅涉及到對現實進行數字疊加,還需要用到增刪改等其他視覺修飾手段,從上世紀90年代開始,MR(介導現實)的研究逐步在多倫多大學的HI實驗室中展開,一批頂尖學科人才從HI實驗室脫穎而出。
編者註:雷鋒網此前發過多年跟隨Steve Mann的易瞳科技CTO艾韜文章——《神奇的虛實世界:關於你可能還不那麼了解的智能眼鏡》,談及了AR/VR/MR的區別。
(圖為易瞳MR智能眼鏡——VMG-PROV)
| 「手感操控」非「手勢識別」
手感操控不等於手勢識別,手感操控包括手勢識別。
手感操控要滿足以下三個基本點:
1、手感操控一定要有深度信息,傳感器要知道手離用戶有多遠。
2、手感操控包括手勢識別。手勢識別通過圖像算法更新得到手部姿態和手部動作指令,將手的深度信息和手勢識別信息相疊加,得到:手離我有多遠,手在做什麼的完整信息,才能稱為手感操控。
3、在VR中,手感操控要給用戶提供真實的手部圖像。通過算法把手部影像拉近到和用戶真實的前庭感官同步,能看到深度信息,給用戶最真實的操控的感覺。如果用戶看到的是機械的手或者模擬的手,交互友好度會大打折扣。