本文来自《Substance》杂志对《赛博朋克2077》技术艺术总监Krzysztof Krzyścin的访谈。
2020年最受期待的游戏之一——《赛博朋克2077》,在几天前发布。不用说,在玩游戏的最初几分钟内,你就会明白,为什么会有夸张的宣传了。《黑夜之城》以一个充满麻烦的未来为背景,在视觉上令人叹为观止,地图的巨大尺寸让我们不禁要问,CD PROJEKT RED是如何在重塑网络朋克类型的同时,能成功地描绘了一个反乌托邦的未来。我们非常幸运地与技术艺术总监Krzysztof Krzyścin交谈,他将带领我们了解赛博朋克2077的生产细节,以及该团队在Substance工具中的纹理处理流程。
KrzysztofKrzyścin:大家好!作为技术美术总监,我主要致力于游戏引擎REDengine以及工作室使用的所有外部内容创作程序中与艺术相关的管道和渲染技术的研发。我感兴趣的不仅在于能让艺术家们提高游戏视觉效果的质量,还在于让内容创作变得高效和流畅。
对于《赛博朋克2077》,我们已经开发了一个相当长的功能列表。比如:多层着色器管道,程序几何系统,天气(有体积云!),一个材料库,破坏——包括车辆和树叶,长途人群和车辆,代理系统,世界地图,几乎所有的模拟和游戏中的着色器。
我们还开发了用于多个内容创建程序的自定义管道和工具,其中一些(例如Substance Painter和Substance Designer)已深度集成到我们的内容创建管道中,从而允许艺术家为角色,车辆和环境创建惊人的细节。
赛博朋克2077是一年中最受期待的游戏之一。在这样的项目上工作感觉如何?
我喜欢把它当作一次旅行,有点像爬山。一开始,你需要准备,收集合适的设备,最后但并非最不重要的——选择合适的公司。当然,通常是下雨天,寒冷,而且道路漫长又难走,但同时也很有收获。尤其是在接近尾声的时候,当你回首往事,看到这一切是如何开始协同工作的时候。当然,到目前为止(来自记者和用户)的积极反响给了我们巨大的信心,相信这个游戏很好地定义了赛博朋克,每一个对这个游戏感到兴奋的人很快就能看到,当他们开始玩的时候,这种兴奋感就会实现。
您觉得《赛博朋克2077》与您以前开发的游戏有什么不同?
我们需要添加到引擎中技术特性的范围来处理这样一个人口稠密但仍可以自由探索的垂直城市,这对我们来说是一个巨大的飞跃。我们不得不把每平方米更多的细节打包,这不仅是因为第一人称透视相机的缘故,也是因为现在在你周围发生的许多动态场景。我们称之为无缝游戏,因为你——作为一个新兴的名叫V的雇佣兵——可以在场景中与世界互动。例如,你可以进入一辆车,和一个修理工——一个会给你提供某些工作的人交谈,同时骑车穿过夜市,实时地看到城市。另外我们还增加了玩家定制选项。有大量的定制资产,包括所有的服装,武器,结合独特的发型,纹身,网络软件,车辆——这一切几乎创造了无限数量的外观供玩家选择。
建筑环境也发生了巨大的变化。《巫师3》充满了自然景观,并有一些较大的城市——其中诺维格勒是最大的。夜城非常密集,有许多不同风格的建筑。借助赛博朋克2077,我们需要彻底改变我们组装世界、资产和社区的方式。我们需要开发道路系统,交通和人群管理,全新的分层预制管道,可在室外和室内使用的全球照明,第一人称透视相机等等!我们知道制作这个游戏将是一项非常艰巨的任务,但我们都准备好迎接挑战。
告诉我们更多有关游戏的艺术指导。您想传达什么视觉故事?
《赛博朋克2077》发生在另一个充满麻烦的未来。在这个未来,世界正面临着来自环境灭绝、全球变暖、人口过剩和严重的不平等的威胁,这种不平等促进了富人而忽视了穷人。但人类善于适应,不断发展。人们接受了控制论技术来适应周围的危险,而且社会仍然生机勃勃。
从制作的一开始,我们就想从经典的赛博朋克风格中借鉴视觉风格,但实际上需要对其进行现代化改造,并进一步推动它的发展。夜雨绵绵,霓虹灯闪烁,是一个极具标志性的形象,与赛博朋克美学有着强烈的联系,但我们想创造更多属于我们自己的难忘时刻。迷人的日出,笼罩在野蛮建筑顶部的浓雾,沙漠的灼热阳光,城市的夜空线。然后是各区,每个区都有独特的形状和颜色,从闪闪发光的近光灯到辱骂广告的刺眼光芒。我们的计划是让夜市成为这场游戏的主角。
您为什么决定使用Substance?它如何帮助您为艺术指导服务?
从早期的概念来看,很明显这个项目的规模会推动我们开发新的材质制造方法。对于任何合理的硬件来说,快速估计纹理内存指标和近似磁盘大小是不可接受的。这是一个激进的举动,但我们决定将分层概念应用到几乎所有的模型中,包括武器,角色,环境物体(甚至是地形节点)等FPP项目。我们的想法是,我们不会存储任何独特的纹理,而是一个基于特殊遮罩在运行时混合的常用材质库。对于每个对象来说,这个掩码仍然是唯一的,但是由于大多数时候它非常稀疏,所以我们可以将它打包成更小的数据占用空间。这提高了艺术管道的效率,因为艺术家现在只需要绘制这些材质层,而不是像以前那样将多个纹理组合在一起并展平。这也会改变网格的渲染方式,因为每个像素都需要计算并展平其图层。
当然,这个过程需要非常高效。分层使我们有可能获得更多的纹理像素密度,只需原始磁盘大小的一小部分,就可有效地将非常高分辨率的细节填充到曲面中。在与艺术家和我们的渲染团队进行了几次迭代之后,我们对它充满信心,也因此开始构建我们的材质库。我们已经将工具子集作为插件集成到Substance Painter中,并将其推广给了一些艺术家——他们很快就喜欢上了这种方法。当我们首次展示第一个游戏视频时,成千上万的资产已经在使用多层着色器,极大地提高了我们游戏的视觉质量。
能给我们简要介绍一下在您的管道中使用的不同工具吗?
我们将Helix/Perforce用于数据存储库,visualstudio用于代码和脚本——所有这些都由我们自己的构建系统管理。我们使用Houdini制作程序内容、模拟和特效。艺术家主要在Maya/3ds Max中工作,我们的分层管道则通过Substance Painter/Remote Browser进行。材质库纹理使用Substance Designer,所有材质模板都使用内部应用程序(材质库管理器)进行编辑。大多数艺术家工具也通过自定义工具架或插件进行公开,因此可以从不同的程序访问它们。游戏资源是在REDengine中创建的,可以由几个不同的编辑器编辑。最后但并非最不重要的是,对于项目管理,我们使用Jira。
如何创建材料库?您能否能描述一下您对Substance Designer的使用?
材料库几乎完全在Substance Designer内部创建(从零开始或从扫描数据开始)。每个材质模板都由一个图形组成,该图形输出反照率、法线、粗糙度和金属度纹理,这些纹理可在两个轴上平铺。除了在Substance Designer中创建材质外,我们还制作了各种各样的微混合纹理,包括用于遮罩材质的“高度贴图alpha”和“法线贴图”。为了支持绘制管道,Mark Foreman(我们负责材料库的高级环境艺术家)创建了一组定制的生成器和过滤器。因为,一般来说,我们为资产制作的遮罩比标准的资产纹理要小,而且由于混合材质所需的细节是通过微混合器添加的,所以有一些定制生成器非常有用,这些生成器可以生成非常简单、基本上无噪音的信息,以便与内部Substance Painter一起工作。
我们从非常基本的材料开始,比如混凝土、塑料和砖墙。随着产量的增加,要求将更多材料添加到库中。尽管我们的材料模板本身有一些简单的表面变化,但是,例如,我们不需要数十种生锈的金属或佩斯利织物的变体,以及烘焙后的颜色组合。相反,我们有干净的金属和纯锈,或一种织物材料有多种颜色选择。将这些与不同的微混合口罩结合起来,我们就可以得到我们所需要的各种各样的东西。这里的好处是原始模板可以在整个生产过程中不断迭代,而不需要更改实际使用它们的任何资产。
您能详细介绍一下Substance Painter和您开发的多层着色器系统吗?
我们的分层解决方案与Substance Painter中包含的解决方案不同,它包括额外的遮罩(微混合器),其中包括一个专用法线贴图,允许在层间混合。由于这一点,我们可以在保持清晰细节的同时大大减小遮罩尺寸。它还将其图层链接到一个特殊的材质替代,该替代预先定义了与给定材质模板关联的材质变化。例如,混凝土材质具有多个替代,这些覆盖定义了环境风化、材质湿度和其他可能影响常规混凝土材质的视觉外观范围。这使得我们的模型具有高度的独特性,同时保持资产的世界观一致。
为Substance Painter制作的自定义OpenGL明暗器允许艺术家在绘制时预览模型。该着色器模仿了我们引擎中使用的着色器,将相同的纹理链接到适当的材质层,就像在游戏中查看模型一样。我们甚至制作了一个自定义色调映射解决方案,与我们的引擎内色调映射器匹配,以保持Substance Painter和引擎之间的一致性。引擎着色器使用相似的逻辑进行层混合,但工作方式不同,因为它使用计算着色器(compute shaders)将可见层烘焙到运行时纹理中。它使用的不是灰度遮罩,而是一种我们称之为数据库(data banks)的特殊版本,即根据表面覆盖面积打包的压缩数据块。
请告诉我们有关您创建的远程浏览器工具的详细信息。它如何简化你在Substance Painter和REDengine之间的工作流程?
除了着色器之外,我们还开发了一个名为“远程浏览器”的独立工具,它在我们的引擎和Substance Painter/Substance Designer插件之间充当桥梁。它是一个交互式图层编辑工具。它可以加载/卸载不同的材质层并编辑它们的参数,如颜色和其他覆盖,或微混合和平铺。每次更改都会更新打开模型的外观(在我们的引擎中或在Substance Painter中),极大地加快了不同模型变体的创建。想象一下,只需点击几下鼠标,就可以将整栋建筑上的裸露混凝土换成一个涂满涂鸦的版本。如果美工人员稍后决定更改材质,此工具还可以管理遮罩导出/导入和层重新指定的过程。
世界的规模和复杂性是最大的挑战。我们希望建立一个充满微观细节和深远前景的世界。所有这些都有复杂的昼夜照明,风格定义的氛围,无缝的游戏,且在场景之间没有加载过程。我们必须能快速地想象出这个世界的任何地点,或者一天中的任何时间,并附带各种不同的天气条件。我们需要用可信的角色、车辆(包括飞行的AV)、道具、交互式和动态场景填充它,最后但并非最不重要的是,将所有这些都调整到合理的数据大小。
在早期,我们决定需要将可伸缩性嵌入到引擎的每个可能的子系统中。对于最昂贵的部件,我们实现了原系统的远程版本。例如,我们有一种长距离车辆渲染技术(基于简单的广告牌),它可以替换原始的车辆几何体,从而可以一次看到数千辆汽车。我们将这种方法与所有底层世界几何的层次化简化相结合,这给了我们只在玩家近半径范围内处理我们想要的细节的可能性。第一人称相机影响了许多游戏方面的变化,包括讲故事、场景、一般游戏和互动。当然,这只是冰山一角。我们喜欢冰山,它们很雄伟。
有没有什么诀窍可以与我们分享?
当然,来自高级角色艺术家Marcin Klicki 的提示:无论是角色、武器还是交通工具,艺术家都喜欢在上面使用图案。碳纤维,材料螺纹,抛光钢,阳极氧化铝,把这些安排的井井有条能大大加快定稿模型所需的时间。
另一个来自Mark Foreman的消息:首先,清理工作,整理你的图表!生产过程中,您可能需要在创建一个材料数周甚至数月后重新访问它。一个注释良好的图表将为您节省时间,当涉及到破译您过去所做的决策时。利用自定义节点。如果您发现自己经常重复节点组,那么可能是时候将这些节点转换为自定义节点,以便在将来的材质中重用,从而在该过程中节省一些时间。在Substance Painter中,如果无法从默认设置中获得所需的结果,请不要害怕自己制作生成器。手绘可以对个人资产有意义。但是,一旦你开始跨大型资产集工作,拥有一两个生成器可以尽可能接近你想要的结果,可以节省大量时间,让你的时间可以花在真正重要的手绘细节上。
您如何评价在“赛博朋克2077”的生产中使用Substance工具集的整体体验?
看看游戏中的资产数量,他们的多样性,以及艺术家们设法挤进的细节,我不得不说,整体体验超出了我们的预期。艺术家们对工作流程和它给他们带来的可能性感到满意。这套流程非常稳定、有效且无缺陷——我们与Adobe开发人员有着密切的联系,我们期待着在未来的项目中采用类似的方法。
我要感谢所有为《赛博朋克2077》分层流程做出贡献的人,包括CD PROJEKT RED、Adobe和外部人员——为它工作的人才名单真的很长!(可能比这次采访还要长!:))
原文链接:
https://magazine.substance3d.com/cyberpunk-2077-a-world-full-of-substance/?fbclid=IwAR2fdAxMes8N2SHA6E0jC5SxSJQM35nzQlo67BOMRyLFrOAawfETrc0z6A8
加载中