检查 BlendShape 的法线
自Unity 2018以来,当将fbx导入Unity时,会自动重新计算BlendShape的法线,并将原始的法线替换为重新计算的法线,导致模型表面出现意外的变化。
详细信息
如果BlendShape的法线为(0, 0, 0),则表面的法线将不会发生变化。但看起来重新计算的法线取代了原来的BlendShape法线,导致模型出现了意外的变化。当基础网格的法线被改变时,在镜像之后左右分界处等位置会更明显。
您可以使用 MToon 的法线调试显示来检查法线。
您可以执行 fbx 文件中 Materials
标签下的 Extract Materials...
操作,以提取材质。
将FBX文件拖动到 Hierarchy(层级) 窗口并选中它。
在 Inspector(检查器) 中,点击Select(选择)
->Materials(材质)
->Extract Materials(提取材质)
,然后选择一个文件夹来保存这些材质。
接下来,选择所有材质
将 Shader 更改为 VRM/MToon
。(前面的章节有详细提到这些操作)
确认法线
因为只是为了确认法线而暂时 MToon 化,所以不需要纹理等的设定。
在 MToon 的 Options(选项)
中,选择 Debugging Options
,然后将 Visualize
设置为 Normal
。
回到 SkinnedMeshRenderer 。
拖动 BlendShape 滑块,检查法线。
示例中,鼻尖 和 下唇 的法线出现了明显的错误。
译者补充:
此处示例模型不是之前使用的艾莉西亚的模型,因为艾莉西亚的模型各方面都比较正常,这里为了演示错误情况另外使用了其他模型,如果你用艾莉西亚的模型测试这些操作可能不够直观,本人用艾莉西亚的模型测试的时候,只在眼部周围和耳朵上发现了法线的变化。
模型信息
这个模型是
- 将 Vroid 的 VRM 导入到 Blender
- 再从 Blender 导出为 FBX
- 最后将 FBX 导入到 Unity
得到的结果
修复 BlenderShape 的法线
用上述方法发现 BlendShape 有问题时,修复的方法。
选择 fbx 的 Model
标签。
检查并应用 Legacy Blend Shape Normal
。
确保 BlendShape 是正确的。
与修正前的区别
除了鼻尖和下唇外,舌头的法线也变得完全不同。
No Comments