Pokémon_Go

AR游戏Pokémon Go一经发布,带来了无数的连环效应,疯狂的粉丝,瘫痪的服务器,崩溃的警察局,还有任天堂飙升的股价。

之所以这款游戏能让全世界都疯狂,除了Pokémon本身顶级IP基因外,AR元素的加入是最重要的原因,是AR让Pokémon Go重生。

特立独行的AR游戏

AR是什么?全球的Pokémon Go玩家里了解AR的,也许连千分之一都不到,但这又怎么样,他们都已经在这个神奇的世界里得到了美妙的体验。

这样的AR游戏和此前的手游完全不在一个时空里。Pokémon Go研发公司Niantic Labs CEO兼创始人John Hanke说:“这是一个新的经历,把玩游戏与你做的其他事情混合在一起。”

链接真实,这就是AR的魅力。谁规定了游戏就一定是在电脑前飞快地操作鼠标和键盘,或者捧着手机戳来戳去,它也可以是另一种态度。回到家点了灯,地板上是一只比卡丘,在公园里散步,身边出现的是会唱歌的波可比,也许还能在逛超市的时候随手捡回家一只可达鸭。

AR的加入,得以把小精灵们带入真实的生活,也让Pokémon Go和其他游戏有了本质的区别,长时间的耐心等待终于换得了热泪盈眶。

卖家秀和买家秀,AR不止于此

身在AR这行,所以早在Google的愚人节玩笑视频流出后,就开始持续关注着这款游戏。视频里玩家翻山越岭,终于在一个山洞里发现了小火龙,随着一句“Gocha!”他露出欣慰的笑脸。这本是一个玩笑,但任天堂联系了Niantic,让这个玩笑变成了现实。

从Google的视频,再到Niantic的官方宣传视频,作为AR技术派,我之前认为这款AR游戏至少会达到以下效果:

1. 小精灵要和真实世界融为一体,要表现出确实存在于现实世界。这需要借助三维空间的重构与识别,让小精灵生成在自然平面而非一些奇怪的地方。

2. 玩家遇到的小精灵会和周围环境产生一定关联,比如丛林中的湖面里会看到水系的小精灵而非草系。这不仅需要依托于LBS类的地图服务,同时也要利用AR技术对周围进行环境识别以达到画面细节上的融合。

3. 手机屏幕成为了玩家和精灵世界的一扇窗户。这需要精准定位玩家手机的位置,使得玩家近距离观看小精灵,甚至根据定位产生互动,比如靠近会让小精灵逃走。

但从目前的试玩体验来看,还是不可避免地出现了卖家秀和买家秀的区别。如果是完美的AR游戏,将需要什么样的技术支持呢,简单分析一下:

1.场景结构认知:

AR是Augmented Reality的缩写,即增强现实。既然要增强现实,那么首先就要理解现实。对现实的认知是AR技术中最重要的一部分,理解现实场景结构的算法以离线和在线为区别,分别称作SFM(三维重建)类和SLAM(地图构建与实时定位)类算法。SFM类算法在3D地图的构建中已经成为标准算法,而SLAM类的算法之前更多应用在机器人领域,近几年才开始在AR领域发挥作用。

Pokémon Go是一款实时战斗的游戏,所以SLAM技术就成为了关键和首选。SLAM技术可以通过多种不同的感应器去实时认知玩家所在的场景,根据现实场景构建对应的3D点云,再通过对3D点云的分析来了解现实场景的几何构造,比如哪里是地面,桌面,而哪里又是墙壁。了解了这些信息后,就可以在正确的地点生成正确的虚拟模型,以符合现实场景规律的方式让玩家和虚拟模型互动。

很可惜,也许是受限于开发的时间,又或者任天堂想先试水AR,目前版本的Pokémon Go可以说对SLAM相关技术运用较少,所以经常可以看到小精灵生成在非平面的地方,甚至会漂浮在空中,看起来非常的违和。如果使用场景认知技术,游戏更具真实感。当玩家看到精灵从地面跳到桌子再跳到自己床上的瞬间,一定会非常震撼。

另外,游戏需要与现实互动,但玩家并不一定明白精灵生成的算法,若精灵生成在某些高台的边缘,玩家可能会冒险追随,酿成不必要的悲剧。

2.基于语义的环境识别:

与看重几何结构的场景认知有所区别,基于语义的环境识别更偏向以人的方式去认识实际场景。比如识别场景是位于都市还是野外,场景内是否存在草坪或水塘。

借助现在火热的深度学习算法,以上的识别功能已经被逐渐实现,甚至可以超越人类本身的认知精度。

通过玩家摄像头提供的图片信息,图像识别算法可以识别出玩家所在场景以及场景周围的自然景观,这样玩家才有可能在草地里抓到妙蛙种子,在水里找到杰尼龟。基于语义的环境识别可以轻松的把小精灵的属性和玩家所处的周围环境有意义地串联在一起,不同的场景对应不同的故事脚本,而不是仅仅依靠LBS技术随机、无序地在地图里偶遇不同的小精灵。

3.显示与定位技术

体验过Pokémon Go的玩家应该已经发现,当你想要和自己的小精灵“亲近”,近距离看看这些萌物的时候,精灵们却依然和玩家保持着“距离”。这是因为Pokémon Go在算法上仅仅使用了手机自带的陀螺仪对玩家进行非常粗略的定位,因此当玩家向前移动时,并不能体验到小精灵“放大”的效果,反而原本站在桌上的小精灵站到了“空气中”。

漂浮在空气中的小精灵
漂浮在空气中的小精灵

想要达到更强的带入感,就需要加强现实场景的显示与定位技术。首先需要进行场景结构认知,只有理解了现实场景的结构,才可能把更多的虚拟模型正确叠加在现实场景中。比如在道馆挑战中,如果加入场景结构认知的算法,玩家会通过手机屏幕看到自家的房子变成了道馆,即虚拟道馆的模型叠加在现实世界的房屋结构上,这样的体验感显然更优。

HoloLens把房间变成了Minecraft
HoloLens把房间变成了Minecraft

其次,玩家想在这样似真似幻的场景中随意移动观赏,还需要依靠精准的定位技术。为什么必须要进行定位呢?这是因为虚拟场景的位置完全是根据估计玩家相对于现实世界的位置计算后投影到现实世界的,理想效果是玩家移动时感觉虚拟模型就是固定在现实世界中的,成为了现实世界中的一部分。所以如果不能精确估计玩家的位置,玩家移动后就会看到虚拟模型或场景有所偏离,产生类似“漂浮”的违和感。反之,使用了精准的定位技术,玩家就可以近距离观察所有虚拟物体的细节,比如我本人就一直想靠近看看萌萌的皮卡丘。目前的主流的定位技术有SLAM类算法和VO类(视觉里程计)算法。

4.语音和手势互动

我曾幻想的小精灵捕获过程是这样的:扔出去一枚精灵球,同时大喊“就是你了,皮卡丘!”(好中二,好羞耻…)接着捕获到的皮卡丘就会萌态十足地出现在屏幕中——简直是神一样的体验。很可惜,如此感人的画面现在却不能重现在Pokémon Go的游戏里。目前,作为AR技术中最重要的交互模块,语音和手势交互都已经达到较为成熟的阶段,想达到上述效果也并非难于登天。加入语音识别功能,玩家可以呼唤自己喜爱的小精灵,更可以通过语音交互来指挥它们,如同一个真正的训练师。另一方面,如果以手势识别替代手指滑动来操作精灵球,放出和收服精灵的快感也会增长。

如果有了眼镜,体验会更好吗?

当然,上面的分析和畅想绝对不是为了说明Pokémon Go不够好,反而恰恰证明了,当技术和游戏一起发展,这款游戏的体验还会有极大的优化空间。

此外,配套装备也是另一种优化的方式。在策划游戏时,Pokémon Go也想到了手机的局限性,所以还同时推出了手环。手环会在小精灵出现时震动提醒,免除了玩家一直举着手机的麻烦。

可是手环+手机可能还不是最好的方式。从上面的分析中可以看到,原本想亲眼看到的场景,一定要通过手机屏幕才可以看见,交互方式也只能局限为屏幕触控,在移动时代无所不能的手机反而成为了玩家和小精灵间一道无形的墙。但如果有了眼镜,这种体验的缺失感就可以得到弥补。

AR眼镜,让玩家有了走进精灵世界的可能。摄像头和各类传感器可以感知环境,迅速提醒玩家周围有目标小精灵出现;AR眼镜的光学呈现,不仅把手机屏幕拓宽了几十倍,还进一步加深了虚拟的小精灵在现实世界的融入度,仿佛它们真的就在我们身边;AR眼镜还最大限度得解放了双手,跑跳翻跃都不成问题。

Pokémon Go是一代人的梦想,童年时代的寄托从电视机和游戏机跑了出来,变成生活中的陪伴。身为AR行业人,心里还会生出一种想法,希望自己有能力把这种陪伴变得越来越好,也私心地希望除了Pokémon Go以外,国内也能有这样的好游戏。

注:本文作者蒋佳忆,北大数学系,海归博士,目前担任亮风台SLAM算法工程师。痴迷游戏20年,收藏有从红白机时代开始的所有游戏主机。