
1. 从一张白模到能进引擎的武士这套纹理流程到底在解决什么很多人第一次接触 Substance Painter 做角色纹理脑子里想的都是“把材质往上糊就完事了”。但真正做过 AAA 项目的人都知道一个武士角色从白模到最终能进引擎跑起来中间隔着的不是“会不会用笔刷”而是一整套关于 PBR 逻辑、材质分层、贴图精度分配和跨软件协作的系统工程。我见过太多人拿着高模烘焙出来的法线贴图往 Base Color 上随便叠几层金属和布料导出之后进引擎一看——要么金属反射像塑料要么布料在暗部直接死黑要么刀鞘的磨损边缘糊成一团。问题从来不在“手抖”而在于没有理解 PBR 工作流里每一个通道到底在表达什么物理意义。这篇内容我想聊的是一个完整的 AAA 级武士角色纹理制作流程。关键词是 Substance Painter、PBR、纹理、工作流。适合已经会基础操作、但做出来的东西总觉得“差一口气”的中级选手也适合刚接触 PBR 流程、想搞清楚“为什么这么连节点”的新人。我会从项目拆解、材质分区、烘焙策略、分层逻辑、磨损叙事、导出规范这几个维度把一套能直接复用的工作流讲透。不是那种“点这里点那里”的流水账而是告诉你每一步背后的判断依据——为什么这个部位要用三层金属叠加为什么磨损不能靠一张遮罩走天下为什么导出前必须做通道校验。先给一个整体认知武士角色的纹理难点集中在“金属与织物的交界”“大面积皮革的层次”“刀刃的磨损叙事”和“布料在 PBR 下的粗糙度控制”这四个地方。把这四块吃透剩下的就是熟练度问题。下面我按实际制作顺序从拿到白模开始讲。2. 拿到白模之后的第一件事材质分区与 UV 策略2.1 为什么不能直接开画材质分区的底层逻辑拿到一个武士白模不管是自己建的还是外包给的第一件事绝对不是打开 Substance Painter 就开始铺材质。你要先做材质分区。什么叫材质分区就是根据角色的设计稿把模型表面划分成若干个“材质区域”——比如主甲片金属、内衬粗布、绑绳麻绳、刀鞘漆木金属包边、刀刃高碳钢、护手皮革、面部皮肤、头发发丝片。每个区域对应一套独立的材质逻辑因为它们的物理属性完全不同。为什么这一步不能省因为 Substance Painter 的图层是“按 UV 壳”来作用的。如果你在 UV 上没有把不同材质分开后面做遮罩的时候就会互相干扰。举个例子你想给甲片做金属磨损结果遮罩不小心刷到了旁边的布料上布料突然出现金属高光整个画面就崩了。所以我的习惯是在 Blender 或 Maya 里就把不同材质的 UV 壳分到不同的 UDIM 或者至少不同的 UV 象限里这样进 SP 之后可以用“UV 壳选择”快速隔离。具体操作上我会在建模软件里给每个材质区域分配一个独立的材质球命名规范比如M_Armor_Plate、M_Cloth_Inner、M_Leather_Guard、M_Blade_Steel。然后导出 FBX 的时候勾选“保留材质分组”这样进 SP 之后每个材质球会自动变成一个 Texture Set。这是最省事的做法也是 AAA 项目里最标准的流程。2.2 UV 排布的三个硬指标精度、接缝、对称UV 排布直接决定你后面贴图的精度上限。武士角色通常有大量硬表面和软性布料混合UV 策略要分开处理。硬表面甲片、刀刃、刀鞘尽量用平面投影加少量松弛保证边缘平直软性布料内衬、绑绳用圆柱或自动展开允许一定拉伸但接缝要藏在视觉死角。三个硬指标第一纹理密度要统一。我一般用 1024 像素每米作为基准甲片这种需要高细节的区域可以到 2048布料可以降到 512。第二接缝要藏好。武士的甲片接缝可以藏在甲片叠压处布料的接缝藏在腋下、后背中线这些地方。第三对称部分要共用 UV。左右肩甲、左右护腕这些对称件UV 重叠可以省一半贴图空间但要注意磨损不能完全对称后面在 SP 里用镜像遮罩加随机偏移来打破。提示UV 排布完成后一定要在 SP 里跑一遍“UV 检查”看看有没有重叠、翻转、拉伸过大的壳。我见过太多人烘焙完了才发现 UV 有问题返工成本极高。2.3 高低模匹配烘焙前的最后一道防线烘焙之前高低模的匹配度决定了法线贴图的质量。武士角色的高模通常有大量雕刻细节——甲片的锤纹、皮革的缝线、刀刃的磨痕。低模要尽量贴合高模的轮廓尤其是边缘和转折处。我的做法是低模先做一遍“包裹测试”把高模以半透明叠加显示检查低模有没有穿插或者偏离太远。偏离超过 2 毫米的地方要么调整低模要么在烘焙时用Max Rear Distance单独控制。烘焙参数上武士角色我一般用4096×4096的贴图尺寸Antialiasing开到4x4Max Rear Distance设成0.5到1.0之间具体看模型尺度。Skew一定要开能有效减少边缘的烘焙错误。烘焙完成后重点检查三个通道法线有没有接缝、AO 有没有黑边、曲率有没有噪点。这三个通道是后面所有材质的基础基础不牢后面全白搭。3. 武士材质的 PBR 拆解金属、皮革、布料、刀刃各走什么路3.1 金属甲片三层叠加与粗糙度梯度武士甲片是整套纹理里最出彩的部分也是最容易做“假”的部分。很多人做金属就是 Base Color 给个灰色Metallic 拉满Roughness 给个 0.3完事。结果出来就是一块塑料。真正的金属甲片需要三层叠加底层金属基底 中层氧化/污渍 顶层磨损/划痕。底层金属基底Base Color 用深铁灰Metallic 为 1Roughness 在 0.25 到 0.35 之间。这一层决定金属的基本反射。中层氧化用Fill Layer加一个暗色Metallic 降到 0.6 左右Roughness 提到 0.6模拟金属表面的氧化层。顶层磨损用Paint Layer配合曲率遮罩和手绘把边缘和凸起处的 Roughness 降到 0.15Base Color 提亮模拟高光磨损。粗糙度梯度是关键。甲片的平面区域 Roughness 高一些0.4 左右边缘和铆钉处低一些0.15 左右这样在引擎里打光的时候边缘会自然形成高光带立体感立刻就出来了。我通常会用Curvature智能遮罩先铺一层大关系再用手绘笔刷补细节。3.2 皮革护手与绑绳法线细节与粗糙度控制皮革和绑绳属于“软性材质”难点在于既要表现出柔软感又不能失去 PBR 的物理准确性。皮革的 Base Color 用暖棕色系Metallic 为 0Roughness 在 0.5 到 0.7 之间。关键在于法线细节——皮革的纹理、缝线、褶皱都要靠法线贴图来表现。我一般会在 SP 里用Leather自带的材质球打底然后叠加手绘的缝线和磨损。绑绳的粗糙度要更高一些0.7 到 0.85因为麻绳的表面更粗糙。Base Color 用米黄色到深褐色的渐变模拟使用后的脏污。绑绳的磨损集中在与甲片接触的地方用Position遮罩配合手绘把接触点的颜色压暗、粗糙度提高。注意皮革和绑绳的 Metallic 必须为 0。我见过有人不小心把 Metallic 留了 0.1结果进引擎之后整个护手泛着诡异的金属光排查了半天才发现是通道没清零。3.3 内衬布料粗糙度贴图决定成败布料是 PBR 工作流里最容易被忽视的部分。很多人觉得布料就是“给个颜色Metallic 为 0Roughness 拉高”但真正做出来之后发现布料在暗部死黑、在亮部又太平。问题出在粗糙度贴图没有层次。布料的粗糙度不是均匀的纤维的走向、织法的密度、磨损的程度都会影响粗糙度。我的做法是先用Fabric材质球打底Roughness 给 0.8 左右。然后叠加一层Noise生成的细微粗糙度变化模拟纤维的不均匀。最后在磨损区域比如袖口、下摆把 Roughness 降到 0.6 左右因为磨损后的布料纤维更紧密反射会稍微强一点。Base Color 上内衬用深蓝或深灰配合 AO 通道压暗褶皱深处让布料有体积感。3.4 刀刃从镜面到磨砂的叙事性磨损刀刃是武士角色的视觉焦点也是最考验磨损叙事的地方。一把用过的刀刀刃不可能是均匀的镜面。靠近刀尖的部分因为频繁切割磨损最严重Roughness 高、Base Color 暗靠近护手的部分相对完好Roughness 低、反射强。这种梯度变化就是“叙事性磨损”。具体操作先用Metal材质球给刀刃一个基础金属层Metallic 为 1Roughness 0.1。然后新建一个Paint Layer用渐变遮罩从刀尖到护手做一个过渡把刀尖区域的 Roughness 提到 0.5Base Color 压暗。再叠加一层Scratches生成器用Position遮罩限制在刀刃边缘模拟细小的划痕。最后用手绘笔刷在刀尖补几道明显的崩口法线通道同步加深。4. 磨损与叙事让纹理讲一个“被使用过”的故事4.1 磨损不是随机从使用逻辑推导磨损位置磨损是角色纹理的灵魂但很多人做磨损就是“随便刷几笔”。真正的磨损是有逻辑的。武士的甲片磨损集中在肩部、胸部、腰部——因为这些地方是武器和敌人接触最频繁的区域。护手的磨损集中在握持处因为手掌的摩擦。绑绳的磨损集中在打结处和与甲片接触处。刀刃的磨损集中在刀尖和刃口。我的习惯是在开始做磨损之前先画一张“磨损分布图”——用简单的色块标出每个区域的磨损强度。这张图不用很精细但要有逻辑。比如肩甲的外侧磨损最重内侧几乎无磨损护手的掌心侧磨损重手背侧轻。有了这张图后面在 SP 里做遮罩的时候就有了依据不会乱刷。4.2 遮罩的层级曲率、AO、位置、手绘的配合Substance Painter 的遮罩系统是磨损制作的核心。我一般用四层遮罩配合曲率遮罩抓边缘和凸起AO 遮罩抓凹陷和缝隙位置遮罩控制区域手绘遮罩补细节。这四层的顺序很重要先用曲率铺大面积的边缘磨损再用 AO 压暗缝隙然后用位置遮罩限制在特定区域最后手绘补关键细节。曲率遮罩的Balance参数很关键我一般设在 0.4 到 0.6 之间太高会抓太多噪点太低会漏掉细节。AO 遮罩的Radius要根据模型尺度调整武士角色一般用 0.5 到 1.0。位置遮罩可以用Position节点的Axis来控制比如只影响 Y 轴上半部分肩部区域。4.3 打破对称镜像遮罩加随机偏移对称角色的磨损如果完全对称会显得非常假。我的做法是先用镜像遮罩做基础磨损然后复制一层把镜像关掉用Transform节点做轻微的位移和旋转再用手绘笔刷在不对称的地方补几笔。这样既保证了效率又打破了对称感。具体参数上Transform的Offset给 0.02 到 0.05 之间Rotation给 1 到 3 度Scale给 0.98 到 1.02。这些微小的变化在视觉上不会破坏整体对称但能有效消除“复制粘贴”的感觉。提示武士的绑绳和布料褶皱是最容易看出对称的地方建议这些区域完全手绘不要用镜像。5. 导出前的通道校验与引擎适配5.1 导出模板的选择Metallic/Roughness 还是 Specular/GlossinessSubstance Painter 支持多种导出模板最常见的是Metallic/Roughness和Specular/Glossiness。现在主流引擎Unreal、Unity 的 Standard Shader都用 Metallic/Roughness所以导出时选PBR Metallic Roughness模板就行。但要注意不同引擎对通道打包的要求不一样。Unreal 要求Roughness放在 G 通道Metallic放在 B 通道AO放在 R 通道。Unity 的 Standard Shader 则是Metallic在 R 通道AO在 G 通道Roughness在 A 通道。我的做法是在 SP 里先导出未打包的通道图Base Color、Normal、Roughness、Metallic、AO、Height然后在 Photoshop 或 Substance Designer 里按目标引擎的要求打包。这样最灵活也最不容易出错。5.2 通道校验三个必须检查的细节导出前必须做通道校验。第一Metallic 通道只能有 0 和 1或者接近 0 和 1 的值不能有中间值。如果有中间值说明材质分区出了问题金属和非金属混在一起了。第二Roughness 通道不能全黑或全白要有梯度变化。全黑说明粗糙度没做全白说明粗糙度拉满了。第三Normal 通道的蓝色通道Z 通道必须是正的如果出现负值说明法线翻转了进引擎会出大问题。我一般会在 SP 里用Channel View逐个检查确认无误后再导出。导出格式用 PNG 或 TGA位深 16 位法线必须 16 位其他可以 8 位。5.3 引擎里的最终验证光照环境与材质响应导出之后一定要在目标引擎里做最终验证。Unreal 里我会用一个中性 HDRI 环境光加一个方向光检查金属的反射、布料的漫反射、皮革的粗糙度响应。重点看三个地方金属在暗部有没有死黑、布料在亮部有没有过曝、刀刃的高光有没有断层。如果有问题回到 SP 调整对应的通道重新导出。Unity 里我会用Standard Shader加Reflection Probe检查金属的反射是否准确。Unity 的Smoothness和 SP 的Roughness是反的导出时要注意转换。6. 我在实际项目里踩过的坑和总结出的手感6.1 法线接缝烘焙参数与 UV 接缝的配合法线接缝是武士角色纹理里最常见的问题。甲片的硬边、刀刃的转折处如果 UV 接缝正好落在这些地方烘焙出来的法线就会有明显的接缝。我的解决办法是UV 接缝尽量藏在视觉死角比如甲片的叠压处、刀刃的刀背。如果实在藏不了就在烘焙时把Max Rear Distance调大让高低模的匹配更宽松。另外SP 里的Normal通道可以用Fill Layer加Normal节点做轻微的模糊能有效减轻接缝。6.2 金属反射的“塑料感”粗糙度与 AO 的配合金属反射像塑料通常是因为粗糙度太低且 AO 太强。金属的粗糙度不能低于 0.1否则反射太锐利像镜子。AO 也不能太强否则金属的暗部会死黑失去金属的反射特性。我的经验是金属的 AO 强度控制在 0.3 到 0.5 之间粗糙度最低 0.15这样既有金属的反射感又不会像塑料。6.3 布料在暗部的死黑AO 与 Base Color 的平衡布料在暗部死黑是因为 AO 太强且 Base Color 太暗。布料的 AO 强度我一般控制在 0.2 到 0.4 之间Base Color 的明度不要低于 0.15。另外可以在布料的Roughness通道里加一点Noise让暗部的反射有细微变化避免死黑。6.4 导出后的通道错位打包顺序的坑通道错位是最让人头疼的问题。Unreal 和 Unity 的通道打包顺序不一样如果导出时选错了模板进引擎之后金属会变成粗糙度粗糙度会变成金属整个材质就崩了。我的做法是导出前先在 SP 里确认目标引擎的通道要求然后手动打包。打包完成后用Channel View再检查一遍确认每个通道的内容正确。6.5 手感总结从“像”到“真”的关键做了这么多武士角色我最大的体会是PBR 纹理的“真”不在于细节多而在于物理逻辑对。金属的反射要符合金属的物理特性布料的粗糙度要符合布料的纤维结构磨损要符合使用逻辑。把这些逻辑理顺了哪怕细节少一点看起来也是真的。反之细节再多逻辑不对看起来就是假的。另外Substance Painter 的图层不要堆太多一般控制在 20 层以内。层数太多不仅影响性能还会让调整变得困难。我的习惯是大关系用生成器和智能遮罩细节用手绘关键区域用图层组管理。这样既高效又容易调整。最后分享一个小技巧在 SP 里做磨损的时候可以开一个Reference面板放几张真实的武士甲片照片。一边看参考一边刷比凭想象刷要准得多。这个习惯我保持了五六年每次都能发现新的细节。