1. 次世代PBR角色制作的核心思路拆解
1.1 为什么选《凡人修仙传》IP手办作为案例载体
做次世代角色做了这么多年,我越来越觉得,选对练习案例比闷头做十个通用人体模型都管用。《凡人修仙传》这个IP的手办化,天然带着几个非常适合练手的特征:一是服装层次极其丰富,韩立那身行头从内衬到外袍到腰带配饰,层层叠叠,正好把高模雕刻里的布料褶皱、硬表面配件、金属件全给你凑齐了;二是修仙题材特有的法器、玉佩、发冠这些元素,逼着你必须掌握硬表面和软材质的混合处理;三是国风审美的比例关系和日式、美式角色差异很大,脸型、体态、服饰剪裁都有一套自己的逻辑,练完这个再去做其他风格会顺手很多。
从技术栈角度看,这个案例几乎覆盖了次世代PBR全流程的每一个关键节点。3ds Max负责中低模的基础搭建和拓扑,Maya在UV拆分和最终整合阶段更顺手,ZBrush承担高模雕刻的全部重活,Substance Painter或者Mari做贴图烘焙与材质绘制,最后进引擎或者渲染器出图。整个链路走一遍,你对PBR的理解会从“知道有这么回事”变成“手上真有感觉”。
我见过太多新手一上来就扎进ZBrush雕人头,雕了两个月还在纠结眼球结构,结果UV不会拆、拓扑不会布、贴图不会烘,整个流程是断的。这个案例的好处在于,它是一个完整的闭环,你从零开始跟着走一遍,每个环节的输入输出关系都清清楚楚。
1.2 次世代PBR流程与传统手绘流程的本质差异
很多从手绘贴图时代过来的朋友,刚接触PBR会有一个思维惯性:把颜色画上去就完事了。这个观念得彻底改。传统手绘流程里,颜色、光影、质感全在一张贴图上,靠画师的笔触去“骗”眼睛。PBR流程则是把材质拆成基础色(Base Color)、金属度(Metallic)、粗糙度(Roughness)、法线(Normal)、高度(Height)、**环境光遮蔽(AO)**这几张图,让渲染器根据物理规律去计算光影。
这意味着什么呢?意味着你在贴图里画的每一笔,都要考虑它在物理世界里对应什么。比如韩立衣服上的刺绣,传统手绘可能直接画个金色花纹就完了,但PBR里你得想:这刺绣是金属线还是丝线?金属度给多少?粗糙度是0.3还是0.6?法线强度要不要单独做一层?这些参数直接决定了最终渲染出来是“塑料感”还是“真实感”。
还有一个关键差异是光照信息的剥离。传统流程里贴图自带光影,换个灯光环境就穿帮。PBR贴图里不能有烘焙死的光影信息(AO除外,AO是允许的),所有明暗关系交给引擎实时计算。这就要求你在雕刻高模的时候,结构必须做足,因为法线贴图只能记录表面细节,大结构的光影是靠模型本身和光照共同作用的。
1.3 全流程各软件的分工逻辑与衔接要点
这套流程里,3ds Max、Maya、ZBrush三个软件各司其职,但衔接处的处理才是真正见功力的地方。
3ds Max主要负责中低模的搭建。为什么不用Maya搭?因为Max的样条线建模和放样功能在处理国风服饰的飘带、腰带这些曲线元素时效率极高。热词里提到的“3dmax放样”就是这个环节的核心操作。Max的修改器堆栈逻辑清晰,做对称、做厚度、做弯曲变形都很直观。
ZBrush接手高模雕刻。中模在Max里搭好基础比例和大致结构后,导入ZBrush进行细节雕刻。这里要注意的是,导入ZBrush之前,模型的布线可以不用太讲究,但比例必须准确。ZBrush里改大比例是很痛苦的事情,DynaMesh虽然能重新布线,但会丢失原有的结构逻辑。
Maya在UV拆分和最终整合阶段出场。Maya的UV编辑器在展开复杂曲面时比Max的Unwrap UVW更灵活,尤其是处理角色面部和手部这些需要精细排布的区域。另外Maya的Retopology工具在需要手动拓扑低模时也很好用。
三个软件之间的文件流转,我习惯用FBX作为中间格式。Max导出FBX到ZBrush,ZBrush导出高模FBX回Max或者Maya做烘焙,这个链路走熟了很顺。注意ZBrush导出的时候要选好细分级别,一般导出最高细分或者次高细分,太低会丢细节,太高文件会大到离谱。
提示:Max和Maya的坐标轴设置要统一,否则模型在两个软件之间来回导的时候会出现位置偏移。我一般统一用Y轴向上,单位设为厘米。
2. 中低模搭建与高模雕刻的核心细节
2.1 3ds Max中低模搭建的实操要点
中低模搭建是整个流程的地基,地基没打好,后面高模雕得再细也是白搭。我的习惯是先在Max里用简单的Box和Cylinder把韩立的大比例定下来,头身比、肩宽、手臂长度这些先对一遍参考图。这个阶段不要急着做细节,先把体块关系理顺。
具体操作上,躯干部分我一般从一个Box开始,用Editable Poly的顶点和边层级去调整。注意保持四边面为主,三角面尽量藏在看不见的地方。衣服的部分用样条线画截面,然后**放样(Loft)**出大形,再转成Editable Poly调整。热词里“3dmax放样”被搜这么多次,说明很多人在这一步卡住。放样的关键是截面线的形状和路径曲线的匹配,截面线要闭合、法线方向要一致,路径曲线的起点和截面线的对齐点要对应好。
配饰部分,比如玉佩、发冠、腰带扣这些硬表面物件,用布尔运算或者ProBoolean先做出大形,然后转Editable Poly手动整理布线。布尔之后必然有乱线,不要偷懒,该手动连的线一定要连上,否则后面平滑的时候会出现奇怪的拉扯。
注意:中模阶段不要急着加TurboSmooth或者MeshSmooth,先把基础布线做干净。我见过太多人中模阶段就加平滑,结果布线一塌糊涂,到ZBrush里DynaMesh一刷全乱了。
中模完成后的检查清单:比例是否准确、对称部分是否用了Symmetry修改器、布线是否以四边面为主、有没有明显的N-gon、法线方向是否统一。这几项都过了再往下一步走。
2.2 ZBrush高模雕刻的层级推进策略
高模雕刻最忌讳的就是一上来就抠细节。我自己的流程是分四层推进:大形层、结构层、细节层、纹理层。
大形层用Move笔刷和ClayBuildup把整体体块关系确认一遍,这个阶段可以大胆用DynaMesh重新布线,不用心疼。结构层开始用Standard和Clay笔刷把肌肉、骨骼、衣服的大褶皱做出来。这里要特别注意国风服饰的褶皱逻辑,和西式服装完全不同。汉服的交领、宽袖、腰带束紧后的放射状褶皱,这些都有固定的走向规律,不是随便捏几道褶子就行的。
细节层开始做刺绣、配饰的纹样、布料的编织纹理。ZBrush的Alpha和Stencil功能在这里非常关键。比如衣服上的云纹刺绣,我一般会先在网上找好参考图,做成Alpha,然后用DragRect模式刷上去。刷的时候要注意透视和走向,不能平铺直叙。
纹理层是最后一步,用Surface Noise或者NoiseMaker给布料加细微的颗粒感,给金属加磨砂质感。这个阶段参数要克制,Noise强度一般不超过0.05,否则渲染出来会显得很脏。
热词里“zbrush character creation: advanced digital sculpting”被搜到,说明很多人对ZBrush角色雕刻的进阶技巧有需求。我的建议是,先把ZBrush的SubTool体系吃透。韩立这个案例里,身体、衣服、配饰、法器应该分成不同的SubTool,每个SubTool的细分级别独立控制。这样修改的时候不会互相干扰,导出的时候也可以按需选择。
2.3 高模到低模的拓扑与UV拆分实战
高模雕完之后,接下来是最考验耐心的一步:拓扑低模和拆UV。
拓扑低模有两种做法:一种是在ZBrush里用ZRemesher自动拓扑,然后手动修;另一种是在Max或者Maya里手动拓扑。我的经验是,角色身体和衣服的大面用ZRemesher先跑一遍,然后手动调整边流。但面部、手部这些需要精确控制布线的地方,必须手动拓扑。面部的布线要沿着肌肉走向,眼轮匝肌、口轮匝肌的环形布线不能乱,否则表情动画会出问题。
UV拆分在Maya里做。先把模型按材质分组:皮肤、布料、金属、皮革、头发。每组单独拆UV,保证UV利用率在70%以上。接缝要藏在看不见的地方,比如手臂内侧、腿部后侧、衣服的褶皱深处。UV的Texel Density要统一,一般角色主体给到1024像素/米,配饰可以适当降低。
提示:拆UV之前先把模型的平滑组或者硬边标记做好,否则烘焙法线的时候会出现奇怪的接缝。Maya里用Soften Edge和Harden Edge来标记,Max里用Smoothing Groups。
UV拆完之后,把低模导出FBX,高模也导出FBX,两个文件一起导入Substance Painter或者Marmoset Toolbag做烘焙。烘焙的时候要注意Cage的设置,Cage要包裹住高模,但不能穿模。如果烘焙出来有黑边或者奇怪的投影,八成是Cage的问题。
2.4 烘焙参数设置与常见问题规避
烘焙是连接高模和低模的桥梁,参数设置直接决定最终效果。以Substance Painter为例,常用的烘焙贴图包括:Normal、AO、Curvature、Position、Thickness、World Space Normal。
Normal贴图烘焙时,Max Ray Distance一般给到模型尺寸的2%到5%,太大了会烘到不该烘的地方,太小了会丢细节。AO的采样数给到128以上,否则噪点会很明显。Curvature贴图对于后续做边缘磨损效果非常关键,烘焙质量直接影响智能材质的生成效果。
常见问题排查表:
| 问题现象 | 可能原因 | 解决方法 |
|---|---|---|
| 法线贴图有黑块 | 高低模匹配不准或Cage穿模 | 调整Cage大小,检查高低模位置 |
| 接缝处有明显痕迹 | UV接缝位置不当或平滑组错误 | 移动UV接缝到隐蔽处,统一平滑组 |
| 烘焙贴图有噪点 | 采样数不足 | 提高采样数到256以上 |
| 法线方向反了 | 高低模法线方向不一致 | 在Max/Maya里统一翻转法线 |
| 贴图模糊 | 贴图分辨率不够或UV利用率低 | 提高贴图尺寸,重新排布UV |
我踩过最大的坑是Cage的设置。有一次做一件带毛领的衣服,Cage没调好,烘焙出来的法线贴图毛领部分全是乱的。后来发现是Cage在毛领的缝隙处穿模了,把高模的背面信息烘到了正面。解决办法是把Cage的Front和Back距离分开调,毛领部分单独给一个更大的Back距离。
3. PBR贴图绘制与材质表现的核心环节
3.1 基础色与材质分区的绘制逻辑
贴图绘制阶段,我习惯先在Substance Painter里用Fill Layer加Mask的方式把大色块铺一遍。皮肤、布料、金属、皮革、头发各一个图层组,每个组里再细分。
基础色(Base Color)的绘制有一个原则:不要画光影,只画颜色。很多人习惯在基础色里把暗部画深、亮部画浅,这是传统手绘的思维。PBR里基础色只记录物体的固有色,明暗交给光照去算。比如韩立的皮肤,基础色就是均匀的肤色,不要画颧骨的阴影或者眼窝的暗部。
材质分区的关键是ID Map。在Max或者Maya里给不同的材质部分分配不同的顶点色或者材质ID,导入Substance Painter后可以直接按ID生成Mask。这个步骤在中模阶段就要规划好,不要等到贴图阶段再回头改。
金属部分的处理要特别注意。金属度(Metallic)贴图里,纯金属给1,非金属给0,不要给中间值。很多人喜欢给0.5,觉得这样“半金属”好看,但物理上不存在半金属。如果要做磨损效果,应该用Mask控制金属层和非金属层的混合,而不是在金属度上给中间值。
3.2 粗糙度与金属度贴图的高级控制技巧
粗糙度(Roughness)是PBR材质里最影响质感的一张图。粗糙度低,表面光滑,反射清晰;粗糙度高,表面粗糙,反射模糊。韩立衣服上的丝绸和麻布,粗糙度差异就很大。丝绸粗糙度给0.2到0.3,麻布给0.7到0.8。
高级控制技巧在于粗糙度的变化。真实的物体表面粗糙度不是均匀的,会有磨损、污渍、指纹等造成的局部变化。我一般会用Curvature贴图配合Levels节点,让边缘部分的粗糙度稍微低一点,模拟磨损后的光滑感。再用Ambient Occlusion贴图让缝隙处的粗糙度稍微高一点,模拟积灰的效果。
金属度贴图的高级用法是配合Position贴图做渐变。比如韩立的法器,从握持部分到尖端,金属度可以从0.8渐变到1.0,模拟不同部位的材质差异。这种细微的变化在最终渲染里会显得非常真实。
提示:Substance Painter里的Anchor Point功能非常实用。可以把一个图层的Mask信息传递到另一个图层,做联动效果。比如衣服的磨损和金属的磨损可以联动,因为磨损通常发生在同一位置。
3.3 法线贴图细节叠加与破损效果制作
法线贴图烘焙出来之后,通常还需要叠加一些额外的细节。比如布料的编织纹理、金属的划痕、皮肤的毛孔。这些细节如果全部靠高模雕刻,面数会爆炸,用法线贴图叠加是更高效的做法。
在Substance Painter里,可以用Normal Map节点把外部法线贴图和烘焙法线贴图混合。混合模式选Normal或者Detail,强度一般给0.3到0.5。注意不要叠加太多层,否则法线会互相干扰,渲染出来会显得很脏。
破损效果的制作是提升真实感的关键。韩立作为一个修仙者,衣服上应该有战斗留下的破损、边缘的磨损、金属件的氧化。我一般用Generator里的Metal Edge Wear和Fabric Wear来生成基础破损,然后手动用笔刷修补。
具体操作:新建一个Fill Layer,添加Metal Edge Wear Generator,调整参数让磨损只出现在边缘和凸起处。然后用笔刷手动擦除一些不自然的区域,再补充一些划痕和破洞。破洞的地方要把基础色改成深色,粗糙度提高,金属度归零。
3.4 渲染输出与引擎导入的注意事项
贴图绘制完成后,导出格式的选择很重要。如果最终是在Unreal Engine或者Unity里渲染,一般导出PNG或者TGA格式,分辨率根据项目需求定,角色主体一般2048x2048或者4096x4096。
导出之前要检查贴图的色彩空间。基础色、法线、粗糙度、金属度、AO这些贴图的色彩空间设置不同。基础色和法线一般用sRGB,粗糙度、金属度、AO用Linear。如果色彩空间搞错了,渲染出来的颜色会偏得很厉害。
导入引擎后,材质的连接也有讲究。Unreal Engine里,基础色连Base Color,金属度连Metallic,粗糙度连Roughness,法线连Normal。AO贴图一般连到AO节点或者直接乘到基础色上。注意法线贴图的Flip Green Channel选项,不同引擎对法线绿通道的方向定义不同,搞反了法线会凹凸颠倒。
注意:如果贴图在引擎里显示得很平,没有立体感,八成是法线贴图的色彩空间设置错了。检查一下是不是被当成了sRGB,应该改成Linear。
4. 常见问题排查与效率提升技巧实录
4.1 软件操作层面的高频问题与解决
3ds Max贴图丢失怎么重新导入,这是热词里被搜到的问题,我来说一下我的处理流程。贴图丢失一般是因为贴图路径变了或者文件移动了。最快的解决办法是用Resource Collector(资源收集器),在Utilities面板里找到More,然后选Resource Collector,把Output Path设到一个新文件夹,勾选Collect Bitmaps,点Begin。这样Max会把所有用到的贴图复制到新文件夹,路径自动更新。
如果只是个别贴图丢失,可以在Material Editor里找到对应的材质球,在Bitmap参数里点Reload,手动指到新路径。或者用Bitmap/Photometric Paths工具批量修改路径。
Maya的默认相机怎么删,这个问题看似简单,但Maya的默认相机(persp、top、front、side)是删不掉的,只能隐藏。在Outliner里选中相机,按Ctrl+H隐藏。如果非要“删除”,可以新建一个相机,把视图切换到新相机,然后把默认相机隐藏。但我不建议这么做,默认相机留着做参考很方便。
3dmax名称列表小图标的含义,这个问题问的人也不少。Max的Scene Explorer里,名称旁边的小图标表示对象的类型和状态。比如三角形图标是Editable Poly,圆形是Editable Mesh,小锁是锁定状态,小眼睛是隐藏状态。把鼠标悬停在图标上会有提示,多试几次就记住了。
3dmax常用脚本代码,我分享几个我常用的。一个是批量重命名脚本,一个是批量塌陷修改器脚本,还有一个是快速对齐脚本。这些脚本在Scripting菜单里新建脚本,粘贴进去运行就行。网上有很多现成的,但建议自己改一改,符合自己的操作习惯。
4.2 流程衔接中的典型故障排除
高低模匹配不准是最常见的问题。表现是烘焙出来的法线贴图有奇怪的凸起或者凹陷。排查步骤:先把高低模同时显示,检查位置是否完全重合;然后检查Cage是否包裹住了高模的所有细节;最后检查高低模的法线方向是否一致。
UV接缝处有黑边,一般是UV接缝位置不当或者平滑组设置错误。解决办法是把UV接缝移到隐蔽处,比如衣服的内侧、手臂的后侧。如果接缝必须留在可见处,可以在接缝两侧留出足够的UV空间,让贴图有过渡的余地。
ZBrush导出高模后细节丢失,检查导出时的细分级别。ZBrush默认导出当前细分级别,如果当前是低级别,导出的就是低模。导出前先把细分级别调到最高或者次高。
Substance Painter里材质显示不正常,检查烘焙贴图是否完整,特别是Normal和AO。如果Normal贴图有问题,所有智能材质都会出错。另外检查项目的色彩空间设置,和引擎保持一致。
4.3 提升制作效率的实用技巧与工具推荐
快捷键自定义。Max、Maya、ZBrush、Substance Painter都支持自定义快捷键。我习惯把常用的操作映射到左手能按到的键位上,右手始终不离鼠标。比如ZBrush里我把Move笔刷设成Shift+1,ClayBuildup设成Shift+2,Standard设成Shift+3,切换笔刷不用看键盘。
参考图管理。做角色的时候参考图非常重要。我一般用PureRef这个工具,可以把所有参考图拖进去,置顶显示,缩放旋转都很方便。做韩立这个案例的时候,我找了原作动画的截图、其他手办的实物照片、国风服饰的细节图,全部放在PureRef里,随时对照。
材质库积累。Substance Painter的智能材质和智能遮罩是可以导出的。我把自己调好的皮肤、布料、金属材质都导出成预设,下次做类似项目直接拖进来用,省去大量重复劳动。
渲染测试。不要等到全部做完再渲染,每个阶段都渲染一张低质量的图看看效果。我一般在Marmoset Toolbag里快速渲染,灯光用默认的HDRI,几秒钟就能出图。这样能及时发现比例、材质、法线的问题,避免做到最后才发现要返工。
提示:Marmoset Toolbag的Ray Tracing功能可以快速预览光线追踪效果,对PBR材质的检查非常有帮助。但注意开启后渲染速度会变慢,测试阶段可以关掉。
4.4 从练习到商用的进阶建议
做完这个案例之后,如果你想往商用方向走,有几个地方需要额外注意。
面数控制。练习的时候面数可以放宽,但商用项目对面数有严格限制。手游角色一般控制在15000到30000三角面,端游可以到50000到80000。拓扑的时候就要有意识控制面数,不要等到最后再减面。
贴图尺寸。商用项目的贴图尺寸要根据目标平台定。手游一般1024x1024或者2048x2048,端游可以到4096x4096。贴图尺寸越大,显存占用越高,要在质量和性能之间找平衡。
LOD制作。商用项目通常需要多个LOD级别。LOD0是最高精度,LOD1、LOD2逐级减面。减面的时候要注意保持轮廓和主要结构,不要减得面目全非。
引擎适配。不同引擎对材质节点的支持不同。Unreal Engine的材质编辑器功能强大,可以做很复杂的节点连接。Unity的Shader Graph相对简单一些。导出贴图之前要确认目标引擎的材质规范。
我个人在实际操作中的体会是,次世代PBR流程最难的不是某个软件的操作,而是流程思维。你要清楚每一步的输入是什么、输出是什么、下一步需要什么。中模阶段就要考虑高模怎么雕,高模阶段就要考虑低模怎么拓,低模阶段就要考虑UV怎么拆,UV阶段就要考虑贴图怎么画。这种全局视角,比单纯会用一个软件重要得多。
最后再分享一个小技巧:做角色的时候,每隔一段时间就把模型水平翻转看一下。因为人眼长时间盯着一个方向看会产生视觉疲劳,翻转之后能发现很多之前没注意到的不对称问题。这个习惯我保持了快十年,帮我省下了无数次返工的时间。