检查 BlendShape 的法线
北溟瞬息
2024年01月17日 01:41
收录于文集
共27篇

检查 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的选项中,选择Debugging Options,然后将Visualize设置为Normal。

回到 SkinnedMeshRenderer 。

拖动 BlendShape 滑块,检查法线。

示例中,鼻尖和嘴巴的法线出现了明显的错误。

UP补充:这里这个模型不是之前使用的艾莉西亚的模型,我用艾莉西亚的模型测试的时候,只在眼周和耳朵发现了法线的变化。

模型信息 这个模型是将 Vroid 的 VRM 导入到 Blender 从 Blender 导出 FBX 最后导入到 Unity 得到的结果

修复 BlenderShape 的法线

用上述方法发现 BlendShape 有问题时,修复的方法。

选择 fbx 的 Model 标签。

检查并应用 Legacy Blend Shape Normal。

确保 BlendShape 是正确的。

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