
自Unity 2018以来,当将fbx导入Unity时,会自动重新计算BlendShape的法线,并将原始的法线替换为重新计算的法线,导致模型表面出现意外的变化。
详细信息 如果BlendShape的法线为(0, 0, 0),则表面的法线将不会发生变化。但看起来重新计算的法线取代了原来的BlendShape法线,导致模型出现了意外的变化。当基础网格的法线被改变时,在镜像之后左右分界处等位置会更明显。
您可以执行 fbx 文件中 Materials 标签下的 "Extract Materials..." 操作,以提取材质。
将FBX文件拖动到Hierarchy(层级)窗口并选中它。在Inspector(检查器)中,点击Select(选择)-> Materials(材料)-> Extract Materials(提取材料),然后选择一个文件夹来保存这些材料。
接下来,选择所有材质
将 Shader 更改为 VRM/MToon。(前面的章节有详细提到这些操作)
确认法线
因为只是为了确认法线而暂时MToon化,所以不需要纹理等的设定。
在MToon的选项中,选择Debugging Options,然后将Visualize设置为Normal。

回到 SkinnedMeshRenderer 。
拖动 BlendShape 滑块,检查法线。

示例中,鼻尖和嘴巴的法线出现了明显的错误。
UP补充:这里这个模型不是之前使用的艾莉西亚的模型,我用艾莉西亚的模型测试的时候,只在眼周和耳朵发现了法线的变化。
模型信息 这个模型是将 Vroid 的 VRM 导入到 Blender 从 Blender 导出 FBX 最后导入到 Unity 得到的结果
用上述方法发现 BlendShape 有问题时,修复的方法。
选择 fbx 的 Model 标签。
检查并应用 Legacy Blend Shape Normal。

确保 BlendShape 是正确的。
与之前的修正相比的差异 除了鼻尖和下唇外,舌头的法线线完全不同。