尧图精选

Blender二次元角色纹理教程:从零复刻原神风格化渲染

🕒 发布时间:2026/10/1 1:23:14 📁 来源:尧图网络
1. 从零理解二次元角色纹理的底层逻辑1.1 为什么《原神》风格的质感这么难复刻很多人第一次尝试在 Blender 里给角色上材质都会经历一个相似的挫败模型建得还行一贴图就“垮”了。要么颜色发灰、要么高光死板、要么整体看起来像塑料玩具跟《原神》里那种通透、干净、带一点手绘感的皮肤和布料完全不是一回事。问题出在哪我踩过几次坑之后才想明白《原神》的质感不是靠“真实物理”堆出来的而是靠一套高度风格化的渲染逻辑。它的核心特征可以拆成三层来理解。第一层是色块分明。你去看原神角色的立绘和实机模型皮肤、头发、衣服的明暗交界非常干脆几乎没有写实渲染里那种大面积的柔和渐变。阴影是一块颜色亮部是另一块颜色中间过渡很窄。这种处理方式其实更接近传统二维动画的“赛璐璐”上色而不是物理正确的光照。第二层是边缘光与轮廓强调。角色在场景里之所以“跳”得出来是因为边缘有一圈偏冷或偏暖的亮边把角色从背景里剥离出来。这个边缘光不是简单的 Fresnel 叠加它往往带有颜色倾向并且会根据光照方向变化。第三层是材质的手绘感。皮肤不是纯色头发有渐变的色带布料有轻微的纹理暗示但这些细节都被控制在一个很克制的范围内不会喧宾夺主。整体观感是“干净”而不是“复杂”。理解了这三点你就知道为什么直接套用 Principled BSDF 加一张 PBR 贴图会失败——那套流程是为写实服务的而我们要做的是风格化。这也是为什么这个教程值得单独拿出来讲它需要的不是更贵的插件而是对渲染逻辑的重新理解。1.2 在 Blender 里复刻这套逻辑需要哪些准备在动手之前先把工具链理清楚。我实测下来做二次元角色纹理Blender 自带的节点系统完全够用不需要额外买什么付费插件。但有几个基础设置必须提前做好否则后面会反复返工。首先是色彩管理。Blender 默认的视图变换是 Filmic 或 AgX这两个对风格化角色其实不太友好会把颜色压得很灰。做二次元质感建议把视图变换切成Standard这样颜色更接近你贴图里画的那个色值。具体位置在渲染属性面板的 Color Management 里View Transform 选 StandardLook 选 None。这一步不做你后面调半天颜色都是白费。其次是渲染引擎的选择。EEVEE 和 Cycles 都能做但思路不同。EEVEE 速度快适合实时预览和迭代而且它的 Shader to RGB 节点是做卡通渲染的利器。Cycles 更准但对风格化来说反而要额外压制物理感。我的建议是主力用 EEVEE 调效果最终出图如果追求极致可以用 Cycles 配合专门的卡通着色节点。这个教程以 EEVEE 为主因为它对新手更友好迭代成本低。第三是贴图绘制工具。你可以直接在 Blender 的 Texture Paint 模式里画也可以用外部软件画好再导入。如果追求效率Substance Painter 或者 Krita 都行。但我要提醒一句二次元贴图不需要画得很细很多时候大面积色块加少量手绘笔触就够了画太细反而会破坏干净感。最后是参考图的准备。强烈建议找几张原神角色的官方立绘和游戏内截图放在旁边对照。注意看他们的皮肤阴影是什么颜色、头发的高光带在哪、衣服的褶皱怎么处理。这些观察会直接决定你调参数的方​​向。1.3 核心节点思路把“光照”变成“色块”传统 PBR 流程里光照是引擎算的你只负责给材质参数。但风格化渲染里你要主动干预光照结果把它“压”成色块。在 Blender 里实现这个目标核心靠两个东西Shader to RGB 节点和ColorRamp 节点。Shader to RGB 的作用是把光照计算的结果转成颜色数据这样你就能用 ColorRamp 对它做阶梯化处理。举个例子原本光照从暗到亮是平滑过渡的经过 ColorRamp 设置几个硬阶梯之后就变成了“暗部一块、中间一块、亮部一块”的赛璐璐效果。这就是二次元质感的底层机制。具体节点连接逻辑是这样的Diffuse BSDF 或 Emission 接 Shader to RGB然后 Shader to RGB 的输出接 ColorRampColorRamp 再接到最终输出。ColorRamp 里设置 2 到 3 个色标把插值方式改成 Constant就能得到硬边阴影。但这里有个坑Shader to RGB 只在 EEVEE 里有效Cycles 不支持。所以如果你打算用 Cycles就得换一套思路比如用 Light Path 节点配合数学运算来模拟。这也是我建议新手先用 EEVEE 的原因之一。理解了这套机制后面的所有操作都是在这个基础上做加法加边缘光、加高光带、加材质区分。你会发现一旦光照被“色块化”了整个角色的观感立刻就对了。2. 皮肤、头发、布料的分层处理实操2.1 皮肤材质通透感来自阴影颜色而不是高光很多人做皮肤第一反应是加高光、加次表面散射结果做出来油光满面。原神风格的皮肤恰恰相反它的通透感主要来自阴影部分的颜色选择而不是高光强度。具体怎么做先建一个基础的 Diffuse BSDFBase Color 用你画好的皮肤贴图。然后接 Shader to RGB再进 ColorRamp。ColorRamp 里我一般设三个色标暗部用一个偏紫或偏红的肤色中间用基础肤色亮部稍微提亮一点点。注意暗部不要用黑色或灰色那样会脏。用带色相的暗色皮肤才会有“血肉感”。阴影的硬度也有讲究。ColorRamp 的插值方式选 Constant 会得到非常硬的边选 Linear 会柔和一些。我实测下来皮肤用稍微柔一点的过渡更自然可以把 ColorRamp 的第一个色标位置调得靠中间一些让暗部区域小一点。头发和衣服可以更硬。还有一个细节脸颊和鼻尖可以单独加一点暖色。做法是在贴图里就把这部分画暖或者在节点里用 ColorRamp 的亮部色标偏暖。这样角色看起来会更有生气。注意不要给皮肤加太强的 Specular。原神角色的皮肤高光非常克制基本只在鼻尖、嘴唇、眼睑有一点点。Specular 值控制在 0.1 到 0.2 就够了Roughness 可以给 0.5 左右。2.2 头发材质渐变带与高光带的画法头发是二次元角色最出效果的部分也是最容易做砸的部分。原神的头发有几个明显特征根部深、发梢浅的渐变一条弧形的高光带以及发丝边缘的透光感。渐变处理我建议直接画在贴图里。在 Blender 的 Texture Paint 模式里用渐变工具从发根到发梢拉一个从深到浅的过渡。注意这个渐变不是线性的发根到中段变化快中段到发梢变化慢。画的时候可以多用几个中间色让过渡更自然。高光带是头发的灵魂。它的位置通常在头顶偏前一点呈一个弧形。做法有两种一种是在贴图里直接画一条亮色带另一种是用节点根据法线方向生成。我推荐第一种因为更可控。画的时候注意高光带不是纯白而是比发色亮两三个色阶的同色系颜色。比如深蓝色头发的高光带可以用浅蓝偏白。透光感可以用Translucent BSDF或者Emission混合来实现。在发梢部分混入一点 Translucent让光能透过去头发就不会像塑料片。但量要少多了会显得头发在发光。节点层面头发我一般会用两层一层是基础的 Diffuse 加 Shader to RGB 做色块另一层是单独的高光带用 Emission 叠加。两层之间用 Mix Shader 按贴图的遮罩混合。这样高光带的位置和强度都能精确控制。2.3 布料与配饰区分金属、皮革和普通织物角色身上不会只有皮肤和头发衣服、腰带、金属扣这些材质要分开处理否则整体会显得平。普通织物最简单基本就是 Diffuse 加 Shader to RGBColorRamp 可以设得硬一点让褶皱的明暗更分明。贴图里可以加一点轻微的纹理但不要太多二次元的布料通常是“看起来有质感但实际很干净”。金属要单独处理。原神里的金属不是写实金属它更像“有金属颜色的色块”。做法是用 Diffuse 给一个金属色然后在 ColorRamp 的亮部加一个很亮的色标暗部加一个很暗的色标对比拉大。不需要用 Metallic 参数因为那套是给写实渲染的。高光可以用 Emission 单独叠一条位置在金属件的边缘。皮革介于两者之间。颜色偏深高光比织物强但比金属弱。可以在 ColorRamp 里把中间调压暗一点让皮革看起来更厚重。这里有个实用技巧用一张遮罩贴图来控制不同材质的区域。比如在衣服贴图的 Alpha 通道里用不同灰度标记金属、皮革、织物的位置然后在节点里用 Separate RGB 或者 Math 节点把遮罩提取出来分别控制不同区域的 ColorRamp 参数。这样你只需要维护一张贴图就能管理整套服装的材质。2.4 边缘光的三种实现方案对比边缘光是让角色“跳出来”的关键。我试过至少三种做法各有优劣这里做个对比。方案实现方式优点缺点适用场景Fresnel 节点用 Fresnel 或 Layer Weight 的 Facing 输出接 ColorRamp 控制范围再乘一个颜色加到 Emission节点简单实时预览快边缘光均匀缺乏方向感快速预览、远景角色法线与光照方向点乘用 Geometry 的 Normal 和光照方向做点乘取反后控制边缘光强度边缘光会随光照方向变化更自然节点复杂需要手动指定光照方向需要方向性边缘光的场景背面剔除加实体化复制模型翻转法线用 Backface Culling 加 Emission边缘光非常干净可控性强需要额外模型修改麻烦最终出图、特写镜头我平时工作流里预览阶段用 Fresnel最终出图用第三种。第三种虽然麻烦但效果最接近原神那种干净的轮廓光。具体操作是复制角色模型稍微放大一点点比如 1.01 倍翻转法线材质改成纯 Emission 加一个你想要的边缘光颜色然后在材质设置里勾选 Backface Culling。这样从正面看只有模型边缘露出的那圈背面会发光形成完美的轮廓光。提示边缘光的颜色不要用纯白。冷色角色用偏青的边缘光暖色角色用偏橙的边缘光会让角色更融入环境。3. 完整实操流程从一个裸模到成品角色3.1 模型检查与 UV 展开的注意事项拿到一个模型之后别急着上材质。先做三件事检查法线方向、检查 UV、检查模型是否有重叠面。法线方向不对Shader to RGB 出来的结果会完全乱掉。在 Blender 里按ShiftN重新计算外法线然后在叠加层里打开“面朝向”显示确认所有面都是蓝色朝外。如果有红色面说明法线反了需要翻转。UV 展开对风格化角色来说不需要像写实那样追求零拉伸但需要保证几个关键区域有足够的空间脸部、头发正面、衣服的主要可见面。我一般会把脸部 UV 单独放大占整张 UV 图的四分之一左右因为脸部细节最多。头发和身体的 UV 可以适当缩小。还有一个容易忽略的点UV 接缝的位置。接缝尽量放在不显眼的地方比如头发内侧、衣服的侧面或背面。如果接缝在正面贴图绘制时很难对齐渲染出来会有一条明显的缝。检查重叠面也很重要。有些模型是从其他格式转换过来的可能会有重合的面导致渲染时出现闪烁或阴影错误。在编辑模式里用Merge by Distance合并一下重复顶点能解决大部分问题。3.2 贴图绘制从底色到阴影再到高光贴图绘制我习惯分四步走每一步只做一件事这样思路清晰也方便后期修改。第一步铺底色。把皮肤、头发、衣服、金属的基础色分别铺好。这一步不用考虑阴影和高光只要颜色对就行。注意底色要比你最终想要的颜色稍微亮一点因为后面加阴影会压暗整体。第二步画阴影。根据角色的光照设定在暗部区域画上阴影色。二次元的阴影是“画”出来的不是算出来的所以你要主动决定哪里是暗部。一般来说下巴下方、头发遮挡的额头、衣服褶皱的内侧、手臂内侧都是暗部。阴影色用底色偏冷或偏紫的颜色不要用黑。第三步画高光。头发的高光带、皮肤鼻尖和嘴唇的高光、金属件的边缘高光都在这一步画。高光色用底色偏暖或偏白的颜色。注意高光不要画太大二次元的高光通常是细长的一条或一个小点。第四步加细节。比如衣服的缝线、金属的划痕、头发的发丝走向。这些细节要克制画多了会破坏干净感。我一般只在特写镜头会看到的地方加细节。画完之后把贴图导出成 PNG在 Blender 里连接到对应的材质节点。注意贴图的色彩空间要设成sRGB如果是法线贴图或者粗糙度贴图则设成 Non-Color。3.3 节点搭建一步步连接出卡通渲染效果现在到了核心环节。我以皮肤材质为例把节点连接过程拆开讲。首先新建一个材质删掉默认的 Principled BSDF。添加一个Diffuse BSDF把皮肤贴图连到它的 Color 输入。然后添加Shader to RGB节点把 Diffuse BSDF 的输出连到 Shader to RGB 的输入。这时候如果你预览会发现模型变成了平光因为 Shader to RGB 把光照结果转成了颜色数据。接下来添加ColorRamp节点把 Shader to RGB 的输出连到 ColorRamp 的 Fac 输入。ColorRamp 里设置三个色标位置 0.0 是暗部色位置 0.5 是中间色位置 1.0 是亮部色。插值方式选 Linear 或 Constant看你要多硬的边。然后把 ColorRamp 的输出连到Material Output的 Surface 输入。这时候你应该能看到模型有了基本的色块化效果。如果觉得阴影太硬可以把 ColorRamp 的第一个色标往左移一点让暗部区域变小。如果觉得整体太暗可以把中间色标往右移。接下来加边缘光。添加一个Layer Weight节点用 Facing 输出。接一个 ColorRamp把边缘光范围控制在 0.7 到 1.0 之间。然后把这个 ColorRamp 的输出乘以一个边缘光颜色再连到一个Emission节点。最后用Add Shader把 Emission 和之前的 ColorRamp 输出加起来。头发材质在此基础上多一层高光带。复制一套上面的节点把 ColorRamp 的色标换成高光带的颜色和位置然后用 Mix Shader 按高光遮罩混合。高光遮罩可以直接用贴图的某个通道或者在节点里用数学运算生成。3.4 灯光布置三灯法与风格化渲染的配合风格化渲染对灯光的要求和写实不一样。写实渲染里灯光要模拟真实环境风格化渲染里灯光只需要提供方向性和基本的明暗关系。我一般用三灯法主光、补光、轮廓光。主光从角色前上方打下来强度最高决定主要的阴影方向。补光从侧面或下方打强度低用来提亮暗部避免死黑。轮廓光从背后打用来强化边缘。但这里有个关键点风格化渲染里灯光的颜色比强度更重要。主光可以用稍微偏暖的白补光用偏冷的蓝轮廓光用角色边缘光的同色系。这样打出来的光会更有层次。另外EEVEE 里记得打开Soft Shadows和Ambient Occlusion但强度不要太高。AO 太强会让暗部变脏风格化角色需要的是干净的暗部。如果觉得阴影还是太散可以在灯光设置里把Shadow 的 Softness 调低让阴影边缘更硬。这跟写实渲染的追求正好相反但风格化就需要这种硬边阴影。4. 常见问题排查与效率提升技巧4.1 颜色发灰、阴影发脏的排查思路这是新手最常遇到的问题。模型一渲染颜色比贴图里灰了好几个度阴影部分还发脏。原因通常有三个。第一个原因是色彩管理没设对。前面说过View Transform 要改成 Standard。如果你用的是 Filmic 或 AgX颜色会被压暗压灰。改完之后如果还是灰检查贴图的色彩空间是不是设成了 sRGB。有些从外部导入的贴图默认是 Non-Color颜色会不对。第二个原因是 ColorRamp 的暗部色标选错了。很多人习惯用黑色或深灰色做暗部结果阴影就脏了。正确的做法是用带色相的暗色比如皮肤的暗部用偏紫的深肤色头发的暗部用偏蓝的深发色。这样阴影会有颜色倾向看起来干净。第三个原因是灯光太散。如果场景里灯光太多太杂阴影会互相抵消整体就灰了。试着关掉一些灯只留主光和补光看看效果。风格化渲染不需要复杂的灯光环境。排查的时候可以按这个顺序来先看色彩管理再看 ColorRamp最后看灯光。大部分问题在前两步就能解决。4.2 边缘光不自然、高光位置不对怎么调边缘光不自然通常是因为 Fresnel 的范围没控制好。Layer Weight 的 Facing 输出默认范围是 0 到 1但边缘光只需要最边缘的那一小圈。所以 ColorRamp 的第一个色标要设在 0.7 以上第二个色标设在 0.9 左右。这样只有最边缘的部分会发光。如果边缘光太强把 Emission 的强度调低或者把边缘光颜色调暗一点。边缘光是“点缀”不是“主菜”强度控制在整体亮度的 20% 到 30% 就够了。高光位置不对一般是贴图里画的位置和模型的实际光照不匹配。解决办法是在 Blender 里打开材质预览一边转视角一边看高光带的位置。如果高光带在某个角度下跑到不该在的地方就回贴图里调整位置。这个过程需要反复几次但调好之后就很稳。还有一个技巧用驱动或者空物体来控制高光带的位置。在节点里用 Texture Coordinate 的 Object 输出连接到一个空物体然后移动空物体就能实时调整高光带的位置。这样不用反复改贴图效率高很多。4.3 渲染速度优化EEVEE 设置与贴图分辨率取舍EEVEE 虽然快但设置不对也会卡。我一般会做这几个优化。贴图分辨率角色贴图不需要 4K2K 足够甚至 1K 在某些场景下也够用。分辨率越高显存占用越大预览越卡。我通常把脸部贴图设成 2K身体和头发设成 1K金属和配饰设成 512。这样在保证质量的同时显存占用能降一半以上。阴影设置EEVEE 的阴影质量可以在渲染属性里调。把 Shadow 的 Cube Size 调小Cascade Size 调低能明显提升速度。如果角色是特写阴影范围不需要太大调小反而更清晰。屏幕空间反射如果角色材质不需要反射直接关掉。风格化角色基本用不到 SSR开着只是浪费性能。简化材质节点节点越复杂编译越慢。如果某些材质在最终镜头里看不到可以临时禁用。比如角色背面的材质在正面特写时可以直接关掉。我实测下来一个中等复杂度的角色用 2K 贴图加 EEVEE在普通游戏本上预览能跑到 30 帧以上完全够用。如果卡优先降贴图分辨率效果最明显。4.4 常见问题速查表问题现象可能原因排查步骤解决方法颜色发灰色彩管理错误检查 View Transform 是否为 Standard改为 Standard检查贴图色彩空间阴影发脏暗部色标用了黑灰查看 ColorRamp 暗部色标换成带色相的暗色边缘光太强Emission 强度过高检查边缘光节点的强度值降低强度或调暗颜色高光位置不对贴图与光照不匹配转动视角观察高光带调整贴图或加空物体控制渲染卡顿贴图分辨率过高查看贴图尺寸和显存占用降低分辨率关闭不必要的效果模型有黑面法线方向错误打开面朝向显示ShiftN 重算法线UV 接缝明显接缝位置在正面检查 UV 布局把接缝移到不显眼位置Shader to RGB 无效用了 Cycles 引擎检查渲染引擎切换到 EEVEE4.5 我踩过的三个坑和对应的解决方案第一个坑是过度依赖 Principled BSDF。刚开始做的时候我总想着用 Principled 调参数结果怎么调都不对。后来才明白风格化渲染要的是“控制光照结果”而不是“设置材质参数”。把 Principled 换成 Diffuse 加 Shader to RGB问题立刻解决。这个思路转变是最关键的。第二个坑是贴图画得太细。我一开始把皮肤画了很多毛孔和纹理结果渲染出来反而显得脏。二次元角色的皮肤是“干净”的不需要那么多细节。后来我把贴图简化成大面积色块加少量笔触效果反而更好。记住风格化渲染里少即是多。第三个坑是灯光打得太复杂。我试过用五盏灯模拟环境光结果阴影全乱了。后来简化成三灯甚至两灯效果反而更干净。风格化渲染的灯光只需要提供方向性不需要模拟真实环境。灯越少控制越容易。4.6 后续扩展从单角色到整套角色的批量处理当你做好一个角色之后很自然会想把这套流程复用到其他角色上。这时候可以做一些工程化的优化。建立材质模板把调好的皮肤、头发、布料材质保存成资产下次直接拖进来用。Blender 的 Asset Browser 就是干这个的。你只需要把材质标记为资产下次在新项目里就能直接调用。参数化节点组把 ColorRamp 的色标位置、边缘光强度这些常用参数暴露成节点组的输入这样换角色的时候只需要改几个数值不用重新连节点。具体做法是选中相关节点按CtrlG打成组然后在组输入里添加你需要的参数。批量贴图处理如果角色很多可以用 Python 脚本批量处理贴图。比如批量调整分辨率、批量转换色彩空间、批量重命名。Blender 的 Python API 很完善写个几十行的脚本就能省下大量重复劳动。版本管理角色纹理经常要改很多版建议用文件夹按版本号管理比如character_v01、character_v02。每次大改之前备份一下避免改崩了回不去。我一般会在文件名里加上日期和修改内容比如skin_20240115_warmer_shadow.png这样一看就知道改了什么。这套流程我用了大半年从最初一个角色要做两三天到现在半天就能出一个能看的版本。核心不是手速变快了而是思路清晰了知道每一步在做什么、为什么这么做、出问题去哪里找。希望这些经验能帮你少走一些弯路。
上一篇/下一篇内容由系统自动关联 返回资讯列表 →