译/依光流
在前不久《艾尔登法环》的销量已经突破1660万,这款游戏不仅有地道的魂味加持,有开放世界的新鲜体验,给人留下印象同样深刻的,还有游戏中那些震撼人心的场景。
前不久,于日本举办的CEDEC2022开发者大会上,《艾尔登法环》制作组From Software就分享了他们在实现高品质美术表现时用技术手法。
所以,根据天空和云雾的效果变化,《艾尔登法环》本身的美术效果也会大幅度改变,因此这两个部分有必要拿出来配合美术概念的设计而调整。
而《艾尔登法环》的美术概念设计又是什么?在早期制作时,项目组采用现实风景做参考,来设计概念图。如下,这些现实场景的饱和度给人一种沉闷的味道,虽然画面本身的氛围很自然,但在组内的评价很一般。
在筛选具体哪儿有问题的时候,首先被指出的地方就是“这是没有特色的风景”。换句话说,这样的场景看起来就跟常见的幻想系场景一样,没办法确立起属于《艾尔登法环》自身的独特美术风格。
除此之外,颜色的信息过少也是一大问题。画面本身是奔着低饱和度来制作的,但这又造成了表现力过窄、变化度不宽的问题。以致于结果上看,所有的场景,给人的氛围可能都大差不差。这样一来,当玩家到达新的区域,视觉上的变化太少,新鲜感就变少,很容易玩腻。
游戏中的天气也是如此,视觉上的变化幅度不够丰富,哪怕是针对不通气后做出了改变,给人的感觉也只有云层厚度变了而已。这根本就没法在玩家心中留下印象。
为了改善上述问题,制作组定下了两个概念方向:其一是“创造艺术画一般的数据额效果”,因此需要用到地球实际景色完全不会出现的配色,通过创作出让人印象深刻的画面,来构建自身独有的美术风格。其二是“让外观显得丰富多彩”,这是为了避免玩家游玩过程中的乏味感。
具体来说,就是先决定各个区域迷宫的特征,然后强化天气变化的效果。然后为了实现这些目标,制作组升级了Skybox和Fog功能。如下就是应用这两项技术制作出来的新美术概念图:《艾尔登法环》大世界最初的冒险场景宁姆格福,概念原画采用了绿和黄的基色。
大世界中的另一个区域盖利德,则以饱和度极高的红色为基调。
魔导学园雷亚卢卡利亚则是将青色作为基调,在空中放置魔法特效,来突出其特征。
崩坏的法姆亚滋拉则采用了较低的饱和度,与《黑暗之魂》系列的作画很相似。如果都采用饱和度较高的区域,也会显得单调,所以也混入了下面这类场景,调节玩家视觉神经。
地下场景里,用到的是以紫色为基础,能让人联想到宇宙星空的美术效果。全方位地强调现实中不存在的、具有幻想世界典型特征的要素。
至于天气变化,最多能支持八种类型。天气变化种类和观感,都要兼顾到既能让迷宫和大世界不同区域有所变化,美术效果上又要注意不能大幅度偏离概念设计,还得尽可能增加视觉上的色彩变化。
众所周知,Skybox是一套在半球状mesh或者板状多边形上,描绘天空颜色、星辰日月的功能。《艾尔登法环》里的天空表现也广泛运用到了这套技术,其中用到的贴图,则是在3DCG软件《Terragen》中制作的图像和照片素材。
Skybox也可以随时间改变参数,不过针对所有时间点都设计专属的参数会很繁琐,所以《艾尔登法环》采用1天内4个时间段的设定,此外,也有部分例外是采用了7个时间段的设定。
另外,这套技术也能实现基于noise贴图的UV变形,以及通过flowmap对动画和UV执行操作。
制作组大体上就是依靠这些基础功能来制作《艾尔登法环》的视觉效果,不过其中一个需要注意的重点,就是颜色的控制功能。
通过这套功能,可以针对太阳光的方向以及它的逆光方向,设定独立的颜色,同时,还能在其他任意的方向渲染其他颜色。除此之外,还能单独调节明暗度、对比度、云雾和天空的绘制。
而且,饱和度调节功能也有,不过游戏中并没有用到。原因是在导入上述功能的时候,为了在实现艺术画级别的天空表现时,还需要自由地控制颜色变化。
如下就是使用了颜色的控制功能后生成的图像,下方的图像就在特定的方向概念股追加了青色和橙色的表现,不过这是非常极端的案例,实际产品当中会相当克制地进行调整。这个功能就效果来说非常简单,看起来只是在画面上加点颜色,但对于实现艺术画级别的美术效果来说,非常有用。
接下来介绍的,是就在绘制Skybox的时候,让画面边缘变暗的渐晕效果。渐晕效果,是当镜头朝向变化,而产生信息不足情况时,会以整体屏幕为基准追加使用的效果。而且对整体画面使用的渐晕效果,也可以设定为后处理。
然后介绍的是从shader里提取fog的颜色,以任意比例渲染到场景里的案例。这一手法主要用在配置到Skybox前面的云雾,或者是特效的布景上。关闭特效时背景的山峰显得很抢眼,打开以后白色被弱化,融入到周围的景色中。
由于在《艾尔登法环》中,云雾会根据天气、时间段变化而产生大幅度的颜色改变,所以针对每个变化模式,都需要调整最合适的颜色比例,所以才引入了这套功能来解决这个问题。
GlowFilter则是让特定材质发光的功能。可以在材质旁边设定光线的强度和颜色,主要用来表现光的特效、月亮、火焰、雷电等的效果。这套功能里,高亮度的部分与会自动发光的bloom渲染不同,优点在于可以更容易调节出具有艺术性的美术效果,制造一种幻想风格的画面感。
此外,GlowFilter并不局限于Skybox,在黄金树、角色等数据上,都能灵活运用。
曝光逆补正,是针对特定材质,在不影响曝光值的情况下,让它在画面中总是呈现相同明亮度的功能。和特效中经常使用的东西是一样的,《艾尔登法环》在黄金树以及它的周遭光效上,都用了这个技术。
虽然在物理上这是不正确的特效,但由于“不论在任何环境下都能强化美术印象”的特征性物件有好几个,所以还是加入了这个功能。
当然,让天空呈现出艺术绘画的效果,也有它本身的缺点。这种表现手法里经常会用到饱和度较高的颜色,而这些颜色也会反应在环境地图里。
换句话说,饱和度高的光线把地图照亮了,风格塑造上这是正确的手法,但在美术制作上不见得就是好的。比如,宁姆格福的天空是黄的,就连晚上也照得跟傍晚一样。为了解决这个问题,在聚焦到环境地图的时候,设计了天空会变更为饱和度较低样式的功能。
《艾尔登法环》里,Skybox相关shader的制作,是由美术来负责。shader的制作采用了公司内部制作的流程编辑器,可以自由地导入各种各样的表现和功能。不过每个模块都是技术美术制作的,所以不是美术自己从零制作的东西。
这个制作体系的好处,是能够在短时间内实现制作人的诉求,很适合用来制作独特的美术表现。《艾尔登法环》在量产开发期,会按照每周一次的频率,提出新的美术方案,由于需要兼顾制作人的反馈做调整,如果去找程序下需求做新功能,速度是赶不上这个制作流程的。而这套流程,只需要提供大概的设定图、就可以根据它提出新的美术方案,美术不仅很容易用来试错,制作起独特的表现效果也很方便。
在运用Volumetric Fog(体积雾)的时候,有两个功能受到制作组美术成员的好评。第一点,是可以在向阳和背阴出可以设置不同的颜色。
参数中可以调整的光线 ,大体上分为可以对背阴出也产生影响的天空光,以及只对向阳处产生影响的直接光源。将它们设置在光照color上,就可以表现出向阳和背阴两种不同颜色的fog。针对直接光源,也可以设定与背对太阳光的镜头朝向太阳时光照颜色。
执行光线进行(Ray Marching,用于表现大气散射的一种手法)的时候,考虑到视角与太阳光的朝向,通过赋予光线特定的颜色,就可以如下图所示,表现出与太阳位置关系相应的渐变效果。
此外,天空光和直接光源,都可以设定影响镜头的范围,所以操作向深处延展的渐变效果。
第二点,是能够实现斜向光束(god ray),与上一个功能点合起来,就是美术在创作是必不可少的重要效果。
在早期,这些体积雾效果,都是由用来表现场景整体效果的global fog应对的,但根据情况不同,出现了表现力不足的案例。所以美术为了更自由地设置更自定义的云雾,加入了配置式体积雾这个功能。两项功能配合起来,实现了云雾效果根据不同场景自由变化的结果。
导入后的配置式体积雾,会与global fog配合执行,如下图示意,以左侧的的镜头为起点,针对体积雾进行Ray Marching计算,再呈现出每个Fog的结果。右侧的图像是配置式体积雾的预设,与global fog不同,可以基于noise、参数对fog的形状进行一定程度的调整。
配置式体积雾的形状操控,是以柏林噪声手法,在制作好的3D贴图上,以不同的频率和振幅进行合成。以此可以得到具备自然隆起特征的fog。
柏林噪声拥有更容易在一定程度内控制细节拉伸感的特征,实际处理上,生成的是如下图所示的三个noise,将它们合成就可以得到想要的形状。图片左侧的noise贴图是采用了系统预设以后,由美术调节大致的疏密、相关演出效果参数后,最终得到的形状。
配置式体积光有两个固有功能。第一个是可以针对各个固有提及设定颜色,如果不明确设定就会与global fog同步,使得颜色自动融入进去。除了颜色,浓度、疏密都可以调整,所以实际上比下图更容易显得浑然一体。
第二个是可以适配美术准备好的高度贴图。这是出于美术希望根据地形高低来配置fog的需求而实装的功能,下面是开关高度贴图后的对比案例。
关闭高度图
打开高度图
配置式体积雾基本上用在了这三种场景
配置式体积雾虽然能由美术自由操作它的外观,但在品质和负荷方面又是一个取舍的问题了,需要由美术根据场景的重要度来进行调整。
此外,在运用的过程中,也会遇到要组合使用多个体积雾的情形,此时负荷限制会非常明显。虽然为了做出更好的画面,大家都不希望限制配置数量,但也遇到了体积雾单位级别上,优化策略跟不上的情况,这种情况下,不是看体积雾本身的优化,而是需要考虑对场景整体的优化策略。
具体来说,就是先降低Ray Marching的颗粒度来计算,再对结果进行扩缩处理的手法。由于Ray Marching是以像素单位来计算的,所以在低分辨率下计算对优化的帮助很大,最终来看,单纯计算层面就能优化到之前的1/16。
另外,由于扩缩的时信息量缺失,物件的边缘部分与fog绘制的部分会产生空缺,使人为处理痕迹变明显。如果是遇到草木这类总是随风摇动的物件,就会非常扎眼,照这样是无法使用的。
于是在扩缩的时候,需要先检测出边缘部分可能会镂空的像素,然后仅对可能性较高的像素,在扩缩后重新进行Ray Marching计算,然后填上这些坑。
另外,扩缩采用的是Bilateral Upsampling功能,尽管计算量相对大一些,但重点放在了保存边缘点的目的上,从结果来看,即抑制了人为痕迹,又提升了优化空间。
首先,Skybox的制作先是配置了fog,然后针对不同角度调整颜色,这主要是为了实现画面左右的颜色变化,增加信息量。此外天空的颜色往绿色的方向调整,强调与地球不同的独特氛围。Skybox的颜色是决定整个区域印象的重要因素,所以实际制作时一边与制作人协商一遍谨慎地做出判断。
接下来是在fog上追加渐晕效果,这一目的是为了增加放射状的渐变效果,以增加画面信息量。这个功能不光是宁姆格福用到了,其他所有区域也同样进行了设定。
进一步使用指定角度的颜色调整功能,让黄金树的方向变得稍暗,这是因为天空的黄色容易让人联想到黄金树的标志颜色,二者过于相近,那么地标的作用就会降低,所以区分开来。
体积雾的光照和Skybox一样,根据角度设定了不同的颜色。虽然这看起来是比较微妙的颜色变化,但画面左右的颜色会发生渐变,起到提高信息量的效果。另外颜色变化太大也会显得出挑,所以基本上要控制在比较适度的变化范围内。
同时向阳和背阴的明亮度差异拉大,突出上帝光。如果明亮度差异小,上帝光的细节就会很难辨识,此外上帝光的倾斜方向信息会自动的生成,可以缓和悬崖等单纯斜面给人的印象,效果非常好。
而且,根据与镜头相隔的距离,照射到fog上的光线强度也会被调整。太阳方向和太阳的反方向的光线强度,都会在150米之内逐渐归零,这是为了改变画面深处的渐变效果,以此调整对比度。
调整强度以后,远处的雾气会非常浓,形成空气质感很强的视觉效果,而仅在近距离范围内,对比度会拉高。这个调整,不光可以提高美术的品质,还可以改善画面的辨识度,是非常重要的技巧。
此外,用到高度图的特殊案例,则是湖之利耶尼亚地区。
其他场景也都用了相应的技术点。
演讲最后,制作组也进行了总结和展望。
一是使用与作品方向相符的绘制手法。由于这次介绍的内容是针对《艾尔登法环》而生的最适合的方法论,并不一定适用于所有作品,因此还是需要针对自身实际情况寻找解法。
二是希望改善美术手动调整内容过多的情况。在《艾尔登法环》里,手动调整太多是一个需要反省的点,对于能量化的部分,还是要尽可能自动化。
最后是希望对fog进行更自由的自定义设置。即让美术可以进行3D贴图制作、高完成度的动画制作,更自由地做出心中所想的效果。
https://www.4gamer.net/games/463/G046388/20220826111/
游戏葡萄编译