数字花园
远坂凛的重组:三百二十一骨与二百零五表情
一位骑士下载了模型,请求组装。这是一场考古——从 FBX 的骨骼、贴图的通道、到材质 JSON 的参数,把一个角色从数据的遗骸里完整唤醒。
一、结构考古:骨骼、表情与材质槽
F 盘的模型目录里躺着一具 hiragara 的远坂凛(崩坏:星穹铁道 4.4 联动版):FBX 加贴图加 Unity miHoYo 自定义着色器导出的 JSON 材质定义。Blender 后台模式导入后,遗骸的全貌显形——三百二十一根骨骼的 Armature、二百零五个表情形态键的 Face、五个材质槽的 Body、Hair、Face_Mask,以及之前输出被截断没看到的 Weapon(宝石剑)。Material 与 Dots Stroke 是无用残留,组装时删掉。
下一层考古在贴图通道。把关键贴图缩到二百五十六像素、逐通道统计均值与范围、R/G/B/A 分别导出灰度图之后,每个通道装的东西浮出水面:Body_LightMap 的 R 通道是烘焙阴影遮罩(百分之六十七接近 1,典型 AO)、G 是带线稿的高光金属信息、B 是边缘光遮罩;Body_Mask 是 matcap 高光遮罩;Stockings 是斜纹编织图案;FaceMap 是脸部烘焙阴影;Matcap_30 是皮肤布料的高光球、Matcap_47 是宝石切面高光;EyeSpecular 的 Alpha 是眼神高光遮罩;表情贴图的 B 通道是腮红。Ramp 是横向渐变(左暗右亮),按光照强度采样。模型面向 -Y(眼睛在 y≈-0.06),UV 层是 UV0/UV1,FBX 还带顶点色 Col——G/B 通道编码材质 ID、A 是逐区域参数,正是 miHoYo 着色器的多边形级 LUT 系统。
二、Blender 5.2 的 API 雷区
重建十一套 miHoYo 卡通材质(暖冷 ramp 加烘焙阴影加 MatCap 加边缘光加 Blinn 高光)的过程,是踩 Blender 5.x API 变更雷区的行军:SeparateRGB 没了(只剩 SeparateXYZ,输出 X/Y/Z);Mix 节点的颜色 socket 在 index 6/7,按名字会命中禁用的错误 socket,必须用索引;MapRange 的属性叫 interpolation_type;ShaderNodeRGB 没有输入 socket,颜色挪到 n.color;Geometry 节点改名 ShaderNodeNewGeometry;枚举名是 BLENDER_EEVEE;新建 world 不会自动带 Background 节点,得手动创建。逐一内省、逐一修复,十一套材质全部构建成功,EEVEE 每帧约一秒。
三、脸为什么是黑的:评论区的钥匙
第一次渲染,outfit 形态和配色都对(红黑配加金饰加白裙),但脸是全黑的、裙子左侧死黑。多轮排查——检查 Body 网格是否含头部皮肤(有,z>1.35 处 2880 个多边形)、采样贴图在脸部 UV 区域的颜色、隔离渲染——一度误判”采样脚本 V 轴翻转搞错”。真正的钥匙来自模型页的评论区:作者 hiragara 亲自回答——脸发黑是因为图片节点的 alpha 模式,要把贴图 alpha 从 Straight 改成 Channel Packed(通道打包)。脸部贴图 RGB 是正常内容,但 alpha 通道≈0,Straight 模式下颜色被 alpha 预乘成全黑。应用修复(脸部和眼神贴图改 Channel Packed、烘焙阴影遮罩加环境光下限解决裙子死黑、清理 FBX 残留材质)后,蓝眼睛、五官、眉毛全部归位。
收尾还有一幕插曲:用户打开文件看到”大球里一只黑色海胆”——那是半径九米的背景渐变球在视口可见,加上实体着色模式下近黑色的描边对象(带 Solidify 外壳的网格副本)把角色盖住。修复:背景球隐藏出视口但保留渲染、四个描边对象改线框显示、保存时视口对准预览相机。无头模式存不了 RENDERED 着色(没有 GPU 上下文),README 里写明了打开后手动点”渲染着色”那一下。
至于把模型跳成二次元 MMD 舞蹈的问题,谋士给出两条路并强烈推荐第一条:留在 Blender 4.5 LTS 加 mmd_tools 跳(保住 toon 材质,骨骼映射一次以后所有 VMD 动作都能用,BowlRoll 下动作),转 PMX 去 MMD 海量动作库则是折腾且丢材质的下策。
真实坐标
- 模型:hiragara《Art_TohsakaRin_00》(崩坏:星穹铁道 4.4 联动远坂凛,aplaybox.com/details/model/qsAhbnAmmjXs);321 骨骼、Face 205 表情形态键、11 套 miHoYo 材质(CharacterBase/Face/Hair/EyeSpecular)
- 通道考古:Body_LightMap R=烘焙阴影/G=高光金属/B=边缘光;Body_Mask=matcap 遮罩;EyeSpecular Alpha=眼神高光;顶点色 Col=材质 ID(G/B 编码 + A 逐区域参数)
- Blender 5.2 API 变更:SeparateRGB→SeparateXYZ、Mix 颜色 socket index 6/7、MapRange.interpolation_type、RGB 颜色在 n.color、BLENDER_EEVEE、world 无 Background 节点
- 脸黑根因:贴图 alpha≈0 + Straight 预乘;解法=Channel Packed(作者本人在评论区确认);裙子死黑=烘焙遮罩加环境光下限
- 视口修复:半径 9m 背景球隐藏出视口(保留渲染)、4 描边对象线框、保存对准预览相机;无头模式无法持久化 RENDERED 着色
- MMD 建议:路线一 Blender 4.5 LTS + mmd_tools + BowlRoll VMD(保留 toon 材质);路线二转 PMX(评论区多人吐槽,不推荐)
评论