ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Substance Painter武士角色纹理全流程:从UV烘焙到PBR材质拆解

Substance Painter武士角色纹理全流程:从UV烘焙到PBR材质拆解 1. 从一张白模到能进引擎的武士这套纹理流程到底在解决什么很多人第一次接触 Substance Painter 做角色纹理脑子里想的都是“把材质往上糊就完事了”。真上手一个 AAA 级别的武士角色才发现事情远没那么简单——刀镡的金属要有磨损层次甲片之间的皮革绑绳得区分新旧和服布料在不同光照下要能看出织物质感脸部皮肤更是不能像塑料。这些需求堆在一起靠手绘贴图或者简单的材质球拼接根本扛不住。我这次做的这套武士角色纹理核心目标就是让模型在 PBR 渲染管线里经得起近距离特写。所谓 PBR全称是 Physically Based Rendering中文一般叫基于物理的渲染。它的核心逻辑是材质的颜色、粗糙度、金属度、法线这些通道分别描述表面对光的不同反应最终由渲染器统一计算。Substance Painter 之所以成为行业标配就是因为它把这套通道的绘制、遮罩、生成器、粒子笔刷整合到了一个非破坏性的工作流里。这篇文章适合谁看如果你已经会基本的 SP 操作但做出来的角色总感觉“差点意思”——金属不够脏、布料太平、皮肤像蜡像——那这篇就是写给你的。我会把整个武士角色的纹理拆解过程讲透包括每个通道为什么这么画、遮罩怎么叠、生成器怎么调、导出怎么配。全程不藏私都是实际项目里踩出来的经验。先说清楚一个前提纹理质量的上限在建模和 UV 阶段就已经定死了。UV 接缝乱、UV 岛大小不均、模型没有合理的倒角后面在 SP 里花再多时间都是补窟窿。所以我在正式进入 SP 之前会先花时间检查这几件事后面会单独讲。2. 进 SP 之前必须搞定的三件事UV、倒角与材质分区2.1 UV 排布决定了你后期能省多少事UV 是纹理的“地图”它决定了每个像素对应模型上的哪个位置。武士角色这种带大量硬表面和布料混合的模型UV 排布有几个硬性要求。第一UV 岛之间的间距要留够。我一般留 4 到 8 个像素的 padding具体看最终贴图分辨率。如果是 4K 贴图8 像素的间距能有效避免烘焙时的边缘溢出。第二UV 岛的朝向要统一。比如所有甲片的 UV 都朝同一个方向这样后期用生成器加磨损时磨损方向才一致不会出现有的甲片磨损朝上、有的朝下这种违和感。第三UV 岛的密度要尽量均匀。武士的刀和脸部可能需要更高的纹理精度但也不能让刀占了半张贴图、身体只占一小块。我习惯在 Blender 或者 Maya 里先把 UV 展开然后用棋盘格贴图检查拉伸。棋盘格如果出现明显的方形被拉成长方形说明那块 UV 需要重新展。这一步偷懒后面在 SP 里画细节时会发现笔刷一上去就糊成一片。2.2 倒角是硬表面纹理的生命线Substance Painter 里有一个非常好用的功能叫“按曲率生成遮罩”它能自动识别模型的边缘和凹陷。但这个功能的前提是模型有合理的倒角。如果甲片的边缘是绝对锐利的 90 度角烘焙出来的法线贴图在边缘处会非常生硬曲率遮罩也识别不出边缘你想要的“边缘磨损”效果就出不来。我的做法是所有硬表面边缘至少加 1 到 2 段倒角倒角宽度根据模型尺寸来定。比如一个 20 厘米长的刀镡倒角宽度在 0.5 到 1 毫米左右比较合适。倒角太宽会显得模型很“肉”太窄又起不到作用。这个度需要根据实际渲染效果反复调。2.3 材质分区ID Map 是你的导航图一个武士角色身上有金属、皮革、布料、木材、皮肤、毛发等多种材质。如果不在 SP 里做材质分区你每次选遮罩都要手动框选效率极低还容易漏。我的做法是在建模软件里给不同材质的部分分配不同的顶点色或者材质 ID然后烘焙一张 ID Map。在 SP 里这张 ID Map 可以直接用来做遮罩点一下就能选中所有金属件或者所有布料。这个准备工作花半小时后面能省好几个小时。提示ID Map 的颜色要选对比度高的纯色比如纯红、纯绿、纯蓝、纯黄。不要用相近的颜色否则 SP 识别时容易混淆。3. 烘焙这一步没做好后面全是白费功夫3.1 烘焙参数里最容易被忽略的三个设置烘焙是把高模的细节投射到低模上的过程。武士角色的甲片、刀纹、布料褶皱这些细节都在高模上低模只有基础形状。烘焙质量直接决定了法线贴图、AO 贴图、曲率贴图的质量。第一个容易忽略的是Max Rear Distance最大背面距离。这个参数控制射线从低模表面向外搜索高模的最大距离。如果设得太小高模上凸起的部分可能烘焙不到设得太大又可能把背面不该投射的细节也带进来。我的经验值是模型整体尺寸的 2% 到 5%。比如角色高度 2 米这个值设在 4 到 10 厘米之间比较合理。第二个是Antialiasing抗锯齿。烘焙时一定要开一般设成 4x 或 8x。不开抗锯齿的话法线贴图边缘会有明显的锯齿在引擎里近距离看非常明显。第三个是Match选项要选By Mesh Name。这样 SP 会按照模型命名来匹配高低模避免不同部件的细节互相串扰。前提是高低模的命名要对应比如高模叫helmet_high低模就要叫helmet_low。3.2 烘焙完先别急着画花五分钟检查这几张图烘焙完成后SP 会自动生成 Normal、AO、Curvature、Position、Thickness 等贴图。我一般会先花几分钟检查这几张图的质量。法线贴图要看有没有明显的接缝或者色块。如果某个区域颜色突然变深或者变浅说明那里的烘焙出了问题可能是高低模匹配不准也可能是 UV 接缝处有溢出。AO 贴图要看阴影是否合理凹陷处应该有暗部凸起处应该亮。曲率贴图是黑白的边缘应该是白色平面是灰色凹陷是黑色。如果曲率图看起来糊成一团说明模型倒角不够或者烘焙精度不够。这几张图检查完没问题再开始画纹理。否则画到一半发现烘焙有问题返工成本极高。3.3 一个真实踩坑法线贴图的反向问题我遇到过好几次烘焙出来的法线贴图在 SP 里看着正常一导进引擎就发现光照完全不对该凸的地方凹了该凹的地方凸了。这个问题通常是法线贴图的绿通道方向不一致导致的。不同软件对法线贴图绿通道的定义不同有的用 OpenGL 标准有的用 DirectX 标准。解决办法是在 SP 的导出设置里根据目标引擎选择正确的法线格式。Unity 和 Unreal 用的标准不一样导出前一定要确认清楚。如果已经导错了在 SP 里重新导出一次就行不用重新烘焙。4. 武士角色的材质拆解金属、皮革、布料、皮肤各怎么画4.1 刀与甲片金属材质的层次感从哪来武士刀和甲片是这套纹理里最抓眼球的部分。金属材质在 PBR 里主要靠三个通道控制Base Color基础色、Metallic金属度、Roughness粗糙度。金属的 Base Color 决定反射的颜色Metallic 一般设为 1Roughness 决定反射的模糊程度。但真实的金属从来不是干净的。一把用过的武士刀刀身会有细微的划痕刀镡会有氧化和手汗腐蚀甲片边缘会有碰撞磨损。这些细节怎么加我的流程是这样的先铺一层基础的金属材质然后用法线通道加一层细微的划痕纹理。划痕不要用笔刷直接画用 SP 自带的 Scratch 生成器调整密度和长度让它自然分布。然后在 Roughness 通道上用曲率遮罩选中所有边缘把边缘的粗糙度调高模拟磨损效果。最后在 Base Color 上用 AO 遮罩在凹陷处加一点暗色模拟污垢堆积。刀身的处理更讲究。武士刀通常有“地肌”和“刃文”这些细节这些在低模上没法用几何表现全靠纹理。我会用一层噪波纹理做基础然后用方向性的笔刷沿着刀身方向轻轻扫几笔模拟锻打纹理。刃口部分用曲率遮罩单独提亮让刃口看起来更锋利。注意金属的粗糙度不要全图统一。全图统一粗糙度的金属看起来像塑料。真实金属表面粗糙度是有变化的有的地方光滑有的地方粗糙这种变化才是金属质感的来源。4.2 皮革绑绳与甲片连接处怎么做出“用旧了”的感觉武士甲片之间的皮革绑绳是体现年代感的关键。新皮革颜色均匀、表面光滑旧皮革颜色变深、表面有裂纹和磨损。我的做法是先用一层深棕色的皮革基础色然后用 SP 的 Leather 生成器加一层细微的纹理。接着用曲率遮罩选中绑绳的边缘和转折处把颜色调浅一点模拟摩擦掉色的效果。然后在 Roughness 通道上把经常摩擦的地方粗糙度降低因为摩擦会让皮革表面变光滑。绑绳和甲片接触的地方我会额外加一层污垢。用 AO 遮罩选中接触区域加一层深色模拟汗渍和灰尘堆积。这个细节很小但加上之后整个甲片的真实感会提升一个档次。4.3 和服布料如何避免“纸片感”布料是很多人的痛点。画出来的布料要么像纸片要么像塑料布就是不像布。问题通常出在法线和粗糙度上。布料的法线要有织物的纹理感。SP 里有 Fabric 生成器可以生成各种编织纹理。但直接用生成器会显得太规整真实的布料纹理是有随机变化的。我会在生成器的基础上再叠一层噪波让纹理有自然的起伏。布料的粗糙度整体偏高但不同区域要有变化。比如和服的袖口和下摆因为经常摩擦粗糙度会低一些看起来有一点光泽。而背部和不常接触的地方粗糙度更高看起来更哑光。这种粗糙度的变化是布料真实感的关键。另外布料的边缘不要用硬边。用软笔刷在边缘处轻轻过渡让布料看起来有厚度。如果边缘是刀切一样的硬边不管纹理画得多好都会像纸片。4.4 脸部皮肤次表面散射的纹理准备皮肤是角色纹理里最难的部分。PBR 渲染器通常有次表面散射SSS功能能让光线在皮肤表面下散射产生那种半透明的质感。但 SSS 需要纹理提供正确的信息。皮肤的 Base Color 不要用纯肉色。真实皮肤的颜色是有变化的额头和鼻子偏黄脸颊偏红下巴和眼周偏青。我会用 SP 的 Skin 生成器做基础然后手动在脸颊处加一点红色在眼周加一点紫色在额头加一点黄色。这些颜色变化非常微妙但叠加起来就是“活人”和“蜡像”的区别。皮肤的 Roughness 也要有变化。T 区额头和鼻子因为油脂分泌粗糙度低一些看起来有一点反光。脸颊和下巴粗糙度高一些看起来更哑光。嘴唇的粗糙度最低因为嘴唇表面有水分。法线方面皮肤要有毛孔和细纹。SP 有专门的皮肤法线生成器但要注意强度。毛孔太强会像橘子皮太弱又没效果。我的经验是在 4K 贴图下毛孔的法线强度控制在 0.1 到 0.2 之间比较自然。5. 遮罩与生成器让纹理“自己长出来”的核心技巧5.1 遮罩的叠加逻辑从大到小从粗到细SP 的遮罩系统是它最强大的功能之一。但很多人用不好遮罩是因为没有搞清楚叠加逻辑。我的原则是从大到小从粗到细。先做大的材质分区比如所有金属件一个遮罩所有布料一个遮罩。然后在每个分区内部再做细节遮罩比如金属件里的边缘磨损、凹陷污垢。最后在细节遮罩里再用噪波或者手绘做微调。遮罩的叠加方式有 Add、Subtract、Multiply 等。Add 是并集Subtract 是差集Multiply 是交集。比如我想选中“金属件中边缘磨损的部分”就是“金属件遮罩” Multiply “曲率遮罩的边缘部分”。这样选出来的区域既在金属件上又在边缘处。5.2 生成器的参数不要照搬要按模型尺寸调SP 自带的生成器有几十个每个都有好几个参数。很多人直接套预设结果效果不对。问题在于生成器的参数是基于模型尺寸的。一个 2 米高的角色和一个 20 厘米高的手办同样的生成器参数出来的效果完全不同。我的做法是先看生成器的 Scale 参数把它调整到和模型实际尺寸匹配。比如 Rust 生成器的 Scale如果模型是 2 米高Scale 设在 1 到 2 之间比较合适。如果模型是 20 厘米Scale 要设在 0.1 左右。其他参数再根据视觉效果微调。5.3 粒子笔刷快速铺细节的利器SP 的粒子笔刷可以在短时间内铺出大量自然分布的细节比如地面的碎石、衣服上的灰尘、金属表面的斑点。但粒子笔刷用不好会显得很假因为粒子分布太均匀。我的技巧是用粒子笔刷时把笔刷的 Flow 和 Spacing 调低让粒子稀疏一些。然后分多次画每次稍微改变笔刷的旋转和大小。这样粒子分布会更自然。另外粒子笔刷画完之后可以用模糊笔刷轻轻扫一下让粒子边缘柔和一些避免生硬的颗粒感。6. 导出设置别让最后一步毁了前面所有努力6.1 导出模板怎么选SP 提供了很多导出模板对应不同的引擎和渲染器。Unity 用 Standard MetallicUnreal 用 Unreal Engine 4 PackedBlender 用 Principled BSDF。选错模板会导致通道打包方式不对引擎里读出来的材质完全不对。如果找不到完全匹配的模板可以自己建一个。在导出配置里把 Base Color、Metallic、Roughness、Normal、AO、Height 这些通道分别指定到对应的输出文件。注意法线贴图的格式要选对前面说过 OpenGL 和 DirectX 的区别。6.2 贴图分辨率与压缩格式的取舍4K 贴图当然好但显存占用也大。一个角色如果全身用 4K 贴图加上法线、粗糙度、金属度、AO显存占用可能超过 500MB。如果场景里有多个角色显存很容易爆。我的做法是脸部和武器用 4K身体用 2K一些不重要的配件用 1K。这样既保证了关键区域的精度又控制了显存占用。导出格式用 PNG 或者 TGA不要用 JPG因为 JPG 是有损压缩会在法线贴图上产生伪影。6.3 在引擎里验证最后一道关卡贴图导进引擎之后不要只看静态效果。要在不同光照环境下转一圈看看有没有明显的问题。比如在强光下看金属的高光是否自然在暗光下看布料的暗部是否有细节在侧光下看法线贴图的凹凸是否合理。我还会把角色放到实际场景里看看和环境的融合度。有时候单独看角色没问题一放进场景就发现色调不对或者光照不匹配。这时候可能需要回到 SP 里微调 Base Color 或者 Roughness。7. 几个让我少走弯路的实操习惯做这套武士纹理的过程中有几个习惯帮我省了大量时间这里分享出来。第一个习惯是分层命名。SP 的图层多了之后如果不命名过两天自己都看不懂。我的命名规则是“部位_通道_细节”比如helmet_roughness_scratch、cloth_normal_weave。这样一看就知道这层是干什么的。第二个习惯是定期另存版本。SP 的文件有时候会出问题尤其是图层特别多的时候。我一般每完成一个主要部分就另存一个版本比如samurai_v1、samurai_v2。这样即使后面改坏了也能退回到之前的版本。第三个习惯是用文件夹分组。SP 支持把图层放进文件夹文件夹也可以加遮罩。我一般按部位分组比如“头部”“身体”“武器”“配件”每个文件夹里再放对应的图层。这样结构清晰找起来快。第四个习惯是导出前先做一次全局检查。把视角拉到最近沿着模型转一圈看看有没有漏画的地方、有没有明显的接缝、有没有通道设置错误。这个检查花五分钟能避免导出后发现问题的返工。提示SP 的快捷键CtrlShiftE可以快速导出当前贴图CtrlS是保存。养成随手保存的习惯SP 崩溃起来是不讲道理的。8. 关于 PBR 工作流的一点个人体会PBR 工作流的核心思想是“让材质描述物理事实让渲染器决定最终效果”。这意味着你在 SP 里画的每一个通道都应该有现实依据。金属度要么是 0 要么是 1不要画 0.5因为现实中不存在半金属。粗糙度要参考真实材料的表面状态不要凭感觉乱调。我见过很多人把 SP 当成 Photoshop 用在 Base Color 上画一堆高光和阴影。这在 PBR 工作流里是错的因为高光和阴影是光照的结果不是材质本身的属性。你应该画的是材质的颜色、粗糙度、金属度让渲染器去计算高光和阴影。这套武士角色的纹理做完之后我最大的感受是好的纹理不是画出来的是“养”出来的。你先铺基础材质然后一层一层加细节每一层都基于现实逻辑最后叠加出来的效果就是真实的。急不得也省不得。如果你也在做角色纹理建议从一个小部件开始比如一把刀或者一个头盔把整个流程走通。走通之后再扩展到全身会顺畅很多。遇到问题不要急着推翻重来先检查烘焙、UV、遮罩这些基础环节大部分问题都出在这些地方。
返回列表