用途
blender-tooling 面向游戏工作室的技术美术与管线开发场景,目标是减少手工 3D 资产准备(应用变换、骨骼重命名、法线修复、逐个导出 FBX 等)带来的低效与人为错误,改用 Blender 内置的 Python(bpy)实现自动化。适合在编写 Blender Python 脚本、插件或批量工具时参考。
主要能力
资料将工具架构分为四层:
- bpy API 结构:bpy.context 负责当前选择、模式与场景;bpy.data 访问网格、骨架、材质、贴图、动作等数据块;bpy.ops 执行操作符;bpy.types 用于定义自定义 Operator、Panel 与 Property Group。资料建议避免在重循环中调用 bpy.ops,尽量直接通过 Python 数据 API 修改 bpy.data 与网格属性。
- 资产校验 Linter:导出前自动检查未应用的缩放(obj.scale 不等于 (1,1,1))、N-gon 数量(多边形顶点数大于 4)、材质贴图文件路径缺失、静态道具原点未在 (0,0,0) 等。校验失败即中止导出,并弹出错误提示列出具体问题对象名。
- 自定义插件:使用 bl_info 字典声明名称、作者、版本、Blender 版本和分类,通过 register()/unregister() 注册与注销 Operator 和 Panel,在 3D 视口侧边栏(N 面板)提供一键批量操作入口,如清理资产、烘焙法线贴图、导出游戏用 FBX。
- 无界面 CLI 批处理:在 CI/CD 或构建服务器上以
blender -b assets/character.blend -P scripts/batch_export.py -- --output-dir ./dist/fbx方式后台运行,并用sys.argv[sys.argv.index("--") + 1:]解析 Blender 原生参数之后的脚本参数。
使用方式
资料给出了一份可直接参考的插件模板 studio_exporter.py:定义 bl_info,创建 OBJECT_OT_validate_game_asset 操作符检查当前激活网格对象的缩放与 N-gon,并创建 VIEW3D_PT_game_pipeline_panel 面板挂到“Game Pipeline”侧边栏,最后在 if __name__ == "__main__" 中调用 register()。批量导出示例中,脚本以后台模式打开 .blend 文件、统一缩放、对齐原点并导出 FBX。
适用场景
游戏资产预导出检查、批量 FBX 重导出(如引擎坐标轴变更后)、工作室内部管线插件、CI 中的自动化资产处理。
限制与注意事项
资料列出的反模式包括:在插件中硬编码绝对路径;在后台无界面运行时调用依赖 3D 视口选择的 bpy.ops;批量操作直接覆盖原始 .blend 而无备份检查点。资料未提供具体收费、价格或平台支持信息。