建立一个逼真且可信的世界是我们在《古墓丽影:掘起(Rise of the Tomb Raider)》中努力实现的主要目标之一,其中与环境的对抗总是牵涉到「女人 Vs. 荒野」的部分。
在《古墓丽影:掘起》中有个环境就是危险的雪山。要使萝拉与周遭互动看似真实且可信,是创造这种类型的环境众多挑战之一。而我们的解决方案就是创造一个模拟互动的雪,使萝拉走过积雪的地方都会产生足迹。
我们寻找了许多不同的方法来解决这个难题,例如视差绘製贴图(Parallax Decal Mapping)和传统 2D / 3D 粒子系统(Particle Systems)等方式,但这些都没有我们的需要。在经过多次的实验后,我们创造了反覆变化地形系统(Iteration the Deformable Terrain System)。
这个系统能让设计师自订可变化的地形区域,使人、动物和其他物体能与周遭环境进行互动。这项技术是透过高度的动态生成和法线贴图(Normal Map)来实现在最高点与平滑的表面间移动,以形成高峰和谷底的地形。
在整个开发过程中,我们也遇到了些许「障碍」。其中最大的难题就是地形顶点的密度,网格遍佈得过于疏或密,都会可能使地形变化失败。我们首先使用手动的方式调整网格至最佳密度,但很快地使这大空间造成了性能和记忆体的问题,而且这个方法难以製作层面上的循环,我们最终採用的解决方案是动态密铺(Dynamic Tessellation)。动态密铺会自动补强镜头范围内的网格密度,这提供了有效的解决方法并保持在我们预计的性能和记忆体中,同时也能随著设计师的自由地製作层面上的循环。
另一个难题就是萝拉周围的环境从未影响到她。萝拉可能在世界中移动自如,而根本不知道她是否与环境互动。我们透过动态调整她对于深度变化的移动速率和动画基础。萝拉现在经过厚厚的积雪会有减慢和费力的感觉,就立足在个真实世界般。
我们的最后一到难题是玩家会跑来跑去,最后一切都将被夷为平地。虽然现实,但不美观。我们的解决方法是加入重置定时器,能让地形的变化随著时间过去而自然地「填补」。
呵,在这整个发展过程中有个小趣事,我们曾展开商讨要使用动态捕捉让萝拉做出雪天使的动作。遗憾的是,我们没有成功地使用在游戏中!
另一项在《古墓丽影:掘起》中有趣的挑战即为于衝击性的时刻加入一层额外的视觉效果。我们希望这些视觉效果不仅有利于加强那一刻的真实感,而且还提供了超乎游戏的品质。我们选择创造萝拉遇上雪崩的那一刻。
这一刻需要以即时运算进行,这就表示无法以预染的过场动画表示。我们只需要利用我们引擎上的所有功能来修改世界、使萝拉的服装即时更新,无需如同电影般昂贵且耗时的编辑。
我们在早期的概念阶段,我们在游戏的粒子系统中尝试过几种操纵网格的组合,但都没有帮助。我们努力在预定的范围内同时达成逼真的移动、互动和视觉效果。我们使用传统技术是无法达到预期的结果,所以我们望向以电影化的技术来解决。我们的目标:採用流体动力学整合实际的环境来模拟真实的雪崩。
而这个新方向同时也带来了全新的挑战要解决。我们如何建立?我们如何整合?我们该如何处理人物、几何层次、镜头和灯光?该怎么针对性能优化?
我们的首要任务就是调查如何重现雪崩的实际环境。我们调查了许多关于精灵基础翻书动画(Sprite Based Flipbook Animations)、3D 纹理和 Bink 动画回播,最后我们选择使用 Bink 动画,这是我们的引擎可以使用且能非常有效地管理记忆体的方式。我们不知道会消耗多少成本在解码和绘製上,故在经过分析后,我们的结论是解码和绘製平均每帧需小于 1 ms,这是个非常可行的解决方法。
接著我们也研究了一些业内的标淮软体套件来模拟我们的雪崩。我们决定使用 Side Effects Houdini,Houdini 是个功能齐全的 3D 软件,专门用于视觉效果。它有流畅且灵活的视觉手稿流程,这使我们能够轻鬆打造外观和感觉的效果。关于雪崩,我们利用粒子的混合和模拟火烧的定制著色器来实现了最终的结果。
一旦我们有了可行的再生装置和视觉外观,我们就需要建立个有效并循环的作业流程。我们最大的担忧就是几何体的变化量、灯光和镜头在整个过程中的接受度,这部分我们希望能尽量避免。为了协助减缓这个问题,我们在各个部分设置停留期间,使其不再改变。我们仍大量使用 FBX 和 Alembic 格式,以帮助内容输出到 Houdini。
我们接下来进行光源与渲染的最终排列。随著《古墓丽影:掘起》中使用到的基于物理渲染(Physically Based Rendering)兴起,这变得相当容易。我们能够在 Houdini 中利用我们现有的 HDR(高动态范围,High Dynamic Range)环境贴图和光源讯息来複製出我们在游戏中的灯光条件。Houdini 具有能将我们的所有内容渲染成图层的能力,并且能针对需要的部分进行色彩校正。
在游戏中使用合成图层更是具挑战性的。传统的技术为元素分层相互往上堆迭。不过若要修改任何一个几何体,往往需要重新渲染图层以保持一致。因为知道有反覆的图层,所以我们希望尽可能避免重複作业的可能。为此,我们研究了景深合成(Depth Compositing),景深合成是指每个渲染图像都包含多个样本的景深信息,能让分层的图像不会残存。
我们深度探讨与整合景深合成的想法后,认为对于开发进度太过昂贵且费时。我们知道这限制了我们构建镜头的方式,会造成极少的部分回去使用传统技术。我们避免了与具半透明雪崩互动的动态对象,例如人物、布料和树叶。
除了雪崩j外,在游戏中的其他几个方面也有使用这种技术,以帮助增加额外的刺激感和视觉乐趣。
《古墓丽影:掘起》将于 2015 年 11 月 10 日在 Xbox One / Xbox 360 上先行推出,PS4 / PC 版则预定于 2016 年发售。
原文由《古墓丽影:掘起》技术艺术总监 Mike Oliver 撰写