《Cursed Knight》制作解析:铠甲、长矛与毛发驱动的实时角色工作流
介绍
我叫 Gábor Meggyesi,是一名自学成才的3D艺术家,目前在北滩游戏布拉格(North Beach Games Prague)担任资深角色与生物艺术家。我在2019年完成匈牙利一个以Unity为重点的基础课程后开始学习3D艺术。从那以后,我主要通过个人项目、实验、工作坊和制作经验来提升技能。
在最初的几年里,我通过研究行业艺术家 Laura Gallagher、J Hill 和 Jared Chavez 的作品与教程学到了很多。后来,我继续通过参加 Marcin Klicki 等艺术家的工作坊学习,目前则跟随 Piotr Zieliński 学习。
多年来,我参与过一些较小的项目,例如《Zero Caliber》系列和 XREAL Games、Maximum Entertainment 的《Maximum Football》,目前我正在 North Beach Games 制作《Stranded Deep 2》。
诅咒骑士
最初的概念已经带有强烈的魂类感觉,我想把这个项目变成一封写给该类型的情书。《黑暗之魂》和其他魂系作品是主要灵感来源,尤其是它们忧郁的氛围、怪诞的设计和衰败感。

在《Cursed Knight》这个项目中,我不仅想打造一个更有分量的作品集项目,也想探索一种更具电影感的处理方式,并将其与我在职业生涯中学到的实时与游戏制作流程结合起来。在项目期间,Piotr Zieliński 既是导师也是创作伙伴,鼓励我在艺术和技术层面把项目推进得更远。
建模
对于盔甲部件和长矛,工作流程相对标准。由于原始概念设计已经非常细致,而且肩甲具有标志性的设计,我决定主要结合使用 Maya 和 ZBrush 来完成其中的大部分流程。
有些元素直接在 ZBrush 中搭建大体块,另一些则先在 Maya 中创建,具体取决于我是否需要这样做;之后,我在 ZBrush 中进一步细化和统一所有内容。
在快速搭建体块阶段,我使用了 Dynamic Subdivision、ZRemesher 和 DynaMesh。这些功能让我在处理各个部件时能够快速迭代和推进,因为在这个阶段我主要关注整体体量和形状。

在 blockout 阶段,我特别想强调的一点是持续检查剪影的过程。为此,我主要使用 Marmoset Toolbag,因为它可以非常方便地通过简单的灯光设置或仅用 HDRI 环境来快速测试和评估形体。
我发现这个工作流在这个阶段极其有用。在进入下一阶段之前,你可以轻松测试这些形状在不同光照条件下的反应。

对于铃铛、链条、带扣、挂锁和螺栓等重复出现的元素,我用 Maya 和 ZBrush 制作了自己的自定义 IMM 笔刷组。这些部件已经完成了 UV 展开,将它们摆放到位后,我可以把它们重新重建回 SubDiv_1。

盔甲的最终高模制作过程相当直接。通过将动态细分与重网格化工作流结合使用,我旨在实现所需的形态和轮廓。


在细节处理方面,并没有使用什么“秘密”笔刷,只是将不同的高质量 alpha 笔刷混合使用,再结合手动处理和 Smooth 笔刷。这个过程非常有趣。



在细节制作阶段,我发现一个特别有用的功能是 ZBrush 的图层系统。它让我能够以非破坏性的方式混合不同层级的细节,并轻松控制每一遍细节的可见程度。不过,这种工作流程需要谨慎使用,因为使用过多图层会增加文件大小并影响性能。


最终的姿势和面部表情同样是在 ZBrush 中制作的,这使得在展示之前可以很方便地调整角色的剪影和整体姿态。
高模:
头发和面部并未完全基于概念设计,所以我觉得这是一个很好的机会,可以在现有设计中加入一些个人化的东西。我想创造一种能反映角色整体状态发型,一种凌乱、部分秃顶,并且适合一个精疲力竭、饱经战火的战士的发型。

与此同时,我也希望把这个项目当作一次学习新工具的机会,以便之后能将它整合进我的生产管线中。我决定在毛发制作环节中使用 Ornatrix。

因为发型更长,并且灵感来自更具哥萨克风格的外观,所以我使用了更传统的基于引导线的工作流程。在这个过程中,最有帮助的功能之一是 Ornatrix 中的 Guides Groups 系统,以及将操作器(operators)分配给特定组的能力。
这让我能够独立地塑造和控制 groom 的不同部分,从而使迭代过程更快、更灵活。

我能够节省大量时间的一个环节是桃色绒毛、胡须和短发的制作,这主要归功于 Surface Comb 功能。它允许你直接在表面上使用方向向量非常快速地操控毛发造型(groom),使梳理过程变得极其高效。

而且由于 Ornatrix 使用 GPU instancing,它能在单个场景中更高效地处理大量 groom 数据。

此外,Ornatrix 能够导出 strand groups,使 UE5 可以单独识别这些组;借助这一功能,可以为每个毛发组分别指定不同材质。

拓扑与贴图
低模制作我使用了 TopoGun 3,UV 流程则选择了 RizomUV。这两款工具在行业中都被广泛使用,并提供了大量可加速工作流的功能,能显著加快重拓扑和 UV 流程。
盔甲部件在各处都是水密的;按照 Texel Density,在 2048 纹理分辨率下,模型大约为 20 px/unit。最终展示渲染我使用了 4K 纹理,密度大约为 40 px/unit。


贴图可能是整个项目中最具挑战性的部分之一,因为原始概念在颜色和分层材质过渡上极为丰富。几乎每个表面都有多层材质叠加,因此我决定把材质层拆分成更小、更易管理的部分。

金属:
这是盔甲的主要基础材质,一种相对饱和、略带光泽的金属类型,但表面仍然带有老化与磨损感。这一层本身又被进一步细分为更微妙的颜色变化,主要在偏蓝、偏紫和偏黄的色调之间变化。
这里的关键在于使用渐变。相比只使用一个简单颜色,我通常为每一层使用 3 种不同色调,然后用 Grunge maps 混合它们。这帮助我做出更自然的过渡,以及更丰富、更有变化的表面。


锈蚀:
锈蚀的工作流与金属材质的构建方式非常相似。我把锈蚀分成多个层,包括一个更深层、带有更暗腐蚀区域的层,以及更浅、更偏表层的氧化层。对于更深、更暗的锈蚀区域,我使用了各种基于高度的噪声,以在材质中制造更多深度和破碎变化。
对于更浅的表层锈蚀,我更依赖自定义 alpha。为了制作这些 alpha,我从 Textures.com 等平台收集了不同的源图像,然后在 Photoshop 中处理,生成自定义 alpha masks。这些遮罩随后在 Substance 3D Painter 中直接投影到模型表面。

苔藓:
与金属和锈蚀材质相比,苔藓层稍微简单一些。在这里,最大的挑战主要在于如何可信地控制其在各表面上的分布和摆放。在所有这些层之上,我添加了一个更简单的灰尘层,这有助于进一步做旧并将不同材质统一在一起。

在整个贴图制作过程中,对我帮助极大的一项功能就是 Substance 3D Painter 中广为人知的 Anchor(锚点)系统。得益于它,我能够构建复杂的分层材质,让不同的效果以更具程序化、更灵活的方式动态交互并层层叠加。

总的来说,贴图过程中最大的挑战无疑是锈蚀层。它覆盖了角色身上大片且非常显眼的区域,正因如此,哪怕是很小的不一致,或者任何让人觉得不对劲的细节,都会立刻被眼睛注意到。
另一个虽小但重要的细节,帮助护甲显得更加可信,那就是在 Metallic 之外还使用了 Specular 通道。这个改动并不大,但它为材质的响应增加了恰到好处的变化。在 0–1 的范围内,我通常把较暗、锈蚀较重的区域保持在 0.4 左右,而更干净、更有光泽的护甲表面则接近 0.6。

总体而言,要在不让材质显得重复或虚假的前提下,平衡好破碎、对比度与表面细节的量,需要在整整个模型上进行大量的迭代和手动调整。一个实用技巧是时不时用灰度模式检查材质。当然,它永远不会 100% 完全一致,但通过让明度范围尽量接近,就很难犯下大错。


皮肤:
与其他一些材质相比,面部贴图过程相对较快。使用原始扫描作为颜色基础已经提供了非常扎实的基础,再结合少量色彩校正图层和一些手动绘制工作,就能相当快速地获得令人信服的结果。


在着色器方面,皮肤、护甲和布料材质的设置都保持得相对简单。大部分的视觉复杂度来自贴图工作和灯光。





关于眼睛和头发的 shader,我决定直接在 MH 默认的眼睛与头发 shader 上做调整和修改,而不是从头搭建一套完全自定义的方案。
最终的 Lookdev 视频:
灯光
Lookdev、最终展示以及渲染都在 Unreal Engine 5.7 中完成。
为了拍摄 beauty shot,我搭建了 3 套不同的灯光组。
1 — 面部灯光组
这套设置主要用于特写镜头和面部序列。部分灯光通过 Sequencer 生成并控制,其强度值做了动画处理,会根据摄像机位置变化。


2 — 全身灯光组
用于更广的全身镜头和序列。

3 — 篝火灯光组
我还为篝火场景单独做了一套更暗的灯光设置。

关于灯光组的一个小技巧:我每次搭建灯光时,都会先从一个传统的三点布光配置开始:1 盏主光(key light)、1 盏轮廓光(rim light)、1 盏补光(fill light)。之后我通常会把已有的这些灯光类型继续复制并调整,直到达到我想要的效果和整体氛围。
在后期处理方面,每套灯光设置都用了两个独立的 Post Process Volume。
- 全局数值:这个 volume 负责整个场景级别的设置,比如曝光、对比度、调色(color grading)、泛光(bloom)、雾效以及整体色调的一致性。
- 镜头专属调整:第二个 Post Process Volume 用于单独的镜头和序列,让我可以按摄像机角度和构图微调景深、曝光平衡、暗角强度以及其他电影化的调整。
为了让两个 Post Process Volume 正确协同工作,镜头专属的那个 volume 需要设置为从 0 到 1。你也可以在这里放入不同的 LUT。


另一个帮助我获得更干净最终效果的技巧,是调整相机设置中的 Detail Strength(细节强度)参数。这会略微增强并锐化角色表面更细小的细节。

在附加工具方面,有两个插件在展示过程中帮了我大忙:
EasyAtmos —— William Faucher:用于大气粒子和环境效果,使用起来极其简单快捷。
Hair Cinematic Tool —— Argentum Studio:这款工具有助于提升基于发丝的发型的渲染质量。
结语
整个项目过程中最大的挑战之一无疑是时间管理。在这个项目期间,我同时兼顾着多份工作和职责,同时还要努力持续推动项目向前推进。
与其说是学习了一门全新的学科,我更愿意说,这个项目主要帮助我磨炼并巩固了我在多个领域已有的技能,比如雕刻、毛发制作、贴图、灯光、展示以及技术技能。
我给初学者的建议是保持开放的思维,去探索自己直接专业之外的领域。哪怕在生产环境中他们可能并不会直接从事这些任务,但至少对它们有大致了解,日后都可能成为巨大的优势。
Gábor Meggyesi,资深角色与生物艺术家
采访者: Gloria Levine
相关链接
原文链接:https://80.lv/articles/breakdown-how-to-model-and-texture-a-cursed-knight-with-melancholic-vibes
喜欢这篇内容吗?