← 返回首页

用 Blender 给 Godot 模型瘦身

2026-07-28 · 小孔

《警匪大作战》里不少 3D 模型是用 Meshy AI 生成的 FBX,优点是出图快,缺点是文件巨胖。最离谱的一个资源目录里塞着 593MB 的 FBX,而微信小游戏主包有严格的体积极限,直接甩进去根本导不出来。这篇讲怎么用 Blender 把模型批量压瘦,把主包体积救回来。

一、为什么必须瘦身

微信小游戏对首包/主包体积卡得很死,超了就别想上传。Meshy 导出的 FBX 默认带高模网格和原始分辨率贴图,一个障碍物几十 MB 太正常了。九个模型原始合计 149.2MB,对 Web 运行时来说既占带宽又拖加载,必须砍。

二、工具与脚本

我用的是 Blender 5.1.2,路径在 D:/转化/blender.exe。写了个 compress_fbx.py 脚本来做批量处理,核心动作就两件事:

处理完导出为 GLB 格式(比 FBX 更轻、更适合 Web),九个模型从 149.2MB 一路压到 28MB,主包终于能顺利塞进小游戏的限制里。

三、踩到 Blender 5.1 的导入 Bug

脚本跑起来后,Blender 在导入 FBX 这一步直接抛异常,定位到 import_fbx.py 第 2255 行的 cast_shadow 处理有问题——这个版本的 FBX 导入器对部分属性的读取会崩。临时修法是把那一行有问题的属性读取包一层判断或注释掉,让导入流程跳过坏属性,模型照样能正常读进来。

这种官方版本的坑只能见招拆招,改完记得在注释里留一句,免得以后升级 Blender 又忘了为什么动过这个文件。

四、为什么不走 Draco

有人会问:GLB 不是能上 Draco 压缩吗?注意一个前提——Godot 4.6 的 Web 导出目前并不推荐 Draco。解压开销和兼容性问题在微信小游戏的运行时里不一定划算,反而徒增复杂度。所以我的策略是几何体减面 + 贴图降分辨率 + 普通 GLB,不依赖额外压缩算法,稳妥可控。

五、几点经验

瘦身这件事没什么魔法,就是「减面 + 降分辨率 + 选对格式」三板斧。真正费时间的是和工具版本 bug 较劲,以及找到每个模型合适的参数。压完那一刻,导出进度条终于能走完了。