Blender导出至Babylon.js失败问题求助
解决Blender 4.0.2导出BabylonJS模型时的KeyError问题
问题原因
你使用的Blender2Babylon-3.3x导出器版本较旧,不兼容Blender 4.0.x中Principled BSDF节点的属性变化,导致代码尝试读取不存在的'Subsurface'默认值时抛出KeyError。
修复方案
方案1:修改导出器代码
找到导出器安装目录下的babylon_js/materials/nodes/principled.py文件,修改第25行附近的代码:
原代码:
subsurface = self.getDefault('Subsurface')
修改为:
subsurface = self.defaults.get('Subsurface', 0.0)
通过get方法设置默认值,避免键不存在时触发报错。
方案2:替换材质节点
暂时用兼容的材质节点替代默认的Principled BSDF,步骤如下:
- 打开材质编辑器,删除默认的Principled BSDF节点
- 添加Diffuse BSDF节点,将其输出连接到Material Output节点的Surface输入
- 重新执行导出操作
方案3:匹配软件版本
暂时回退到Blender 3.x系列版本(与导出器3.3x版本匹配),完成模型导出后再换回Blender 4.0.2。
内容的提问来源于stack exchange,提问作者Anna Melashkina
相关产品推荐
相关产品推荐

