SuperAPI AI 工具集

blender-tooling

编程与开发

查看项目

更新于 11-01 17:13

技能介绍

用途

blender-tooling 面向游戏工作室的技术美术与管线开发场景,目标是减少手工 3D 资产准备(应用变换、骨骼重命名、法线修复、逐个导出 FBX 等)带来的低效与人为错误,改用 Blender 内置的 Python(bpy)实现自动化。适合在编写 Blender Python 脚本、插件或批量工具时参考。

主要能力

资料将工具架构分为四层:

  1. bpy API 结构:bpy.context 负责当前选择、模式与场景;bpy.data 访问网格、骨架、材质、贴图、动作等数据块;bpy.ops 执行操作符;bpy.types 用于定义自定义 Operator、Panel 与 Property Group。资料建议避免在重循环中调用 bpy.ops,尽量直接通过 Python 数据 API 修改 bpy.data 与网格属性。
  2. 资产校验 Linter:导出前自动检查未应用的缩放(obj.scale 不等于 (1,1,1))、N-gon 数量(多边形顶点数大于 4)、材质贴图文件路径缺失、静态道具原点未在 (0,0,0) 等。校验失败即中止导出,并弹出错误提示列出具体问题对象名。
  3. 自定义插件:使用 bl_info 字典声明名称、作者、版本、Blender 版本和分类,通过 register()/unregister() 注册与注销 Operator 和 Panel,在 3D 视口侧边栏(N 面板)提供一键批量操作入口,如清理资产、烘焙法线贴图、导出游戏用 FBX。
  4. 无界面 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 而无备份检查点。资料未提供具体收费、价格或平台支持信息。