风格化三管霰弹枪道具制作:3ds Max 与 ZBrush 硬表面工作流
简介
大家好,我叫 Konstantin Gvaberidze,是一位来自格鲁吉亚的 3D 角色与道具艺术家。
我钻研这门艺术形式至今大约五年了,目前正在行业内寻找令人兴奋的新机会,不断学习新事物,并努力用每一个新项目挑战自己。
目标
我和两个朋友正在制作一款小型第一人称合作冒险游戏,背景设定在格鲁吉亚山区。最初的目标是制作一把简单的双管锯短霰弹枪,作为玩家用来对抗各种不同神话生物、击退各种威胁的工具之一。
但正如你将看到的,这把武器的设计在这个过程中经历了相当大的演变。








工具
- PureRef:拼合情绪板
- 3ds Max:搭建大体块、重新拓扑、UV 展开
- ZBrush:细化粗模、雕刻高模、风格化细节处理
- Substance 3D Painter:烘焙、贴图制作
- Marmoset Toolbag:渲染
- Adobe Photoshop 和 Premiere Pro:后期处理与修改渲染图
参考收集
在与团队进一步探索和讨论之后,我们发现了这款名为 Coachgun TT(三管变体)的绝佳版本,它让我们三个人都惊叹不已。我们很喜欢这把武器的整体设计,无论是美学上,还是它在技术层面的运作方式。于是我们决定为我们的游戏重建它,但采用更风格化的形式和造型。
之后,我开始从不同角度收集更高质量的参考,以更好地理解这把枪的造型语言。尽管我知道最终成品会高度风格化,我仍然需要理解它的基本形态和功能。
我使用 PureRef 来汇总所有必要的图片。我不喜欢拥挤的情绪板,所以我总是尽量少放参考,但保持连贯,让项目目标始终清晰直接。
因为我没有一个主要的风格化参考,所以我用生成式 AI 制作了某种接近我最终想做的东西的呈现,再配合不同的参考图片,以免偏离我想要追求的风格化类型。
需要提一点的是,我努力保持清醒:生成的图片就只是生成的图片,我永远不能完全依赖它们。它们几乎从来不如原图或艺术家手绘的东西那样精确。把它当作指引或配色参考是可以的,但我总是提醒自己这一点,这反过来也迫使我在过程中加入新的想法。

粗模
在 3ds Max 中完成了一个非常简单的粗模。在这个阶段,我通常会根据参考图对基本几何体进行建模或组合,并尝试让它们在一定程度上与概念设计对齐。
我在这个阶段花费的时间最少,因为我知道大多数网格都会在 ZBrush 中被大幅修改。重点只是把大块部件拼合起来,之后我会将其作为参考基准。我甚至会省略模型中某些我觉得在 ZBrush 中能更高效完成的部分。
基本上,这个阶段就是确定场景中对象的比例和尺度。

雕刻
一旦我把这个 blockout 版本带入 ZBrush,真正有趣的部分就开始了。
首先,我把所有东西都转换成 DynaMesh,细化厚重的形体,并添加我在 3ds Max 中遗漏的较小部件(螺栓、铰链、保险锁、action release 等),更正确地对齐所有元素,修改、切割并调整主要形体,以更准确地匹配概念设计。
我发现即使是硬表面部件,用 ZBrush 的雕刻技术来做也更好,尽管有时这会变成一场真正的挣扎,我简直得和网格表面较劲才能得到正确的形状。不过,就我个人而言,这仍是最享受的过程。
我宁愿在 ZBrush 里做这些,也不愿回到 Max 做多边形建模,而且我始终可以选择用 ZModeler 来帮助处理某些形状。
一开始我有点吃力,试图找出形状和形体应该如何相互融合,同时保持功能性和连贯性。在此期间,我做了几个快速的不同版本,以更好地定义这把武器的风格愿景。

我主要使用 hPolish、TrimDynamic、TrimAdaptive、OrbFlatten_Edge 和 TrimCurve 等笔刷来打磨形体。基本上,这个阶段就是尽可能清理粗糙的 DynaMeshed 部件。
在清理的后期阶段,我会使用相当高的分辨率。如有必要,可能介于 300k 到甚至 1M 之间。

当网格有 90% 达到我满意的干净程度后,我会用默认参数执行 ClayPolish,让它更硬朗(这里可行,因为这些部件有锐利边缘),并在历史栏中保存 Morph(按住左 CTRL 并点击鼠标左键),供后续重投影使用。
我用 ZRemesher 生成新的拓扑(有时如果事先准备好了 PolyGroups,会打开 KeepGroups 选项;这有助于引导算法,得到更好的拓扑),再细分几次,直到我认为它有足够的分辨率供后续细节刻画,然后从之前保存为 Morph 目标的 DynaMeshed 版本执行 ReProject History。
这些都在同一个网格上完成,不过你可以复制物体以保证安全。
我会对每个已打磨的独立网格重复这一流程。等每个部件都完成细分、重投影和清理后,我会进行第二遍打磨。
由于 DynaMesh 让我能够细化更主要的形体,而 ZRemeshed 版本拥有更好的分辨率和细分控制,使我能更自由地强化更小的细节。这里主要使用同样的笔刷,但更精准,也更少随意。

小技巧:ZRemesher 有一个小问题,它容易在转折处、而且偏偏在你最不希望出现的位置生成星点。在高模上使用 Smooth 笔刷反而会让它们更尖、更明显。我们不能接受这种情况,但别担心!有一个非常简单的修复方法。
只需按下 SHIFT(Smooth)键,轻轻把笔按在数位板表面上,保持不动。在同时执行这两个操作时,在开始移动笔进行平滑之前,先松开 SHIFT 键,然后再移动笔。这样你得到的不再是默认的 Smooth,而是 SmoothRelax,它会立刻消除星点。
现在,取决于你操作网格的分辨率,可能看起来完全没效果,因为 SmoothRelax 在较高分辨率下需要更大的力度才能生效。
要么从笔刷库选择 StrongerSmooth 笔刷,用尽手腕能施加的全部力量;要么降到较低的细分级别,对准星点并轻轻执行这个操作。你就能把这些尖尖的、破坏你干净光亮表面的烦人星点全部清除,获得一个极其干净的网格。
高模细节刻画阶段(Detailing Pass on High-Poly)
在我准备好主要网格且一切看起来不错后,我们开始创建独特细节,以打破它们的单调统一感。我开始为模型添加磨损与破损(风格化版本)。
这个过程中我会使用图层系统,因为我后续不仅雕刻需要原始未损坏网格,之后的拓扑重建也需要,而且这样一切更有条理。如果我觉得某些部分不达标,我随时可以回到原始未受损网格,保存一个 morph target 再进行修改。
在这个阶段,我会使用各种不同笔刷,包括 Michael Vicente 的免费 ORB-Brushes Pack。当然也不能忘记 ZBrush 默认的 MorphBrush,它基本上承担了半橡皮擦的功能。

尽量专注于某一种特定材质区域。例如,我会随机选择一个金属部件,完成细节刻画阶段,然后在其他金属部件上复制相同的破损和形态。木材以及模型上的所有其他材质,我也都这样做。
下面你会看到这些具体细节是如何实现的粗略演示。显然,最终成品花费了更多时间和精力。
谈到使用对称时,这始终要视具体情况而定。你必须提前想好模型哪些部分会在 UV 图上镜像,这样就能少花时间在非必要的部分上。
对于这把霰弹枪,我知道我会镜像两根下枪管和木质部分,包括握把和前护木,因为我知道它们会在 UV 图集上占据大量空间,同时从第一人称视角看,镜像后也最不容易被注意到。
上中部枪管会遮挡住被镜像的下枪管,而木质部分通常也很容易掩饰。如果仔细观察,你显然仍能注意到重复的细节,但为了整个模型纹素密度(texel density)的整体健康,必须做出这些牺牲。





这里的关键是一致性。你可能会在某个材质区域上越做越投入,不断给它加细节,却把模型其他部分留在半完成状态。那样整体效果不会好。目标是让整把武器在细节层级上保持一致,并在风格上协调统一。
Decimation 与 Bake 设置
当我对最终 high-poly 满意后,我会在 ZBrush 中借助布尔运算(Boolean operation)进行减面并统一它们。例如,机匣部分在减面后会把所有小螺栓和扳机护圈包含进同一个网格,即使它们在雕刻时原本都是分开的。之后这些都会重新拓扑,并烘焙到单个 low-poly 网格上。
之后,我还会通过 Substance Painter 烘焙一张 ID map,这样在贴图阶段就能区分它们,避免在边界相接处手动画单独遮罩的麻烦。这会显著加快流程,而相关设置从这一阶段就开始了。

Retopology 与 UV
当每个部分都完成减面并统一后,我会把它们导入 Max,赋予一个默认灰色材质,粗糙度值约为 0.65,然后开始做 retopology。
我会导入两个版本的 high-poly:一个已经做过细节处理,另一个是干净版本。我先在干净版本上做整体 retopo,然后切换到细节版本,在必要的地方增加 breakup,处理那些细节在曲面上凸出过多或凹陷进去的地方。我这样做是因为希望它们在 Normal Map 上呈现出最佳效果。
我使用 3ds Max 内置的 Retopology 工具。使用至少 3 到 4 年后,我可以肯定地说,我不觉得需要替代工具,因为它具备我可能需要的所有功能。也许市面上还有其他花哨的工具,但对我来说,Max 的 Retopo 工具到目前为止已经足够好用。UV 编辑器也是如此。这两个流程都在 3ds Max 中完成。

low-poly 准备好后,我通常会用 Max 的 Selection 工具,通过 Ribbon 菜单检查整个网格,找出是否存在 N-gon、缺失的三角面/孔洞,或者没有连接到任何东西的失控顶点(berserking vertices)。
如果一切完好,我就开始给 high-poly 和 low-poly 重命名,按照对应关系匹配它们的名称,并添加一个简单的后缀,为烘焙做好准备。
接下来,我会展开整个网格的 UV,主要沿 80 度以上的角度切线,或者根据我认为必要的判断来切。尽量把接缝放在不太显眼的位置,并总体上让 UV shells 更便于排布(packing),同时检查 texel density 和均匀性。
之后,我会评估哪些部分在整把武器上更显眼或更不显眼,并根据这一原则增大或减小它们的 UV 占比。例如,子弹的 UV shells 会比模型其余部分略大一些,而枪管内部则明显更小。这一点连同镜像一起,是为了确保重要部分获得更高的分辨率。

这类硬表面模型通常会在硬边处或按 UV shells 进行平滑处理。但由于我们的游戏风格更偏卡通,我们计划让刚性形体上出现有机动画。
如果我在烘焙前不使用 average smoothing,法线在弯曲和拉伸时就会出问题,在 Normal Map 上显示出难看的接缝线,而这些接缝在网格静止时本来会被隐藏。
等一切设置完成并正确命名后,我会转到 Substance 3D Painter,把 high-poly 烘焙到 low-poly 上,并开始贴图。
Baking 与贴图
我会导出两个变体,均包含 high-poly 和 low-poly。
其中一个专门用于 AO 烘焙。我在这里使用 Match Always 功能;因此,对应的高模和低模网格需要被炸开(exploded)。我会把模型中(动画时会移动或旋转的)部件从原始位置稍微挪开,使它们互不影响,避免 AO 阴影到处渗色。

对于其余贴图,我会把高模和低模都替换成未拆解版本,并使用 Match by Name 功能。然后把其余贴图烘焙到模型上,再检查是否存在错误或瑕疵;如果有,就调整 Cage 的前向距离,或者改用选项中的 Automatic 功能。不过我发现这个功能在更偏有机的模型上效果更好。
至于具体贴图上的滑块调整,大多数情况下默认值就能得到令人满意的结果,但多花一点时间尝试也无妨。







一旦对烘焙结果满意,我就会调整 Substance 视口的设置。我会选择一个更灰、带有锐利高光的 HDRI。我觉得默认的 Panorama 对大多数场景来说色彩过于丰富,所以会换成 Studio Tomoco。这样可以确保模型本身不会过多受到灯光影响。
我把 FOV 从 50 改为 35/30 度,开启 TAA,并在 shader 设置中把高光质量从 Low (16 spp) 改为 Ultra (256 spp)。工作过程中我会完全关闭 AO 强度,因为它在制作过程中往往会把凹陷弄得太乱。

一切设置到位后,我开始贴图流程:先根据概念图用平涂颜色填充模型。我会分别为三大主要材质组(金属、木材和子弹)设置渐变、AO、Curvature 和 Sharpening 叠加层。之前烘焙的 ID 图在这个阶段用于设置遮罩非常有用。
一旦对整个模型的总体色彩方案满意,我就开始专注于各个材质组,并开始搭建 Fill Layers。
添加 Color Variation 贴图,用 AO 和 Curvature 生成器压暗凹陷,调整 Roughness 数值并加入 breakup,创建 Height 和 Pattern 细节并用 Blur Slope、Sharpen 等滤镜微调,添加 Dirt 和 Dust 用更暗的数值填充缝隙,借助 Curvature 图通过 Levels 滤镜让在 ZBrush 中制作的磨损更明显,等等……
另外,别忘了 Substance 和任何其他图形软件一样有混合模式,而且每种贴图类型还各自独立。尝试这些混合模式,并知道在何处使用哪一种,是巨大的优势。
有些部件只用生成器就能应付,但总会有需要拿起数位笔手动修改特定区域的时候,比如修正和调整黑色遮罩、补上缺失的细节,或在 Roughness 贴图上手动添加元素,甚至手绘颜色渐变让它们更自然。
这个阶段会有大量反复来回:不断拖动滑块、微调颜色值、更换 HDRI 并旋转它来发现瑕疵,从而得到最理想的效果。
你可以看到这些材质如何逐层搭建的详细拆解。
在这个项目中,我想做一些既不是纯风格化、也不是超写实的东西。形体更厚重,但仍在一定程度上符合真实比例。整个项目从雕刻开始到贴图结束,我都牢记这一点。
不过,如果你想要纯风格化……总的来说,必须避免我在这里做的这种微观细节。让各个网格上的 Roughness 数值更统一,并提高它们的尺度,使其更夸张、更厚重。减少它们之间的 breakup,用不同笔刷手绘颜色变化细节,并把微观高度细节保持在最低限度,使它们的过渡不那么锐利。
注意只把生成器当作基础,在其上继续搭建,手动绘制形状、挤出结构和相交处。甚至可以把 Metallic 通道整个删掉,因为它是为更写实的外观服务的。
渲染与后期处理
贴图完成后,我将其导出并回到 Max 中给模型摆姿势(在这个案例中,我做了一个枪管半开、弹壳正从里面弹出的姿势)。
然后导出这些网格,开始在 Marmoset Toolbag 中组装场景,将贴图导入 shader 并设置灯光。我不想让场景变得太复杂,尤其是只为一个模型,所以我采用基础的灯光方案。这里我用了两个版本。
第一个场景中,我用了一盏朝向前方的白色聚光灯和一盏从后方打来的平行光,另外还有一盏偏橙色的灯专门用来强调边缘。所有这些都搭配我从 Substance 库中移植过来的 Tomoco HDRI。
第二个场景中,我使用了同样来自 Substance 库的 White Umbrella,它提供了更自然但明亮的偏白棚拍灯光,并额外加了一盏从下方照向模型的聚光/平行光。
我会根据具体镜头效果调整后期设置,开启光线追踪以及景深、锐化、泛光等选项。
之后,我会截取透明背景的截图,以便之后用 Photoshop 合成。我还会渲染 Full Lighting、AO 和 Wireframe 的 360 度转台,以便之后在 Premiere 中叠加。



结语
总而言之,我想说这个项目让我走出了舒适区,学习了新工具,也让我在制作游戏资产的高模和贴图时形成了更好的工作方法。
我的目标是把不同的风格融合在一起,这促使我更有创造力,并承担必要的风险,希望最终能做出一些独特的东西。
从开始到完成大约花了我一个半月。我一直在反复来回调整,试着决定东西应该看起来怎样,以及哪些部分还可以改进。虽然有时会稍微有些困难,但结果绝对值得投入的时间和精力,这是一段很有收获的经历,也让我更加热爱这种风格化的美术形式。
我想非常感谢 Games Artist 给我机会展示我的作品,当然也要感谢你,读者。希望它在某种程度上有所帮助,让你学到了一些新的、有趣的技巧。
祝大家都能创作出自己美丽的作品。
喜欢这篇内容吗?