2016年7月27日 星期三

‧ 揭秘 Pokemon Go,怎樣的技術可讓其更美好?

leiphone 凌海滨


本文作者蔣佳憶,北大數學系,對岸中國的海歸博士,目前擔任亮風台SLAM算法工程師。痴迷遊戲20年,收藏有從紅白機時代開始的所有遊戲主機

揭秘Pokemon Go,怎样的技术可让其更美好?

AR遊戲Pokemon Go一經發佈,帶來了無數的連環效應,瘋狂的粉絲,癱瘓的伺服器,崩潰的警察局,還有任天堂飆升的股價。

之所以這款遊戲能讓全世界都瘋狂,除了Pokemon本身頂級IP基因外,AR元素的加入是最重要的原因,是ARPokemon Go重生

獨特的AR遊戲
AR是什麼?全球的Pokemon Go玩家裡瞭解AR的,也許連千分之一都不到,但這又怎麼樣,他們都已經在這個神奇的世界里得到了美妙的體驗。

這樣的AR遊戲和此前的手游完全不在一個時空裡。Pokemon Go研發公司Niantic Labs CEO兼創始人John Hanke說:「這是一個新的經歷,把玩遊戲與你做的其他事情混合在一起。」

連接真實,這就是AR的魅力。誰規定了遊戲就一定是在電腦前飛快地操作滑鼠和鍵盤,或者捧著手機戳來戳去,它也可以是另一種態度。回到家點了燈,地板上是一隻比卡丘,在公園裡散步,身邊出現的是會唱歌的波可比,也許還能在逛超市的時候隨手撿回家一隻可達鴨

揭秘Pokemon Go,怎样的技术可让其更美好?

AR的加入,得以把小精靈們帶入真實的生活,也讓Pokemon Go和其他遊戲有了本質的區別,長時間的耐心等待終於換得了熱淚盈眶。

Pokemon Go並不完美
身在AR這行,所以早在Google的愚人節玩笑影片流出後,就開始持續關注著這款遊戲。影片裡玩家翻山越嶺,終於在一個山洞裡發現了小火龍,隨著一句「Gocha!」他露出欣慰的笑臉。這本是一個玩笑,但任天堂聯繫了 Niantic,讓這個玩笑變成了現實。


Google,再到Niantic官方宣傳,作為AR技術派,我之前認為這款AR遊戲至少會達到以下效果:
1、小精靈要和真實世界融為一體,要表現出確實存在於現實世界。這需要借助三維空間的重構與識別,讓小精靈生成在自然平面而非一些奇怪的地方。

2、玩家遇到的小精靈會和周圍環境產生一定關聯,比如叢林中的湖面裡會看到水系的小精靈而非草系。這不僅需要依託於LBS類的地圖服務,同時也要利用AR技術對周圍進行環境辨識以達到畫面細節上的融合。

3、手機屏幕成為了玩家和精靈世界的一扇窗戶。這需要精準定位玩家手機的位置,使得玩家近距離觀看小精靈,甚至根據定位產生互動,比如靠近會讓小精靈逃走。

但是目前的試玩體驗來看,還是不可避免得出現了賣家秀和買家秀的區別。如果是完美的AR遊戲,將需要什麼樣的技術支持呢?簡單分析一下:

場景結構認知:
ARAugmented Reality的縮寫,即增強現實。既然要增強現實,那麼首先就要理解現實。對現實的認知是AR技術中最重要的一部分,理解現實場景結構的算法以離線和在線為區別,分別稱作SFM(三維重建)類和SLAM(地圖構建與實時定位)類算法。SFM類算法在3D地圖的構建中已經成為標準算法,而SLAM類的算法之前更多應用在機器人領域,近幾年才開始在AR領域發揮作用。

Pokemon Go是一款實時戰鬥的遊戲,所以SLAM技術就成為了關鍵和首選。SLAM技術可以通過多種不同的感應器去實時認知玩家所在的場景,根據現實場景構建對應的3D點雲,再通過對3D點雲的分析來瞭解現實場景的幾何構造,比如哪裡是地面,桌面,而哪裡又是牆壁。瞭解了這些訊息後,就可以在正確的地點生成正確的虛擬模型,以符合現實場景規律的方式讓玩家和虛擬模型互動。

很可惜,也許是受限於開發的時間,又或者任天堂想先試水AR目前版本的Pokemon Go可以說對SLAM相關技術運用較少,所以經常可以看到小精靈生成在非平面的地方,甚至會漂浮在空中,看起來非常的違和。如果使用場景認知技術,遊戲更具真實感。當玩家看到精靈從地面跳到桌子再跳到自己床上的瞬間,一定會非常震撼。

另外,遊戲需要與現實互動,但玩家並不一定明白精靈生成的算法,若精靈生成在某些高台的邊緣,玩家可能會冒險追隨,釀成不必要的悲劇。

基於語義的環境辨識:
與看重幾何結構的場景認知有所區別,基於語義的環境辨識更偏向以人的方式去認識實際場景。比如辨識場景是位於都市還是野外,場景內是否存在草坪或水塘
借助現在火熱的深度學習算法,以上的辨識功能已經被逐漸實現,甚至可以超越人類本身的認知精度。

通過玩家攝影機提供的圖片訊息,圖像辨識算法可以辨識出玩家所在場景以及場景周圍的自然景觀,這樣玩家才有可能在草地裡抓到妙蛙種子,在水裡找到傑尼龜。

基於語義的環境辨識,可以輕鬆的把小精靈的屬性,和玩家所處的周圍環境,有意義地串聯在一起,不同的場景對應不同的故事腳本,而不是僅僅依靠LBS技術隨機、無序地在地圖裡偶遇不同的小精靈

顯示與定位技術:
體驗過Pokemon Go的玩家應該已經發現,當你想要和自己的小精靈「親近」,近距離看看這些萌物的時候,精靈們卻依然和玩家保持著「距離」。


這是因為Pokemon Go在算法上僅僅使用了手機自帶的陀螺儀對玩家進行非常粗略的定位,因此當玩家向前移動時,並不能體驗到小精靈「放大」的效果,反而原本站在桌上的小精靈站到了「空氣中」
揭秘Pokemon Go,怎样的技术可让其更美好?
漂浮在空氣中的小精靈

想要達到更強的代入感,就需要加強現實場景的顯示與定位技術。首先需要進行場景結構認知,只有理解了現實場景的結構,才可能把更多的虛擬模型正確疊加在現實場景中


比如在道館挑戰中,如果加入場景結構認知的算法,玩家會通過手機屏幕看到自家的房子變成了道館,即虛擬道館的模型疊加在現實世界的房屋結構上,這樣的體驗感顯然更優。

揭秘Pokemon Go,怎样的技术可让其更美好?
HoloLens把房間變成了Minecraft

其次,玩家想在這樣似真似幻的場景中隨意移動觀賞,還需要依靠精準的定位技術為什麼必須要進行定位呢?

這是因為虛擬場景的位置,完全是根據估計玩家相對於現實世界的位置,計算後投影到現實世界的,理想效果是玩家移動時,感覺虛擬模型就是固定在現實世界中的,成為了現實世界中的一部分。

所以如果不能精確估計玩家的位置,玩家移動後就會看到虛擬模型或場景有所偏離,產生類似 「漂浮」 的違和感。

反之,使用了精準的定位技術,玩家就可以近距離觀察所有虛擬物體的細節,比如我本人就一直想靠近看看萌萌的皮卡丘。目前的主流的定位技術有SLAM類算法和VO類(視覺里程計)算法

語音和手勢互動:
我曾幻想的小精靈捕獲過程是這樣的:扔出去一枚精靈球,同時大喊「就是你了,皮卡丘!」,接著捕獲到的皮卡丘就會萌態十足地出現在螢幕中——簡直是神一樣的體驗。很可惜,如此感人的畫面現在卻不能重現在Pokemon Go的遊戲裡。目前,作為AR技術中最重要的交互模塊,語音和手勢交互都已經達到較為成熟的階段,想達到上述效果也並非難於登天加入語音辨識功能,玩家可以呼喚自己喜愛的小精靈,更可以通過語音交互來指揮它們,如同一個真正的訓練師。另一方面,如果以手勢辨識替代手指滑動來操作精靈球,放出和收服精靈的快感也會增加。

AR眼鏡會讓Pokemon Go更好嗎?
當然,上面的分析和暢想絕對不是為了說明Pokemon Go不夠好,反而恰恰證明瞭,當技術和遊戲一起發展,這款遊戲的體驗還會有極大的優化空間。


此外,配套裝備也是另一種優化的方式在策劃遊戲時,Pokemon Go也想到了手機的局限性,所以還同時推出了手環。手環會在小精靈出現時震動提醒,免除了玩家一直舉著手機的麻煩。
揭秘Pokemon Go,怎样的技术可让其更美好?
可是手環+手機可能還不是最好的方式。從上面的分析中可以看到,原本想親眼看到的場景,一定要通過手機屏幕才可以看見,交互方式也只能局限為螢幕觸控,在行動時代無所不能的手機反而成為了玩家和小精靈間一道無形的牆。但如果有了眼鏡,這種體驗的缺失感就可以得到彌補。

AR眼鏡,讓玩家有了走進精靈世界的可能。攝影機和各類傳感器可以感知環境,迅速提醒玩家周圍有目標小精靈出現;AR眼鏡的光學呈現,不僅把手機螢幕拓寬了幾十倍,還進一步加深了虛擬的小精靈在現實世界的融入度,彷彿它們真的就在我們身邊;AR眼鏡還最大限度得解放了雙手,跑跳翻躍都不成問題。


Pokemon Go是一代人的夢想,童年時代的寄託從電視機和遊戲機跑了出來,變成生活中的陪伴。身為AR行業人,心裡還會生出一種想法,希望自己有能力把這種陪伴變得越來越好,也私心地希望除了Pokemon Go以外,市場上也能有這樣的好遊戲。

                                                                                                                                                                                                                            

沒有留言:

張貼留言