# Create Blender Story Video

> 将一句视频创意或既有视觉参考推进为风格锁定、分镜、AI 参考图、Blender MCP 建模与摄像机、低负载可断点渲染、只读渲染与剪辑监控页、DaVinci Resolve MCP 或脚本 API 剪辑，以及经过媒体校验的 4K 30 fps H.265 Rec.709 MP4。支持自主创作、共同创作和参考复刻三种模式。用于制作 3D 短片、竖屏氛围片、产品或概念视频，把想法、参考图、Blender、达芬奇串成可重复工作流，或为长时间渲染与剪辑建立安全进度页面时。

- Skill: `yoruuuchan/create-blender-story-video` (Agent Skill, multi-file: 10 files)
- Install (CLI): `npx skillmds@latest add yoruuuchan/create-blender-story-video`
- Raw SKILL.md: https://api.skillmd.com/api/skills/yoruuuchan/create-blender-story-video/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: yoruuuchan (https://skillmd.com/u/yoruuuchan)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/yoruuuchan/create-blender-story-video

---


# Create Blender Story Video

先选择创作模式，再把昂贵的 3D 制作拆成逐步变贵的阶段：确定创意与风格，完成分镜和参考图，建立可验证的 Blender 场景，最后正式渲染与剪辑。把关键状态写入项目文件，不依赖聊天上下文续跑。

## 核心约束

- 默认交付竖屏 9:16、2160×3840、30 fps、H.265/HEVC Main、`yuv420p`、有限范围 Rec.709；横屏项目使用 3840×2160。只有用户明确要求时才改为其他规格。
- 在制作前确定自主创作、共同创作或参考复刻模式；不要一边声称自主推进，一边继续要求逐阶段确认。
- 先锁定风格，再生成各镜头参考图；不要在镜头之间临时改写风格形容词。
- 共同创作在风格与分镜、参考图、Blender 预览设置三个用户确认点；其他模式仍执行相同技术闸门，但按模式决定是否暂停。
- 使用 Blender MCP 做 GUI 内的交互建模、观察和调整；使用可复现的 Blender Python 脚本保存构建和动画操作；使用后台 Blender 进程做正式渲染。
- 同时使用参考图对照和可测量的场景事实验收 Blender 结果；不要把视觉模型判断或 MCP 成功返回当成唯一证据。
- 正式渲染输出逐帧 PNG，不直接输出 MP4。只有完整校验帧序列后才编码镜头视频。
- 让正式渲染由独立监督进程管理，把心跳、批次、重试和已验证帧写入磁盘；Blender、Codex 或整机重启后都从真实状态恢复，不依赖前台会话。
- 监控页是可选的只读观察面，不是控制面。页面或本地服务退出不得影响 Blender、Resolve 或渲染监督进程；默认只监听 `127.0.0.1`。
- DaVinci Resolve MCP 和官方脚本 API 均可使用。选择当前已验证、覆盖任务完整且步骤更少的入口，不固定偏好；不要自行安装第三方 MCP，也不要在 Resolve 连接失败时静默换成其他剪辑器。
- 保存源文件、脚本、日志、帧序列和项目备份。不要把唯一成果留在 Blender 或 Resolve 的未保存会话中。

## 启动与默认值

先读取工作区的 `AGENTS.md` 和已有项目文件，再检查 Blender、Blender MCP、GPU、磁盘、图像生成能力、Resolve 进程、Resolve MCP 与脚本 API。若用户已有 `.blend`、分镜、参考图、镜头视频或 Resolve 项目，先恢复真实进度，不要从头重建。

只询问会改变创作方向或交付规格的问题，最多一次提出五个。优先确认：

1. 核心对象或故事是什么。
2. 希望观众感受到什么。
3. 时长、平台和画幅是否有硬性要求。
4. 必须出现或绝不能出现什么。
5. 是否需要对白、字幕、音乐或音效。

若用户未指定，采用以下建议值并明确告知：

- 30 秒、5 个镜头、竖屏 9:16、30 fps。
- 风格化 Eevee 制作；预览使用 540×960 或 1080×1920，批准后的正式帧默认原生渲染为 2160×3840。
- 只有原生 4K 基准测试显示不可接受的稳定性或耗时风险、且用户明确同意时，才使用 1080×1920 渲染后 2× 放大，并把交付标记为 `upscaled_4k`，不冒充原生 4K。
- 无对白；只在用户提供或批准声音方案后制作音轨。

## 选择工作模式

把所选模式写入 `creative-brief.md` 和 `storyboard.json` 的 `production_mode`，分别使用 `autonomous`、`co_create`、`reference_rebuild`。用户已经明确模式时直接采用；只有不同模式会实质改变参与方式时才询问。

1. **自主创作：** 用户明确全权交付创意和工程决策时使用。连续推进各阶段，把方案与取舍写入 `creative-decisions.md`，不为三个创作确认点暂停。遇到新增费用、缺少必要凭据或无法安全推断的输入时再停下。
2. **共同创作：** 用户希望参与方向判断，或未表达完整授权时默认使用。在三个确认点暂停，集中展示廉价的决策材料；确认后不重复询问已经放行的内容。
3. **参考复刻：** 用户提供影片、图片、品牌规范或现有镜头并希望沿用其视觉语言时使用。先拆解可迁移的构图、材质、灯光、节奏和摄像机语法，再写成本项目自己的风格锁定与分镜；不要复制无授权资产。除非用户另行授权自主推进，否则沿用共同创作的确认行为。

模式只控制谁做决定，不降低技术验收标准。切换模式时记录原因、已确认内容和下一阶段，不重新完成已经通过的工作。

## 建立项目状态

在项目根目录持久化这些成果，沿用已有命名时不要另建平行结构：

```text
creative-brief.md
creative-decisions.md
style-lock.md
storyboard.md
storyboard.json
references/shot_01.png
references/generation-manifest.json
shot-status.json
blender/*.blend
blender/scripts/*.py
previews/shot_01/
production-renders/shot_01/frame_000001.png
render/render-state.json
render/resume-render.ps1
render/logs/
monitor/index.html
monitor/server.py
monitor/monitor-config.json
edit/*.lua
edit/resolve-run.json
backups/
delivery/final.mp4
workflow-retrospective.md
```

自主创作时创建 `creative-decisions.md`，进入 Resolve 时创建 `edit/resolve-run.json`；不为未采用的路径创建空占位文件。

让 `storyboard.json` 成为生产事实的机器可读来源。根级至少记录 `production_mode`、画幅、交付分辨率、帧率、总帧数、编码器、像素格式、色彩空间和声音方案；每个镜头至少记录：

- `id`、`frame_start`、`frame_end`、`duration_frames`。
- `subject_action`、`camera_action`、`hold_frames`。
- `camera`、`reference_path`、`output_path`。
- `audio_cue`、`acceptance_checks`、`status`。

让 Markdown 文件供用户审阅。让 `shot-status.json` 保存各镜头技术闸门、证据路径、未解决问题和下一动作，不把瞬时进度只留在聊天里。

## 工作流

### 1. 形成创意并锁定风格

先提出一个推荐方向，而不是列出无穷选项。把方向写入 `creative-brief.md`：

- 一句话前提与核心情绪。
- 目标观众、平台、时长和画幅。
- 视觉叙事弧线与结尾。
- 必须保留的内容和禁区。

再写 `style-lock.md`，固定：

- 类型与时代。
- 主色、辅色和材质语言。
- 光源方向、色温、雾与对比度。
- 镜头焦段族、机位高度、构图和运动速度。
- 建筑或角色比例规则。
- 纹理、颗粒、后期和字体规则。
- 明确的负面约束。

在文件末尾生成一段可逐字复用的 `STYLE_CAPSULE`。后续每张参考图只增加镜头内容，不改写该段风格。

参考复刻模式先从用户素材提取风格规则，再生成 `STYLE_CAPSULE`；自主创作模式把选定方向和放弃其他方向的理由写入 `creative-decisions.md`。

### 2. 写成可生产的分镜

若已确定音乐，先分析 BPM、拍点相位、段落和重音，把可用切点映射到准确帧号，再确定镜头时长。不要先定死分镜再强行把音乐塞进去。

按 30 fps 把时长换算为连续、不重叠、不缺口的帧范围。每个镜头至少写明：

- 镜头编号、叙事目的、起止帧和时长。
- 单一主要主体动作、景别、焦段、机位、摄像机动作和主体阻挡关系。
- 场景、动作、灯光变化与连续性要求。
- 入点、出点、落定后的停留帧、转场、字幕、音乐和音效提示。
- 参考图提示词与 Blender 摄像机名。
- 可验证的构图、比例、轮廓、遮挡和连续性验收条件。

让每个镜头只承担一个主要视觉动作，并给关键信息留出呼吸时间。默认用少而清晰的镜头，不用快速切镜掩盖尚未确定的空间。对 30 秒氛围片，优先 4–6 个镜头。

**确认点 1：** 用一屏内的创意摘要、风格锁定和完整分镜请用户确认，或按当前模式记录内部放行。

### 3. 生成一致的参考图

开始生成前完整读取 [reference-gates.md](references/reference-gates.md)。

调用可用的图像生成能力，优先使用用户指定的 Image 2：

1. 先生成一张代表全片的风格母图。
2. 母图通过当前模式对应的用户确认或内部放行后，把母图和同一 `STYLE_CAPSULE` 作为各镜头的共同参考。
3. 为每个镜头生成独立的 9:16 图片，不把多镜头画进同一张图。
4. 不在参考图里生成字幕、UI 或片名；把文字留给剪辑阶段。
5. 保存原图并生成一张带镜头编号的联系表。
6. 在 `references/generation-manifest.json` 记录模型、尺寸、提示词、输入参考、输出路径和生成任务 ID；记录服务返回的 seed 时一并保存，不虚构不存在的 seed。

若风格漂移，回到母图作为图像参考，不要只靠堆叠更多形容词修补。

通过参考图就绪闸门后再进入 Blender。

**确认点 2：** 展示母图和逐镜头联系表，确认空间、镜头和风格，或按当前模式记录内部放行。

### 4. 用 Blender MCP 建立场景

先在 Blender GUI 中确认 MCP 连接、活动文件、场景、版本和当前摄像机。不要在后台模式启动 Blender MCP。

按以下顺序制作：

1. 建立共享世界、色彩管理和材质调色板。
2. 每个镜头建立独立 Collection，使用 `SHOT_01_*` 命名。
3. 只做几何块面和主光，建立 `CAM_SHOT_01_<lens>mm` 摄像机。
4. 渲染目标摄像机和必要辅助视角的低分辨率定帧，先验证构图、尺度、遮挡和轮廓。
5. 再补材质、灯光、关键细节与动画。
6. 把重复操作写成项目内 Blender Python 脚本。
7. 保存 blockout、approved 和 animation 三个检查点。

按 [reference-gates.md](references/reference-gates.md) 执行“对照 → 定位差异 → 单次定向修正 → 复测”，并在每轮后更新 `shot-status.json`。优先使用尺寸、比例、画面占比、居中、出框和遮挡等确定性检查；视觉判断用于解释差异，不替代场景事实。

不要在构图未确认前雕刻细节。不要仅凭 MCP 返回成功就认为场景正确；实际打开或渲染定帧检查。若同一问题连续出现，先检查对象层级、变换、约束和摄像机状态，不要继续盲目微调。

**确认点 3：** 提交每个镜头的预览定帧或 playblast。共同创作和参考复刻等待用户确认；自主创作记录内部放行后继续。

### 5. 正式渲染并断点续跑

进入正式渲染前，完整读取 [render-and-delivery.md](references/render-and-delivery.md) 和 [stability-and-recovery.md](references/stability-and-recovery.md)。

为每个镜头输出独立 PNG 序列和日志。先渲染短批次测量帧耗时、显存和画质，再选择正式 4K 档位。使用短批次、低优先级、有限线程、批间冷却和可校验的跳帧逻辑。让独立监督进程维护 `render/render-state.json`，不要把渲染生命周期绑定到 Codex 工具调用。若使用经批准的放大路线，在项目状态和最终报告中同时记录源分辨率与交付分辨率。

若 Blender 或驱动崩溃：

- 先确认进程、最后成功帧、stderr 和 crash 文件。
- 保留全部已完成帧。
- 只终止精确识别的挂起进程。
- 缩短批次并从已有帧续跑。
- 不因 Codex 窗口中断而把渲染进程绑定到前台工具调用。

若整机重启，先读取持久化状态、验证已有帧并检查 Windows 事件和崩溃证据，再重新启动监督进程。自动登录后续跑属于可选系统改动，只有用户明确批准并设置重启预算后才启用；不要无限自动重试导致循环重启。

完整校验帧数、编号、尺寸、颜色模式和每张 PNG 的可解码性后，再编码镜头 MP4。

### 6. 可选只读监控页

用户要求查看长时间渲染或剪辑状态时，完整读取 [monitor-dashboard.md](references/monitor-dashboard.md)。复制 `assets/render-monitor-dashboard/` 中的 `index.html`、`server.py` 和配置样例到项目的 `monitor/`。轻量只读服务优先读取 `render/render-state.json`、`shot-status.json` 和 `edit/resolve-run.json`，并用磁盘帧清单与最终媒体探测补足可验证事实；没有统一状态文件时必须标记为 `derived`。

内置页面默认采用 KUNLUN Design System，并使用中文主标签，只保留 Blender、GPU、HEVC、Rec.709 等必要技术缩写。若工作区 `AGENTS.md` 或用户指定了其他设计系统，以用户指定为先；视觉调整仍不得改变监控页的只读边界、真实数据标记和完成判定。

页面每 5 秒读取一次状态，只展示进度、最近完整解码帧、ETA、心跳、资源负载、恢复次数、镜头队列、Resolve 阶段和最终媒体校验。只绑定 `127.0.0.1`，只开放必要的 GET 路由，不提供启动、停止、重试或任意命令入口。若用户明确要求通过 Cloudflare 域名远程查看，先按参考文件执行数据脱敏、身份保护和只读传输设计；不要把本机路径、命令行、原始日志或控制接口公开。

### 7. 使用 Resolve 剪辑

进入 Resolve 前完整读取 [resolve-routing.md](references/resolve-routing.md)。同时探测 Resolve MCP 和项目内 Lua/Python 官方脚本 API，选择当前连接更稳定、覆盖操作完整且需要未验证步骤更少的入口。

按 `storyboard.json` 构建明确的时间线计划，先备份工程，再导入已验证镜头并编辑。把路由、能力探测、备份路径、时间线版本、媒体映射、渲染任务和结果写入 `edit/resolve-run.json`。

若两个接口都不可用，停在“已验证镜头 MP4”状态并报告具体阻塞；不要擅自安装第三方 MCP，也不要改用 Remotion、剪映或手工 GUI。

### 8. 验证并交付

至少验证：

- H.265/HEVC Main、2160×3840、30/1 fps、预期时长与准确帧数；已批准横屏项目改查 3840×2160。
- `yuv420p`、有限范围、Rec.709 matrix/transfer/primaries，以及 MP4 中的 `hvc1` 兼容标签。
- 音轨数量符合声音方案。
- 全片从头到尾可解码。
- 每个镜头中段和每个切点都有抽样帧。
- 最终文件大小、绝对路径和 SHA-256。

向用户交付最终 MP4、Resolve 项目备份或时间线导出、关键源文件路径，以及任何尚未完成的声音或字幕项。

## 完成标准

只有同时满足以下条件才宣布完成：

- 三个确认点已按所选模式通过、被明确跳过或完成内部放行。
- `shot-status.json` 中的必要技术闸门均为通过，或记录了用户明确接受的偏差。
- `.blend`、构建脚本、逐帧序列和剪辑工程均已保存。
- 帧序列和最终 MP4 均经过实际解码验证。
- 最终视频符合已确认的画幅、时长、帧率、色彩和音频方案。
- 没有把占位图、占位视频或测试导出误当成交付文件。

## 持续改进

每次交付后，把实测设置、平均帧耗时、崩溃原因、恢复方法、Resolve 接口差异和最终验证结果写入 `workflow-retrospective.md`。区分项目特例与可复用规律，向用户提出最小的技能修订建议；只有用户要求更新技能时才修改技能包。

