如何打造一款完美的VR游戏
AR游戏Pokemon Go一经发布,带来了无数的连环效应,疯狂的粉丝,瘫痪的服务器,崩溃的警察局,还有任天堂飙升的股价。之所以这款游戏能让全世界都疯狂,除了Pokemon本身顶级IP基因外,AR元素的加入是最重要的原因,是AR让Pokemon Go重生。那么如何打造一款完美的AR游戏呢?如果你有兴趣请继续往下看。
AR游戏,一种特立独行的游戏
AR是什么?全球的Pokemon Go玩家里了解AR的,也许连千分之一都不到,但这又怎么样,他们都已经在这个神奇的世界里得到了美妙的体验。
这样的AR游戏和此前的手游完全不在一个时空里。Pokemon Go研发公司Niantic Labs CEO兼创始人John Hanke说:“这是一个新的经历,把玩游戏与你做的其他事情混合在一起。”
链接真实,这就是AR的魅力。谁规定了游戏就一定是在电脑前飞快地操作鼠标和键盘,或者捧着手机戳来戳去,它也可以是另一种态度。回到家点了灯,地板上是一只比卡丘,在公园里散步,身边出现的是会唱歌的波可比,也许还能在逛超市的时候随手捡回家一只可达鸭。
AR的加入,得以把小精灵们带入真实的生活,也让Pokemon 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领域发挥作用。
Pokemon Go是一款实时战斗的游戏,所以SLAM技术就成为了关键和首选。SLAM技术可以通过多种不同的感应器去实时认知玩家所在的场景,根据现实场景构建对应的3D点云,再通过对3D点云的分析来了解现实场景的几何构造,比如哪里是地面,桌面,而哪里又是墙壁。了解了这些信息后,就可以在正确的地点生成正确的虚拟模型,以符合现实场景规律的方式让玩家和虚拟模型互动。
很可惜,也许是受限于开发的时间,又或者任天堂想先试水AR,目前版本的Pokemon Go可以说对SLAM相关技术运用较少,所以经常可以看到小精灵生成在非平面的地方,甚至会漂浮在空中,看起来非常的违和。如果使用场景认知技术,游戏更具真实感。当玩家看到精灵从地面跳到桌子再跳到自己床上的瞬间,一定会非常震撼。
另外,游戏需要与现实互动,但玩家并不一定明白精灵生成的算法,若精灵生成在某些高台的边缘,玩家可能会冒险追随,酿成不必要的悲剧。
2.基于语义的环境识别:
与看重几何结构的场景认知有所区别,基于语义的环境识别更偏向以人的方式去认识实际场景。比如识别场景是位于都市还是野外,场景内是否存在草坪或水塘。
借助现在火热的深度学习算法,以上的识别功能已经被逐渐实现,甚至可以超越人类本身的认知精度。
通过玩家摄像头提供的图片信息,图像识别算法可以识别出玩家所在场景以及场景周围的自然景观,这样玩家才有可能在草地里抓到妙蛙种子,在水里找到杰尼龟。基于语义的环境识别可以轻松的把小精灵的属性和玩家所处的周围环境有意义地串联在一起,不同的场景对应不同的故事脚本,而不是仅仅依靠LBS技术随机、无序地在地图里偶遇不同的小精灵。