文/VR陀螺 ZJ
屡出爆款的瑞典游戏开发团队Resolution Games有许多的代表作,《Demeo》、《Blaston》、《愤怒的小鸟》AR版、《Bait!》、《Wonderglade》、《Narrows》、《Acron:松鼠的攻击》、《cook-out:A Sandwich Tale》,这些游戏全部出自同一个团队Resolution Games之手。
在这个来自瑞典的VR小团队背后站着的是由“游戏大师”汤米·帕姆 (Tommy Palm)所引领的一队游戏老兵,这其中就包括后来加盟的《Doom》以及《反恐精英》背后的创作者。
从手游走向VR,从VR延伸到AR,Resolution Games在玩法上花样迭出,不断书写着开发界的传奇。(参考文章:一手导演了《糖果传奇》的“手游大师”,如何撑起VR爆款半边天?)
图源:网络
AR技术为开发者创造了一个新机会,使电子游戏能够进入现实世界。但是,与其他任何新的机会一样,为AR构建游戏也伴随着一系列全新的挑战,以前很少有开发者面临过这种挑战。
该如何创造一个围绕玩家360度的体验?如何考虑室内障碍物的因素?应该怎么做才能反映现实世界的照明和颜色? 使AR游戏有别于之前一切游戏的重要因素就是需要创造一种有意义的沉浸感,将现实和虚拟世界融合在一起。为此,Resolution Games的AR/MR技术总监Magnus Runesson为开发者们撰文分享了开发经验,他指出,AR的沉浸感全部归结于几个关键因素。
阴影 每个创作者都知道,阴影对于创造一个可信的世界至关重要,但是当把数字物体放在一个物理空间中时,你需要对它们进行一些不同的思考。环境遮蔽(Ambient occlusion)是这一难题的一个重要部分,开发者们需要在任何停留在表面上的物体下面放上一个小球状的阴影,而且阴影不能只是附着在物体上,还要清楚地与它所投射的表面相连。
静态和动态物体都可以从环境遮蔽中获益,但每种物体都需要采用一些不同的方法。
图源:Resolution Games
环境遮蔽通常是通过烘焙灯光或类似的方法自动实现的,但为了在静态物体上使用这种效果,可以在道具周围建立几何图形,这些几何图形能够成为环境遮蔽。因此,我们所有的静态道具周围都有我们称之为 "环境遮蔽裙"的东西。这样,我们就可以调整环境遮挡,使其在各种情况下都能达成我们想要的效果。 对于动态物体,我们通过用正交摄像机从底部向上绘制关卡块来实现环境遮蔽。这创造了一个深度缓冲区,其中黑色表示阴影。黑色越深,说明该方块越接近地面。
例如,我们将阴影绘制成32x32像素的纹理,然后将其转化为128x128的黑白纹理,并进行简单的模糊处理。这就创造了一个漂亮而柔和的环境遮挡阴影。然后我们在地平面上的透明四边形上绘制了128x128的纹理。 遵循自然界的照明线索 照明是每个游戏开发者都熟悉的东西,但很少有人不得不面对现实世界的照明情况,以及如何根据这些可变的条件来调整自己的方法。
在为AR项目创建照明时,开发者需要根据房间里实时发生的情况来调整虚拟物体的光线强度。如果有人在明亮的房间里玩游戏,那么他们的游戏看起来应该与在黑暗房间里玩的人不同。而且,正如你可以想象的那样,在照明方面还有很多其他因素需要考虑。
图源:Resolution Games
在《愤怒的小鸟AR:猪之岛》中,我们在设置中使用了两种光照:分别是定向光和环境光。ARKit给了我们一个介于0和1之间的光线估计值,在我们把这个值给到场景中的灯光之前需要先稍微进行一下调整,以获得我们想要的精确光线强度。我们还根据设备的光温估计值来调整灯光的颜色,包括环境光和方向光。
其他值得考虑的照明技巧之一是使用ARKit产生的环境纹理作为天空盒来影响场景中的照明,使物体能够反映在环境中的真实颜色,而不会呈现出突兀不自然的颜色。
如果环境纹理使用得当,颜色可以更好地反映不同的环境
图源:Resolution Games
提醒一下,这可能很难实现,因为环境可能时而非常明亮时而非常昏暗。因此,虽然这种技术可以用来产生很好的效果,但它也带来了一系列的挑战。 为房间添加一抹色彩 对于开发者来说,颜色在游戏中有着不可或缺的作用,但物体的颜色如何与现实世界的颜色混合起来,是一件很容易被忽视的问题。
通过改变视频源以适当匹配场景的方式来为现实世界着色,可以实现一种不会产生任何不适或破坏气氛的色彩方法。这是一个简单的解决方案,通常应用在照片共享应用程序的领域,而不是游戏开发,但不可否认的是,滤色器对改善沉浸感有奇效。
显示不同的主题环境,并为视频源提供相应的滤色器图源:Resolution Games 在上面《愤怒的小鸟AR:猪之岛》的例子中,视频源作为两个纹理提供给游戏,都在YCbCr颜色空间中。然后有一个着色器将YCbCr转换为RGB,我们正是通过修改这个着色器来达成这种效果。 该转换将YCbCr颜色当作一个Vector4,与一个4x4矩阵相乘,然后得到的向量就是RGB颜色。
增强现实世界 用颜色来设定色调是一回事,但如果想仅通过现有对象来管理场景中的现实世界对象该如何实现呢?我们还是可以使用同样的视频源,用折射着色器来修改这些对象。
首先,将视频源渲染为背景,然后渲染所有不透明的对象,抓取渲染缓冲区作为纹理使用。现在把这个渲染缓冲区的纹理用作你的折射着色器的输入。
图源:Resolution Games
在上面的动图中,看看顶部的冰块,它在经过一盆植物时发生了什么?答案是这个植物也被折射了。AR不仅仅是把虚拟物体放到真实环境中,它也同时在修改我们周围的真实世界。你越能做到这一点,你的AR项目就越真实沉浸。
用微粒创造空间意识 很少有东西能让玩家觉得他们需要在镜头外进行探索,从而进一步在AR中创造出一种沉浸感。增加微粒可以非常有效地实现这种效果,想想雪花飘落在房间里,或者星尘从夜空中落下。
图源:Resolution Games
像这样的元素会对玩家产生非常直接的影响,使他们想四处走动以查看更多的东西。
不要忘记:现实世界是一个障碍 让物体表现得和现实世界不一致会直接快速破坏AR 体验。如果你移动设备,让一件家具挡住了场景,那就真的需要产生遮挡的效果。
遮挡面是开发者可以将虚拟物体隐藏在真实物体后面的方式。但人们并不会总想这样做,毕竟大家可能更希望游戏能在桌子上玩,而不是藏在桌子下面。但如果用户的设备可以扫描真实世界的表面并检测深度,开发者就可以用这种深度作为缓冲来遮挡真实世界的任何东西。
图源:Resolution Games
这不是在AR游戏诞生之初就能做到的,但越来越多的设备拥有了这些能力,因此开发者应该抓住机会利用它们。
围绕增强现实的技术正在不断发展。随着连接手机的AR眼镜的出现,以及高通和Niantic等公司的新开发工具包即将推出,将会有更多新的方法供开发者构建沉浸式体验。
但无论技术发展到什么程度,上述提示应该为创建玩家可以享受、体验和完全沉浸其中的AR游戏提供一个很好的基础。