SuperAPI AI 工具集

text-to-blender

设计与创作

查看项目

更新于 10-15 14:03

技能介绍

用途

text-to-blender 用于把自然语言请求转化为 Blender 中的实际工作。它本身是一个编排器(Orchestrator):读取用户请求,判断需要哪些能力(建模、材质、灯光、渲染、导出等),按正确顺序链式加载相应子技能,并通过 Blender MCP 执行。

适用场景:用户提出任何 3D 创建、修改、灯光、渲染、动画或导出任务,或任何合理应在 Blender 中完成的工作。

主要能力

  • 意图识别与子技能路由:根据用户意图加载对应子技能的 SKILL.md 并遵循其模式,多个意图可链式加载多个子技能。
  • 多技能协调:复杂任务(尤其是参考/模板/品牌类工作)在确定执行顺序前先加载 blender-skill-harmonizer,由其负责优先级、交接产物与冲突策略。
  • 质量改进循环:当用户认为输出不达标、问题反复出现,或要求在重试前改进技能栈时,先加载 quality-refinement-autoloop,把证据转化为可复用的经验教训,并在明确要求时修补通用技能/文档/版本,然后再恢复 Blender 修复循环。
  • 世界环境重置:每次场景构建开始时把世界重置为中性基线,避免上一次运行遗留的损坏 HDRI / Environment Texture 节点污染渲染。
  • 真实尺寸查询:在生成 Python 之前查阅 references/common-object-dimensions.md,避免凭猜测确定物体比例。
  • 可视化验证:渲染后必须目视检查主体是否可见可辨、比例是否符合真实参考、构图是否合理、材质是否有可见变化。
  • 视口材质预览:场景组装完成后把视口切换到 Material Preview,让用户看到实际材质。

使用方式

  1. 识别意图:判断需要哪些能力。
  2. 检查前置条件:MCP 服务器是否可达、场景状态如何。若无法连接,需启动所选后端的 add-on socket 与匹配的 MCP 客户端进程后重试;官方 MCP 要求 Blender 5.1+。
  3. 重置世界为已知良好基线。
  4. 在生成 Python 前查询主体的真实世界尺寸。
  5. 路由到子技能:用宿主文件读取工具加载相关子技能并遵循其说明。
  6. 按专业顺序排列工作(见下方装配顺序)。
  7. 用所选后端的代码执行工具运行生成的 Python。
  8. 用所选后端的场景/物体检查与截图或渲染工具进行验证。
  9. 迭代:若视觉检查发现明显问题,先修复并重新渲染,再报告成功。
  10. 向用户报告具体数字以及可查看的证明渲染路径。

意图 → 子技能路由(示例)

  • “做一个 X 的 3D 模型” → blender-modeling(第 1 步)
  • “根据这张线框图” → wireframe-to-3d(第 1 步)
  • “用这些材质 / 让它看起来像 X” → blender-materials(建模之后)
  • “打光 / 影棚布光 / 电影感” → blender-lighting(几何体存在之后)
  • “主视觉 / 相机角度 / 景深” → blender-cameras(灯光之后)
  • “渲染 / 出图” → blender-rendering(最后视觉步骤)
  • “动画 / 随时间移动旋转” → blender-animation(几何体之后)
  • “导出为 glTF / FBX / OBJ / 用于网页 / 用于 Unity” → blender-export(最后一步)
  • “搭建场景 / 制作级质量结果” → blender-pro-workflow(最先,指导全局)
  • “我是新手 / 不知从何开始” → blender-pro-workflow(最先)
  • “不达标 / 还是不对 / 同样的问题又出现” → quality-refinement-autoloop,然后 blender-skill-harmonizer(最先:学习、净化、修补,然后重试)
  • “精确匹配这些模板 / 线框 / 纹理” → blender-skill-harmonizer,然后参考特定的适配技能(最先:建立事实来源关卡)

多意图示例:“建模一把剑并加材质,戏剧性打光,导出为 glTF” → blender-pro-workflow → blender-modeling → blender-materials → blender-lighting → blender-export。

专业装配顺序

  1. 参考 + 计划
  2. 块面搭建(基础几何体 + 相机 + 构图)
  3. 锁定相机(选焦距、取景)
  4. 灯光 v1(三点布光:主光/补光/轮廓光)
  5. 细化几何体
  6. 材质 v1(先平色,把明度调对)
  7. 灯光 v2(颜色 + 比例)
  8. 细节阶段
  9. 最终渲染(生产级采样 + 降噪)
  10. 合成(调色、眩光、暗角)
  11. 导出(面向目标平台)

代码执行规则

  • 每次调用都是全新命名空间,只有 bpy 预导入,需重新导入 math、bmesh、numpy 等。
  • 通过稳定名称识别物体,不要用 Python 变量。
  • 检查后端响应状态与 stdout,打印结构化输出以便解析。
  • 分块执行,每次调用 180 秒超时,每块约 5–20 行。
  • 使用 Blender Studio 命名约定:GEO-、MAT-、LGT-、CAM-、ARM-、COL-,左右用 .L / .R 后缀。

命名约定

  • GEO-:几何体/网格对象
  • MAT-:材质
  • LGT-:灯光
  • CAM-:相机
  • ARM-:骨架(绑定)
  • COL-:集合
  • WGT-:自定义骨骼形状/控件

适用场景

任何涉及 Blender 的 3D 创建、修改、灯光、渲染、动画或导出任务。

限制

  • 不适合:重度自定义 GPU 工作 / 编写渲染引擎(应使用 Blender 现有引擎);实时游戏逻辑(应直接用 Unity / Unreal);从自然语言进行雕刻笔触(原文在此处截断,未提供完整内容)。
  • 纯配方基础几何体只能产生可辨认的轮廓,无法生成人脸;用户要求“人/角色/脸/人物”时,应建议使用实际人体基础网格或委托 Blender 角色艺术家,不要假装球体加特征像人。
  • 官方 MCP 要求 Blender 5.1+。
  • 渲染或导出报告成功前,必须确认文件确实存在。
  • 数值验证不足以判断渲染正确性,必须进行可视化验证。

常见失败模式与处理(摘要)

  • MCP 超时:把失败块拆得更小。
  • 代码执行错误:读错误、修那一行、重试。
  • 下一次调用找不到对象:用了 Python 变量而非 bpy.data.objects['name']。
  • 渲染太久:降低采样、启用自适应采样、降低分辨率。
  • 文件不在预期路径:使用绝对路径并用 shell 工具 ls 验证。
  • 导出后材质异常:使用了非 Principled BSDF 节点,应仅用 Principled 重建材质。
  • 'Action' object has no attribute 'fcurves':Blender 5.x 分层 Action,需遍历 action.layers[].strips[].channelbags[].fcurves。
  • BLENDER_EEVEE_NEXT 被拒绝:Blender 5.x 改回 BLENDER_EEVEE,使用 try/except 回退。
  • KeyError: 'Subsurface IOR' 等输入名:Blender 5.x 将部分 BSDF 输入标记为 enabled=False,需通过迭代而非字符串键访问。
  • Error: Cannot render, no camera:scene.camera 为 None,渲染前始终运行 ensure_camera() 守卫。
  • 用户报告“场景是灰色/看不到材质”:视口默认 Solid 着色模式忽略材质,渲染本身正确;组装后把视口设为 Material Preview。
  • 用户报告“材质很平/没有纹理”:平面 PBR 颜色缺少表面变化,添加程序化纹理。
  • 主体比例错误:编排器跳过了尺寸查询,生成建模代码前务必阅读 references/common-object-dimensions.md。
  • 细长主体渲染成细杆:相机正对细轴,旋转物体使宽轴朝向相机。
  • 刀刃/尖刺尖端呈“凿平”而非尖点:顶部顶点缩放至零但未合并,需正确收尖并 remove_doubles。
  • 彩色玻璃渲染成平面/金属感:仅在 Base Color 上设色,真实彩色玻璃需要 Volume Absorption;Roughness=0.0 会产生镜面高光,应使用 0.02–0.05。
  • 玻璃内部渲染成黑色:transmission_bounces 太低,设为 24。

报告格式

完成后具体报告:创建的对象与面数、灯光及其角色、渲染文件路径/大小/尺寸/渲染时间、以及任何警告(自动减面、命名冲突、回退材质等)。