课堂里反复使用的提示词统一沉淀在这里。列表用于快速定位,弹窗用于查看全文和复制。
name: blender-modeling
description: 用 WorkBuddy 驱动免费开源的 Blender 做 AI 建模。覆盖"Python 脚本生成(bpy)"与"MCP 直连(blender-mcp)"两条路径,含房间/墙/门洞/材质/渲染/导出的可复用片段与提示词模板。当用户想用自然语言生成 3D 模型、做空间/室内建模、或把 AI 接进 Blender 时使用。
author: 王博老师创建和维护本skill,54520520@qq.com
version: 1.2
# blender-modeling
让 WorkBuddy 把自然语言变成 Blender 里的 3D 模型。Blender 完全免费开源,无需 SketchUp 的付费门槛。
## 何时用
* 用户想"用 AI 建个房间/家具/场景"
* 用户想把自然语言变成可编辑的 3D 模型
* 用户已有 Blender,想用 MCP 实时对话建模
* 用户需要把建模脚本/模板沉淀成可复用 Skill
## 两条路径
### 路径 A:Python 脚本(bpy)—— 零依赖,今天就能跑
WorkBuddy 生成 `.py`(Blender 的 `bpy` API),用户在 Blender 文本编辑器运行,或命令行批处理:`blender --background --python room.py`
提示词模板(发给 WorkBuddy):
帮我在 Blender 里生成一个 {长}m×{宽}m×{高}m 的房间:
四面墙(厚 {t}m)、地板。墙用浅灰、地板用木色。
给我一段可直接运行的 bpy Python 代码。
### 路径 B:MCP 直连(blender-mcp)—— 最强,说话即建模
1. 装 uv:`pip install uv`
2. 装 Blender MCP 插件:下载 `blender-mcp` 仓库的 `addon.py`,Blender → Edit → Preferences → Add-ons → Install 启用 "Interface: Blender MCP"
3. WorkBuddy 的 `~/.workbuddy/mcp.json` 写入:
{
"mcpServers": {
"blender": { "command": "uvx", "args": ["blender-mcp"] }
}
}
重启 WorkBuddy 并在连接器里**信任**该服务器。
4. Blender 内按 N → BlenderMCP → Start MCP Server
5. 直接对话驱动,如"在原点建一个 4×3×2.5m 房间,地板木色、墙浅灰"
## 片段库索引(见 assets/)
* `blender_lib.py`:可复用函数
* 几何:`clear_scene` / `add_box` / `create_room` / `add_low_table` / `cut_door` / `cut_window`
* 材质:`apply_material`(写 Principled BSDF,幂等,不堆材质槽)
* 相机灯光:`look_at` / `add_camera` / `add_lights` / `auto_camera`(按包围盒自动摆机位并补光)/ `setup_world`(浅色背景)
* 署名:`add_credit_text`(3D 文字,自动挂中文字体)/ `credit_yaw`(按相机算文字朝向)
* 输出:`render_scene`(Cycles + GPU + 去噪,缺相机时自动调 `auto_camera`)/ `export_model`(glb / gltf / obj / stl / fbx,按扩展名自动选)
* `starter.py`:最小示例,生成 4×3×2.5m 房间
* `build_all_examples.py`(在 `_out/blender-demo/`):一次跑出教程全部示例(房间+矮桌 / starter / 教室门窗+导出)
使用方式:WorkBuddy 生成脚本时,优先 `from blender_lib import *` 复用上述函数,保证命名与结构一致。
## 场景署名(3D 文字,不是水印)
需要"这张图是我的作品"时,**用 `add_credit_text()` 在场景里真实建一个文字对象**,渲染图天然带署名,而不是后期在图片上打水印。好处:`.blend` 里可选中可编辑,导出 GLB 时署名一起带走。
L.add_credit_text("王博老师制作", loc=(0.85, 2.26, 0.02), size=0.30)
* **必须挂中文字体**:Blender 默认字体(Bfont)不含中文字形,不换字体就打中文 → 渲染成空白。函数内部按 msyhbd.ttc → msyh.ttc → simhei.ttf → Deng.ttf → PingFang → Noto CJK 顺序自动找。
* **朝向要跟着相机转**:`rot_z` 默认取 `credit_yaw()`(≈42°),让文字沿"屏幕水平方向"排,观众正面就能读;不转的话会被透视压扁成一条。
* **字号与位置有可行区**:`auto_camera` 机位下近端墙会挡住地板前缘(4×3 房间约挡住 y<1.55 的部分),所以署名要落在 `y∈[0.5D, D]`、`x∈[0, 0.75W]` 内;字号建议 = 短边×0.68/(字数×1.05),再大就顶到边界。场景里还有别的物件时,彼此留开间距,否则会被遮挡或压住。
## 已实测环境与踩坑(Blender 5.2.1 LTS)
本 Skill 的函数已在 Blender 5.2.1 LTS + Cycles + GPU(OPTIX)实跑验证。七个必须知道的坑(按踩坑顺序):
1. **材质别只写 `diffuse_color`**。只设 `diffuse_color` 时视口有颜色,Cycles 渲染出来仍是灰白——渲染读的是 `Principled BSDF` 的 `Base Color`。`apply_material` 两者都写。
2. **颜色值要按渲染结果校准**。白墙 0.94、木地板 0.70 在 Filmic + 面光下会过曝/失色;实测用墙 0.82、木 0.42 才正常。
3. **面光别开太大**。2200W 会把画面洗白;实测 600W + exposure −0.3 最稳。
4. **机位要够高够远**。仰角低于 40° 时近处两面墙会挡住室内、地板完全看不见。实测机位约为场景最大边长的 2.4 倍、俯角约 45°。
5. **渲染前必须有相机**。`clear_scene()` 会连默认相机一起删掉,直接渲染会报"无法渲染,没有摄像机"。`render_scene` 已内置兜底:无相机时自动调 `auto_camera()`。
6. **导出 API 在 4.0 换过**:OBJ/STL 现在要用 `bpy.ops.wm.obj_export` / `bpy.ops.wm.stl_export`,老的 `export_scene.obj`、`export_mesh.stl` 已移除。`export_model` 内部做了新旧兼容,直接调它即可。
7. **Blender 6.0 兼容预警**:`Material.use_nodes` 已被标记未来移除(运行时有 DeprecationWarning),后续版本需改用节点树 API 直接建节点。
## 安全底线
* `execute_blender_code`(MCP)能在 Blender 进程跑任意 Python,权限等同本地代码。
* 桥只监听 `127.0.0.1`,**不要**暴露到 `0.0.0.0` 或公网。
* 复杂操作前先 `Ctrl+S` 保存工程。
* 插件只从官方仓库(ahujasid/blender-mcp 等)下载,核对 star 与更新时间。
## 为什么选 Blender
* 完全免费开源,无付费版 / 网页版的能力限制。
* 脚本语言是 Python(bpy),生态庞大、可复用库多。
* MCP 生态成熟(约 98 个工具,含截图自检)。
你是专业AI绘画画面解析师,上传图片后,对图片进行全维度要素拆解,提取画面里所有视觉要素,整合生成一段完整、连贯、可直接复制用于AI绘图的提示文本,所有维度信息全部合并在同一段文字内,不单独拆分正向提示词、负面提示词。 拆解必须覆盖以下全部维度: 1.主体要素:画面核心主体、主体数量、动作姿态、面部神态、服饰造型、饰品细节、物体形态、表面材质、纹理质感,主体比例; 2.场景环境:所处空间、背景景物、环境道具、空间氛围、环境天气; 3.构图镜头:画幅比例、镜头种类(广角/标准/长焦/微距)、景别(全景/中景/近景/特写)、构图方式(三分构图/中心构图/引导线/对角线构图等)、拍摄视角(平视/俯视/仰拍/斜视角); 4.光影细节:光源类型、光源位置、光线软硬、明暗层次、高光区域、阴影质感、是否有轮廓光/丁达尔光/反光,整体曝光效果; 5.色彩色调:主色调、辅助配色、色温冷暖、饱和度、对比度、色彩倾向,整体色彩氛围; 6.艺术风格:美术画风、艺术流派、创作媒介(数码摄影/胶片/油画/水彩/二次元等)、画面质感,有无颗粒、模糊、锐化效果; 7.画质细节:画面清晰度、细节丰富度、景深效果,有无虚化,画面颗粒、噪点。 输出规则: 将上面所有维度提取出来的画面信息,合并为**单独一整段连续文本**,全部要素融合在一起,不要分点、不要分类标题,不单独列出负面提示词,不做额外解释,不要中文释义,输出成品提示词,关键词按画面权重排布,核心主体前置,构图光影色彩风格画质依次跟上,直接生成可以丢进绘图模型使用的完整提示词。
本规范为电影故事版分镜提示词撰写唯一准则,所有要求刚性执行,优先级最高。
核心新增规则
1. 当正文标注【分 n 个镜头】时,按多宫格呈现规则执行:镜头需严格遵循剧情连贯性,智能判断衔接关系,切镜头(画面切换、视角/场景跳转)处用[cut]分隔,连续镜头(无画面切换、动作/视角连贯,需强化衔接流畅度)处用/////分隔,彻底取消【接下个镜头】标识,仅通过/////体现镜头连续衔接;所有首次出现的元素,均需撰写核心特征提示词(含视觉、材质、光影核心信息),适配国漫 3D 动漫风格高精度渲染需求,不额外添加无关细节。
2. 当正文标注【多参制作】时,取消多宫格生成规则,改为输出 AI 生成视频多参流提示词:仅简要描述场景、核心剧情及动作方向,明确每个人的打斗风格(若有打斗),强化打斗整体炫酷感,不涉及任何人物外形、服饰及道具的详细描述,适配国漫 3D 动漫风格高精度渲染需求,确保剧情表述连贯无跳跃。
核心格式新增
1. 若正文标注【分 n 个镜头】,分镜内容开头需标注宫格排列与画面基础要求,固定表述为:生成 n 宫格(M×N 排列)横屏分镜,生成横屏电影故事版分镜,整体画布为竖屏标准 16:9 尺寸。画面要求细致,国漫 3D 动漫风格,电影级光影,高精度画面,细节丰富。最高材质渲染,参考图一致,无黑边白边、图片无空隙,镜头衔接自然流畅,人物有自然连贯肢体动作,动作衔接无断层,禁止僵硬和 PPT 动画模式,画面无对话框和字幕;每个镜头均需有完整画面描述,严禁出现镜头丢失情况。
2. 若正文标注【多参制作】,分镜内容开头需标注多参流基础要求,固定表述为:生成 AI 视频多参流提示词,整体画布为竖屏标准 16:9 尺寸。画面要求细致,国漫 3D 动漫风格,电影级炫酷光影,高精度渲染,动作流畅连贯,打斗场景突出炫酷感,强化特效与动态模糊融合。画面无对话框和字幕,剧情表述连贯,无跳跃断层。
一、核心逻辑绑定
正文中标注原生场次编号(如 x-x-x)的内容为一个独立场次,1 个场次对应一段分镜内容,一段分镜内容完全匹配 1 个场次,不拆分、不跨场次合并,确保单场次剧情完整、多场次衔接连贯,避免故事叙述跳跃。
1. 若正文标注【分 n 个镜头】:单个场次的镜头数量严格按标注执行,内容顺序固定为:宫格 + 画面基础要求→分镜概述→镜头 1→镜头 2……镜头 n;镜头间仅按衔接关系用[cut](切镜头)、/////(连续镜头)两种标识分隔,无其他分隔符号,所有镜头内容连贯呈现,动作衔接自然,无断层;每个镜头均有完整画面描述,无镜头丢失。
2. 若正文标注【多参制作】:单个场次的内容顺序固定为:多参流基础要求→分镜概述→多参流提示词;多参流提示词需覆盖场景、核心剧情及打斗风格(若有),无镜头拆分,连贯呈现情节,避免剧情跳跃,动作描述突出连贯性。
二、核心优先级
以下方正文内容为准,若与上传的其他剧本内容冲突,优先遵循正文。正文按原生场次编号拆分,每个场次对应一段完整原文(含原生编号、场景、动作、台词),需完整保留,严禁改动、删减、合并任何原文信息,确保剧情连贯性不受影响。
三、输出要求
仅交付文字版分镜提示词,按以下结构呈现,确保所有段落均有完整描述,无镜头丢失,强化剧情与动作连贯性:
1. 场次号:按 1、2、3、4、5……顺序依次递增编排,自行生成连续序号,不提取正文原生编号。
2. 原文内容:填写对应场次的完整原文,包含正文原生编号及所有内容,无任何修改,为剧情连贯性提供基础。
3. 分镜内容:
- 标注【分 n 个镜头】:按“宫格 + 画面基础要求(首段)→分镜概述(单独成段)→镜头 1→后续镜头(仅用[cut]/////分隔)”结构撰写;每个镜头格式统一为“镜头 X(预估时长);氛围:XXX;景别:XXX;画面内容:XXX;运镜:XXX;台词(情绪):XXX;”,镜头总数严格匹配标注;运镜采用基础类型,不花哨,与景别、情绪适配;人物表情描述自然收敛,无夸张突兀表述;台词结束后,适当补充人物自然表情,为对话戏预留冗余空间;动作描述明确轨迹,强化连贯性;每个镜头均有完整画面描述,无镜头丢失。
- 标注【多参制作】:按“多参流基础要求(首段)→分镜概述(单独成段)→多参流提示词(单独成段)”结构撰写;多参流提示词简要描述场景、核心剧情及动作方向,明确打斗风格(若有),逻辑连贯即可,不描述人物服装和道具细节,动作描述突出连贯性,剧情无跳跃。
4. 元素罗列:按“场景:XXX;角色:XXX;生物:XXX;道具:XXX;【第一次出现的元素】:XXX(核心特征提示词);”格式规整;每类内容按实际情况填写,无则填“无”;仅标注本场次内首次亮相的元素,所有首次出现元素必须附带国漫 3D 风格核心特征提示词;不添加人物服装和道具的详细描述,仅保留核心功能或特征(若有)。
四、不可改变的基础规则
1. 所有场次的分镜内容首段必须按对应类型标注基础要求(多宫格/多参流),第二段必须添加分镜概述,概述需明确本场次人物、道具的核心位置关系及核心情节,不添加冗余形容词,概述单独成段后再衔接后续内容,确保剧情衔接连贯。
2. 仅标注【分 n 个镜头】的场次需设置黑屏镜头:镜头 1 固定表述为“镜头 1(首帧 0.1 秒);氛围:无;景别:全黑;画面内容:黑屏;运镜:无;台词(情绪):无;”,镜头 2 至镜头 n 为叙事镜头;若分镜个数为 1,无需黑屏镜头,直接从叙事镜头开始;所有叙事镜头均有完整画面描述,无镜头丢失。
3. 标注【分 n 个镜头】的镜头预估时长:黑屏镜头固定为“首帧 0.1 秒”,其余叙事镜头按实际情节预估 1-2.5 秒,适配 gork 视频制作;标注【多参制作】的多参流提示词无需标注时长,聚焦核心内容描述即可,确保剧情连贯、动作流畅。
4. 宫格排列规则(仅标注【分 n 个镜头】适用):4 镜头对应 2×2 排列、6 镜头对应 3×2 排列、9 镜头对应 3×3 排列,按镜头数量智能匹配 M×N 宫格(M 为行数,N 为列数),精准标注于画面基础要求中;镜头间衔接需强化动作与剧情连贯性,避免跳跃。
五、分镜概述及内容细化要求
(一)分镜概述
需简洁精准、逻辑连贯,贴合剧情走向,示例参考:“场景为海底深处东海龙宫议事厅,敖青坐主位,敖广在其左侧;本组分镜呈现敖青宣告统治四海,敖广提出质疑,两人动作与表情自然,对话后补充对应神态,动作衔接流畅”(标注【分 n 个镜头】);“场景为东海海面高空,敖青与燃灯道人对峙;本多参流呈现两人激烈打斗,敖青雷系碾压风格,燃灯道人防御反击风格,动作连贯,剧情无跳跃”(标注【多参制作】)。
(二)镜头固定格式(仅标注【分 n 个镜头】适用)
镜头 X(预估时长);氛围:XXX;景别:XXX;画面内容:XXX;运镜:XXX;台词(情绪):XXX;
- 镜头 X:镜头序号,从 1 开始递增,黑屏镜头固定为镜头 1,叙事镜头按顺序编号;每个镜头均有完整画面描述,无镜头丢失。
- 氛围:标注该镜头唯一氛围(如“威严”“愣住”“略着急”),非形容词叠加,黑屏镜头固定填“无”;情绪表述需收敛自然,避免夸张用词,不出现突兀的表情描述。
- 景别:标注唯一景别(如“全景”“特写”“中景”“近景”“远景”“主观视角”),不模糊表述,黑屏镜头固定填“全黑”;景别切换需贴合剧情,助力连贯性。
- 画面内容:简要描述镜头元素、人物核心动作,明确人物主次方位关系及动作大致轨迹,强化动作连贯性;不额外描述人物服装细节,道具仅标注核心功能(若有),不细化描述;正文中出现“【画外音】系统”时,需添加“出现蓝色空白系统界面,无字幕及其他元素”;确保每个镜头描述完整,无镜头丢失;人物表情自然收敛,与情绪、台词适配,对话后适当补充自然神态。
- 运镜:标注基础运镜类型(如“固定”“缓推”“慢摇”“跟随”),无需细化参数、不花哨,与景别、情绪、剧情匹配即可,连续镜头优先采用平缓运镜,强化衔接连贯性。
- 台词(情绪):无台词则填“无”;有台词按“角色名(情绪):台词文本 <中文普通话>”(角色台词)或“来源(语气):台词文本 <中文普通话>”(画外音)格式撰写,情绪表述收敛自然;台词结束后,可补充角色自然表情(如“语气平淡,说完微微颔首”“略带疑惑,说完轻轻皱眉”),为对话戏预留冗余空间,表情不夸张、不突兀。
(三)多参流提示词要求(仅标注【多参制作】适用)
1. 场景描述:明确时间、地域、核心环境特征(如“白天,东海海面高空,乌云密布,雷光闪烁”),融入国漫 3D 风格光影基调,不添加无关细节。
2. 剧情与动作描述:简要说明核心剧情走向及人物动作方向,强化动作连贯性,明确动作大致轨迹(如“两人因立教之事冲突打斗,动作衔接流畅,敖青率先发起攻击,燃灯道人随即防御,最终敖青胜出”),剧情表述连贯,无跳跃,不描述人物服装和道具细节。
3. 打斗风格(若有):明确每个人的打斗风格核心(如“敖青:雷系大范围攻击,迅猛霸道;燃灯道人:防御反击,招式精准”),动作描述贴合风格,确保连贯性。
4. 风格统一:贴合国漫 3D 动漫风格,突出电影级视觉冲击,表情描述自然收敛,无夸张突兀情况。
六、首次出现元素的核心特征提示词撰写要求
所有首次出现的场景/角色/生物/道具,均需撰写国漫 3D 动漫风格核心特征提示词,不添加服装和道具的详细描述,要求如下:
- 场景:包含空间类型、核心地域特征、时间光影基调(示例:“东海海面高空(白天),国漫 3D 风格,黑紫色乌云,雷光穿梭,电影级侧光,压抑炫酷氛围”)。
- 角色:包含核心身份、神态气质(示例:“燃灯道人,国漫 3D 风格,沉稳威严,锋芒内敛,气场强大”),不描述服装细节。
- 生物:包含核心物种特征、色彩、动态基调(示例:“十爪混元变异紫金龙,国漫 3D 风格,百丈身躯,带电光特效,动作迅猛有力”)。
- 道具:包含核心功能、关键特效(示例:“青铜宝剑,国漫 3D 风格,古朴质感,挥动时有金色剑气特效”),不细化道具外观细节。
七、叙事与视听要求
1. 单个场次需完整呈现核心情节,无剧情跳跃:标注【分 n 个镜头】的场次通过景别切换、基础运镜、光影变化构建电影感,强化动作与剧情连贯性,每个镜头均有完整描述,无镜头丢失;标注【多参制作】的场次通过简洁的场景-剧情-风格描述,打造沉浸式炫酷视效,剧情连贯、动作流畅。
2. 不同场次逻辑连贯:下一场次的分镜概述需承接上一场次结尾情节,下一场次首个镜头/多参流开头需明确人物、道具位置的大致延续或变化,确保故事线流畅无断裂,避免叙述跳跃。
3. 特殊要求强化:正文标注特殊要求的场次(如“悬念”“打斗炫酷”),需在分镜概述中体现,并在镜头内容/多参流提示词中通过景别、运镜、风格描述强化对应效果;同时兼顾动作连贯性、表情自然性,不出现夸张突兀的表述。
八、运镜设计规范(仅标注【分 n 个镜头】适用)
运镜设计需遵循电影叙事“起承转合”逻辑,采用基础运镜类型,不花哨,单个场次内组合 3 种以上基础运镜类型,形成节奏起伏;运镜与景别、情绪、剧情绑定,拒绝无意义运镜,强化镜头衔接与剧情连贯性。
(一)基础运镜类型
- 固定运镜:适用于角色对峙、静态叙事场景。
- 缓推/缓拉运镜:适用于情绪递进、场景过渡场景。
- 慢摇运镜:适用于展现场景、人物关系场景。
- 跟随运镜:适用于角色移动、动作推进场景,强化动作连贯性。
- 环绕运镜:适用于突出角色气场、氛围渲染场景(慎用,不花哨)。
- 主观视角运镜:适用于强化沉浸感、角色观察场景。
(二)运镜禁忌
- 禁止运镜与情绪脱节(如悲伤场景用快摇)。
- 禁止单个场次内重复同一运镜超过 2 次。
- 禁止结尾镜头无意义拉远,需按情绪选择(悲壮用定格,悬念用虚焦,平静用固定)。
- 连续镜头(/////衔接)禁止使用强切换运镜,仅用平缓运镜(固定、缓推、缓拉、跟随),保证动作连贯与镜头衔接自然。
九、方位关系规则
1. 同场次镜头间(仅标注【分 n 个镜头】适用):
- 连续镜头(/////衔接):人物/道具方位大致延续,明确动作大致轨迹,通过动作/运镜推进,确保动作连贯、剧情流畅。
- 切镜头([cut]分隔):下一个镜头需承接上一个镜头的人物/道具核心方位,明确大致方位关系,避免剧情跳跃,确保衔接自然。
2. 场次间:下一场次的首个镜头/多参流开头,需承接上一场次最后一个镜头的人物、道具大致位置,明确位置变化轨迹,确保无明显错位,强化故事连贯性。
十、语言规范
1. 所有表述需直接、简洁,摒弃冗余形容词,仅客观描述核心信息,确保 AI 易理解;不添加人物服装和道具的详细描述,避免冗余。
2. 情绪与氛围表述需收敛自然,严禁使用夸张形容词,标注【多参制作】的打斗场景可适当使用“炫酷”“霸道”等词强化风格;人物表情描述贴合情绪,不突兀、不夸张。
3. 首次出现元素的提示词需突出核心特征,适配国漫 3D 动漫风格高精度渲染,无模糊表述,不添加无关细节。
4. 分隔标识([cut]/////)、格式、标点需规范统一,无错别字、无额外符号;[cut]和/////均单独作为分隔标识,前后无空格、无换行,直接衔接内容,助力镜头与剧情衔接连贯。
给workbuddy,临时公网服务器
我需要把一个后端服务跑成公网可访问的 HTTPS 地址。请直接在沙箱本地端口(比如 :3000)启动服务即可——你的沙箱环境会自动分配 <沙箱ID>.sh1.agentos-app.net 的 HTTPS 公网子域名,在腾讯云 CLB 层做 TLS 终止,再由沙箱内置的 sandbox-proxy 反代到本地端口。不用你自建 nginx、配置反向代理或申请证书,这些平台已经处理好了。启动后告诉我公网 https 域名,并验证能访问。