怎样用视觉效果营造CRPG的氛围 Glasshouse

今天的客座博客将深入探讨封建朋克世界 Glasshouse,这款游戏开发集体FLAT28即将推出的CRPG。这款正在开发中的产品;游戏由获奖作家Giacomo Montagnoli撰写,有望用高保真图形提供叙事丰富的体验。跟随 FLAT28 的首席技术美术师 Andrea Marinelli 了解他如何使用体积光照、光照剪影和布料模拟等功能构建 Glasshouse 的大气环境。
简介:确定设计目标
我是 FLAT28 的首席技术美术师 Andrea Marinelli,他在视频游戏行业有超过 12 年的经验。我的职业生涯始于 2013 年,从事 VR 项目开发;随着时间的推移,我转向了 PC 和游戏主机开发,从而在多个平台和技术扩展我的专业知识。
自 2022 年加入 FLAT28 以来,我就一直是 Glasshouse 开发团队的一员。这个叙事驱动的CRPG灵感来自于《极乐迪斯科》和《病理2》。我们的目标是在这些基础上继续发展,同时为游戏类型带来独特的变化。
从视觉上讲,我们希望建立一种可立即识别的独特风格。从一开始,我们就追求高视觉质量,因此我们选择了Unity HDRP,以进一步提升视觉效果并实现震撼的外观。这种工作流程是实现这一目标的关键因素之一。
在这篇博客里,我们将探索游戏应该注意什么,应该使用哪些工具,怎样用静态和动态光照,以及怎样用布料模拟等为玩家提供故事线索。
确定场景的关键要素并使其大放异彩
我一直认为,光照不仅仅是增强游戏视觉效果的工具,也是关键的叙事工具。合适的光照可以营造氛围、氛围,甚至能给玩家暗示特定场景发生了什么。
类似暖光灯、聚光灯或电视闪烁等简单事物都能向玩家传达关于房间故事的重要信息。
在 Glasshouse 中,每个房间都必须具有连贯感和独特性。每个人都应该讲述自己的故事,并揭示一些关于角色的故事。
类似的结果有许多方法,有些方法比另一些方法更有效。在本例中,我组合使用了实时、混合和烘焙光源来获得自己想要的外观。

实时光照
上面的场景展示了一个房间,房间里明显出现了某种挣扎:散落在地上的报纸、碎玻璃、翻倒的椅子等等。
这里的主要光源是用于模拟太阳的聚光灯。我选择了聚光灯(Spot Light)而非方向光(Directional Light),因为它不会影响整个场景,让我能更好地控制光照,在此类用例中能有更高的性能。我用它来制作即时兴趣点。玩家的眼睛会立即被吸引到窗户上,他们发现窗户被挡住了。这个光照被设为了实时,我希望它在玩家穿过空间时投射出动态的阴影。它还与实时体积光效结合使用,可添加强烈的电影效果。
为了提高效果,我把实时阴影和光照cookie组合了起来。Cookie模拟了窗户的木板,让我能控制阴影的形状和柔和度。这给了我实时阴影的灵活性,同时仍然实现木板图案等精确的静态细节,避免阴影边缘出现锯齿。提高聚光灯的阴影分辨率会增加性能成本,因为它会应用到帧中的所有阴影。相反,通过使用光照cookie,我可以只获得特定阴影的分辨率,而不影响场景中的其他阴影。
由于此光源是实时的,体积光线也会动态更新。这意味着我可以添加额外的装饰,例如 2D 精灵鸟或云朵在室外移动,体积光自然反应,保持沉浸感。

混合光照
混合光照主要用于保留镜面高光。我们的游戏有很多金属和反射表面,我不想失去这种深度和真实感。
但是,我们负担不起过多的实时光照,因此混合光照是一种很好的折衷方案。我们在《Awake》中将它们与缓存阴影一起使用,以降低性能成本,同时保留必要的阴影细节。对于填充光照,我们完全禁用了阴影,以节省性能,同时仍然保持所需的高光。
可以看到启用混合光后,管道上的镜面高光效果非常明显。
烘焙光照
虽然实时和混合光照功能强大,但并非处处都依赖它们。出于性能原因,有时为了提高整体质量,烘焙光源是必不可少的。
我还用了几束面光源和点光源来增强弹射光照。尽管Unity的GPU Lightmapper已经在计算GI和光线反射,但添加一些精心放置的烘焙光照有助于确保外观符合我想要的气氛。
例如,我在地板上的一张木桌周围添加了一个轮廓光。它几乎直接晒在阳光下,但没有受到任何推动,看起来扁平且曝光不足。轮廓光足够吸引眼球,但又不破坏氛围。
但是,为了避免场景感觉过于静态,我为电视添加了实时点光源,并使用 Unity 的动画系统制作了微妙的闪烁效果。这个小细节立即为房间增添了生气,并暗示了故事:也许有人在观看,也许发生了什么令人不安的事。
微妙的闪烁光来添加一些动态元素
反射探针
反射探针对于逼真的视觉效果至关重要。我通常会先在房间中心放一个探针,覆盖整个空间,好让大部分对象能反射出立方体贴图。然后,我会在特定反射物体附近放置额外的探针。材质越闪亮,附近专用探针的效果就越好。
即便只启用了一个反射探针,墙纸的黄色也会在屏幕顶部管道的反射中显现。
Adaptive Probe Volume (APV)
Glasshouse 没有实时的昼夜循环,因此白天的时间转换不需要 APV。但事实证明,与动态角色和 NPC 的传统光照探针相比,它们非常宝贵。
以前,光照探针给出的结果不够好,但不够理想。APV 通过更平滑的插值自动放置探针,从而大大改善了角色在明暗区域之间移动时的外观。这一点在光线对比强烈的房间中尤为重要。

布料模拟
除了角色、动画光照和VFX,我们还使用了Unity的内置布料模拟来增添动感。设置和自定义的速度很快。
它主要用于窗帘和帐篷。出于性能原因,我们没有将其应用到任何位置,但是每当玩家与布料进行物理交互(例如推开窗帘)时,它就会增加许多真实感。
我为窗帘设置了一定的约束,让窗帘能自然地活动,再将玩家的碰撞体添加到布料组件上,让它们能对运动做出正确的反应。

我很喜欢的一个技巧是把HDRP的Lit材质设为Double-Sided。这样一来,布料正面的阴影和光也会透过背面显现,形成一种次表面散射效果。它能让窗帘感觉更薄、更逼真,仿佛光线透过织物。
阴影和光在幕布两侧渲染,模仿次表面散射效果。
最终想法
动态阴影、动画光照和布料模拟为原本静态的环境增添了运动和氛围。在实时、混合和烘焙光照之间达到适当平衡,再加上小心翼翼的使用cookie,就可以引导玩家的注意力,暗示故事细节,塑造空间的情感基调。最终的结果可能是离奇、紧张或平静,具体取决于你的选择。
《Wishlist Glasshouse》并在 FLAT28 YouTube 频道上了解游戏的最新开发情况。在我们的Steam Curator页面上探索更多Made with Unity游戏,在我们的Resources页面上阅读游戏开发者的见解。
