兴波作浪:在UE5中为《觉醒深渊》开发逼真的水力学系统

科技   2024-11-22 12:54   上海  
大家好!我是Joe Wheater,The Chinese Room工作室的一名程序员。最近,我作为团队一员,参与了我们叙事恐怖游戏《觉醒深渊》的水力学系统开发工作。这款游戏已于6月登陆PC、PlayStation 5和Xbox Series X|S,玩家将回到1975年,置身于北海的一座石油钻井平台,迎接一场未知的恐怖。Cameron“Caz”McLeary必须穿梭于这座摇摇欲坠的建筑并找寻回家的路。
鉴于游戏的主体背景设定,玩家几乎时刻置身于水中——无论是钻井平台被淹没的楼层,还是他们脚下危机四伏的北海——我们的目标是尽可能让每一滴水显得逼真且危险重重。在此,我将分享在虚幻引擎5中打造逼真水力学系统的历程及其成果,并为其他希望投身于水下冒险游戏开发的同行提供建议。

我们面临的挑战

我们面临的挑战是创造一种无处不在的水体,让玩家濒临极限,感到既逼真又困难重重,但绝非无法应对。游戏中有两种类型的水:一种是悄悄侵入钻井平台内部,并即将淹没它的水,另一种则是包围着钻井平台的浩瀚北海。
两者都在游戏中发挥着营造氛围和紧张感的作用,同时触动玩家最原始的恐惧,例如幽闭恐惧(对狭小空间的恐惧)、水下人工物恐惧(对水下人造物体的恐惧)、死亡恐惧(对死亡的恐惧)、孤独恐惧(对孤立无援的恐惧)、深海恐惧(对广阔水域的恐惧)、黑夜恐惧(对黑暗的恐惧)以及恐高(对高度的恐惧)。

玩家将发现自己被困于全世界最危险的环境之一——一座摇摇欲坠的钻井平台上。北海波涛汹涌,他们该如何逃脱?
虽然这两种水都有助于为游戏营造整体故事氛围和恐怖感,但它们的外观、机制和功能却截然不同。接下来,我们将分享制作钻井平台内部水体的方法。水位会与游戏的紧张感同步上升和流动,玩家将时常与它近距离接触。

沉没之感:塑造外观

在《觉醒深渊》中,随着游戏进行,秘密和故事逐渐揭晓:工作人员开始变异,钻井平台分崩离析,变为金属碎片坠入下方汹涌的海浪,水开始渗入并淹没钻井平台的较低楼层。不幸的是,Caz以及玩家将不得不深入这种巨大的威胁,探索钻井平台被淹没的楼层,才能取得进展。
在《觉醒深渊》中,玩家需要在钻井平台被水淹没的较低楼层内游泳穿梭,以逃生、触发机制或寻找物品。
将游戏内多个章节的场景设定在水中,无疑是一种独特的关卡设计选择。我们希望打造全新机制供玩家探索和掌握,这给我们的团队带来了有趣又充满乐趣的挑战。鉴于水是游戏中的主要威胁之一,我们希望其外观能够与其威力相匹配,并赋予它细节、深度和阴暗感。
为了打造这种外观,我们使用虚幻引擎的
Niagara视效系统开发了一套二维浅水模拟系统。该二维模拟系统仅模拟水面,并计算描述其运动的方程。因此,当水流湍急(主要是在水涌入的场景中)时,它会导致水面高度变化,从而产生波浪和涟漪,显得狂野且危险。
这些场景虽然看起来疯狂且难以掌控,但实际上我们设置了水体积系统,以应对此类情况。我们标记了墙壁和地板网格体,以便将它们烘焙成高度图纹理。这种高度图纹理代表了水可以流动的空间,让这些网格体成为模拟系统中的边界,从而使水在撞上它们时能够反弹和反射。

玩家时常需要潜入水中,在破碎崩塌的房间中穿行,或逆着汹涌的水流奋力游向下一个区域。《觉醒深渊》的场景阴暗且充满金属感。我们希望确保关卡能够充分利用水作为障碍,增加额外的难度系数,同时又不至于让玩家感到绝望或沮丧。
为了实现这一目标,我们依靠后期处理营造了身处水下的感觉。我们还使用了雾体积、粒子、焦散光模式、景深、模糊和泛光效果,赋予水体额外的维度,并为物体添加失焦外观。
我们特意模糊了玩家潜入水下时的视野。这不仅增添了有趣的游戏玩法变化并提高了挑战性,还有助于玩家意识到自己正身处水下,必须在窒息前尽快移动。
我们还在水中额外添加了雾体积和粒子系统,使其看似含有其他污染物,营造出水体浑浊且浓稠的感觉。我们还加入了灰尘、碎片和气泡层,进一步模糊了视野。这些粒子系统特别有助于营造运动感,玩家在水中移动时,气泡将生成并浮到水面,灰尘轻轻旋转,水流也会涌动。
后期处理和粒子系统的实际应用。从左到右,我们看到的依次是缺少后期处理/粒子/雾/光的效果,然后是开启了雾、光和粒子但未经过后期处理的效果,最后是所有系统全部生效的最终成品。

深入探索:开发感觉

我们希望确保水位上升时的紧迫感与在陆地上时一样强烈,而且游戏玩法能够彰显故事紧张恐怖的氛围。为此,我们开发并采用了一个泵系统,以赋予水速度和水流,从而不仅让水有了速度和刺激感,还能辅助玩家移动。
泵系统由胶囊状对象组成,可赋予水的模拟速度,并生成在水面上移动的波浪和涟漪,以指示方向。然后,我们将多个泵连接到主角的手臂、手和脚上,使泵之间产生交互,并为玩家在水中的操作提供了逼真且实时的流动感。

为了加强沉浸感,我们希望水体不仅能根据玩家的操作动态移动,还能影响浸没在其中的物体。我们发现,水体模拟并没有使油桶或钻井平台上的钢筋等物理对象对水面运动做出反应。
为了解决这个问题,我们使用了Niagara的GPU回读功能,它使我们能够查询模拟,并获悉特定位置的水流方向、强度和水面高度。借助这些数据,我们得以对物体施加浮力,使其漂浮,并使用水流力让物体与水面模拟同步移动,从而给人一种物体运动与玩家直接相关的印象。

我们还在开发过程中试验了其他机制。这些机制本可以进一步强化沉浸感和真实性,但很遗憾,它们对游戏体验产生了负面影响。
例如,我们研究了如何模拟穿着工作服游泳时,工作服被水浸湿的感觉。这会影响我们的主角Caz——一名身处地球极寒环境的工程师。他将身穿这种厚重的衣服,然而就和现实世界中一样,这会拖慢他的游泳速度并降低他的浮力。
Beira D工作人员所穿的制服。我们考虑过为Caz增加逼真的浸水机制,这样玩家游泳时,衣服就会实时吸水。厚重的材料和衣物分层结合起来,导致主角迅速下沉,极大地增加了水下关卡的挑战性。

我们尝试实现这一机制,但发现玩起来十分令人沮丧,也很难向玩家传达当下正在发生什么。此外,这种缓慢的游泳速度还限制了玩家能一口气在水下游动的距离,也限制了设计团队为游泳玩法设计的空间大小。最终,为了更流畅的游戏体验,我们移除了该机制,但这确实是一个有趣的主意!

用于创建逼真水体的工具

在制作《觉醒深渊》中的水体时,我们发现我们可以利用虚幻引擎内置的一系列工具和技术,并从中汲取灵感。它们包括:

  • 单层水体着色模型:该模型对在虚幻引擎中制作逼真的水体非常有帮助,我们从Epic的现有资源中学到了许多关于其实现方法和效果的知识。

  • 内容示例项目:该项目包含有关引擎方方面面的大量实用示例,对我们学习Niagara和流体模拟至关重要。

  • 材质编辑器:我们使用材质编辑器在模拟数据之上叠加基于纹理的效果。这在我们为水体视觉效果添加特效时非常实用,还有助于我们随着游戏进展讲述故事。

  • Niagara:我们将Niagara用于模拟本身,同时我们也用它制作了许多粒子系统,例如爆裂的水管、水中的碎片等。我们还发现,现有的Niagara模拟阶段学习资料非常有帮助。它们对于我们理解如何在虚幻引擎中构建流体模拟至关重要。

  • 水体系统:我们的水体系统会通过Niagara数据接口,读取Niagara中的模拟数据。这使游戏中的其他系统能够根据模拟的当前状态,做出动态反应。

  • 雾体积:我们使用体积材质渲染了水体中的雾,该材质能够通过采样2D数组渲染目标获取水体模拟的信息。

选择虚幻引擎5

我是Nick Slaven,The Chinese Room工作室旗下作品《觉醒深渊》的技术总监。
对于《觉醒深渊》而言,虚幻引擎实乃不二之选。虚幻引擎所提供的保真度和对创作过程的控制力,及其作为引擎的功能,正是我们实现时任创意总监Dan Pinchbeck所构想的游戏概念所需要的。
一开始,团队的虚幻引擎技术水平参差不齐,但我们通过与Epic合作安排培训,使他们迅速掌握了虚幻引擎4.26,随后又过渡到了虚幻引擎5。引擎版本升级让我们得以利用Epic的Nanite和Lumen等全新技术,它们不仅改善了游戏的外观和氛围,还提高了我们的工作流程效率。Lumen的实时光照等功能让我们能够立即看到变更光照设置的效果,无需等待阴影贴图的烘焙。
此外,虚幻引擎提供的水体技术让我们能够很好地模拟北海,其着色器工具则为我们的内部水体模拟提供了基础构建模块。我们还广泛使用MetaHuman制作游戏中的钻井工人,从而将游戏的真实感和叙事提升到全新的高度。
最终,我们将控制绑定技术应用于变异后的Beira D钻井平台工作人员,从而创造出栩栩如生的异界生物,让玩家感到恐惧又好奇。
近期焦点
Epic全新一站式内容商城Fab今日上线!
Epic for Indies现已登陆Epic开发者社区
虚幻引擎里你可能不知道的功能 | UnrealFest演讲精粹
使用简单的通用材质来提高UI性能 | UnrealFest演讲精粹
Motion Blur用UE5为《黑色国度》带来逼真视觉效果

扫描下方二维码,关注后点击菜单栏按钮“更多内容”并选择“联系我们”获得更多虚幻引擎的授权合作方式和技术支持

长按屏幕选择“识别二维码”关注虚幻引擎

“虚幻引擎”微信公众账号是Epic Games旗下Unreal Engine的中文官方微信频道,在这里我们与大家一起分享关于虚幻引擎的开发经验与最新活动。

虚幻引擎
Epic Games 旗下 Unreal Engine 虚幻引擎官方订阅号
 最新文章