生成专业讲解视频分镜脚本,支持头脑风暴需求澄清。用于创建带有详细运镜指导、画面设计和旁白的时间轴分镜文档。当用户需要制作教学/讲解视频、概念演示视频,或需要Remotion视频分镜脚本时使用此skill。
Install
npx skillscat add oyyh-apple/video-storyboard-generator Install via the SkillsCat registry.
Video Storyboard Generator
通过头脑风暴与用户共同确定视频需求,然后生成结构化的讲解视频分镜脚本。
核心原则
段落是主题驱动的,不是标准化的:分镜的段落结构完全取决于视频主题和内容需求。不存在"标准5段式",每个视频的段落规划都应根据主题特点定制。
需求需要共同探索:用户可能对视频的具体表现形式不够清晰,需要通过头脑风暴一起确定时长、风格、主角、运镜风格等关键要素。
工作流程
阶段1:头脑风暴 - 需求澄清
当用户提出视频分镜需求时,首先进行头脑风暴,通过对话澄清以下要素:
必需明确的信息:
- 主题内容 - 视频要讲解的核心概念/技术/产品是什么?
- 目标受众 - 给谁看?(初学者/专业人士/普通大众)
- 核心信息 - 观众看完后应该记住什么?
需要共同决策的要素:
4. 视频时长 - 根据内容复杂度决定(30秒/1分钟/3分钟/5分钟)
5. 视觉风格 -
- 科技感(深蓝+粒子+神经网络)
- 活泼轻松(明亮色彩+卡通元素)
- 严肃专业(简洁+数据可视化)
- 其他自定义风格
- 主角/吉祥物 - 是否需要拟人化角色?(机器人/大脑/抽象图形/无角色)
- 旁白风格 -
- 专业权威型
- 风趣调侃型
- 亲和教学型
- 无旁白(纯视觉)
- 运镜偏好 -
- 快速动感(适合技术演示)
- 缓慢优雅(适合概念讲解)
- 混合节奏
澄清示例对话:
- "这个主题是技术概念还是产品介绍?"
- "目标观众是初学者还是专业人士?"
- "你希望视频风格是活泼轻松还是严肃专业?"
- "需要设计一个吉祥物角色吗?"
- "核心信息是什么?观众看完后应该记住什么?"
阶段2:段落结构设计
根据主题特点和头脑风暴结果,设计段落结构。段落类型可能包括(但不限于):
常见段落类型(根据主题选择):
- 开场引入(Hook)
- 问题/痛点陈述
- 核心概念解释
- 原理/机制展示
- 数据/案例展示
- 对比分析
- 实操演示
- 架构/流程展示
- 优势总结
- 应用场景
- 结尾号召(CTA)
设计原则:
- 段落数量根据时长和内容复杂度决定(通常3-8个段落)
- 每个段落服务于一个清晰的叙事目标
- 段落间有逻辑递进关系
阶段3:生成分镜脚本
基于确定的段落结构,生成包含以下要素的分镜脚本:
总体规格
- 视频标题和版本信息
- 总时长(秒数 + 帧数)
- 背景风格描述
- 视觉风格定义
- 旁白风格说明
- 主角/吉祥物设定
分镜段落
每个段落包含:
- 段落目标 - 该段落要传达什么信息
- 时间区间 - 开始和结束时间(秒)
- 画面顺序(镜头序列) - 段落内的多个镜头切换
- 每个镜头包含:
- 镜头编号(shot_id)
- 时间范围(time_range)
- 镜头类型(shot_type)
- 运镜描述(camera)
- 画面布局(layout)
- 视觉元素(visual)
- 过渡方式(transition)
- 每个镜头包含:
- 旁白内容 - 具体的解说词
OpenCode执行提示词
自动生成可在OpenCode中直接使用的提示词,用于执行视频制作:
提示词格式:
remotion,创建一个严格{X}秒(durationInFrames: {Y})的{风格}视频,总时长控制在{Z}分钟以内。
必须优化:
- 画面紧凑:元素满屏分布,多用grid/flex多列布局,文字/图标放大填充80-90%屏幕,减少任何留白。
- 动画流畅自然:所有过渡用spring()高系数弹簧 + interpolate多关键帧 + easeInOut + stagger子元素延迟,避免任何生硬线性或突然出现。
- 运镜专业动态:严格按分镜运镜描述实现({运镜列表}),节奏{节奏描述}。
背景{背景描述},主色{主色},代码高亮专业,{视觉风格描述},{背景音乐},{旁白描述},自动生成旁白同步字幕。
严格按以下分镜实现,分镜细节:[完整的分镜脚本内容,去除换行符压缩为长文本]阶段4:文件保存
确认保存位置:
在生成分镜文档前,必须确认文件保存位置。
默认位置: 用户当前项目的 /docs 文件夹
- 如果
/docs文件夹不存在,询问是否创建 - 提供其他可选位置供用户选择
文件名格式: {标题}_storyboard.md
示例对话:
- "分镜脚本将保存在您项目的/docs文件夹中,文件名为'{标题}_storyboard.md',确认吗?"
- "您希望将分镜文件保存在其他位置吗?"
运镜类型参考
参考 references/camera-movements.md 获取完整运镜类型和技术参数。
常用运镜类型:
- 推近 (Dolly In) - 强调主体,适合开场和重点
- 拉远 (Dolly Out) - 展示全景,适合过渡和总结
- 环绕 (Orbiting) - 360度展示,适合3D结构
- 跟拍 (Tracking) - 跟随运动,适合流程展示
- 摇移 (Pan) - 水平移动,适合宽画面展示
- 特写 (Close-up) - 强调细节,适合数据展示
参考资产
assets/storyboard-template.md- 分镜模板文件(变量化模板)references/camera-movements.md- 运镜类型参考手册references/story-patterns.md- 常见叙事模式参考
最佳实践
头脑风暴阶段
- 不要假设用户知道他们想要什么
- 提供选择而非开放式问题("A风格还是B风格?"比"你喜欢什么风格?"更好)
- 根据主题特点给出建议(技术主题推荐科技感,产品推荐活泼风格)
段落设计阶段
- 开场前3秒必须抓住注意力
- 每个段落时长控制在8-20秒
- 复杂概念拆分成多个短段落
- 保持段落间的视觉和叙事连贯性
画面顺序设计
- 开场段落(建议3个镜头):快速切入 → 主体展示 → 细节特写
- 核心段落(建议2-4个镜头):环绕展示 → 跟随流程 → 特写强调
- 结尾段落(建议2个镜头):汇聚元素 → 拉远全景
- 镜头时长:单个镜头通常3-6秒,过渡0.5-1秒
脚本生成阶段
- 运镜描述要具体(速度、方向、缓动函数)
- 画面布局强调紧凑(80-90%占屏)
- 旁白与视觉同步,避免"看字听音"
- 技术提示词包含所有视觉规范
输出格式
1. 分镜文档 (.md)
生成的分镜脚本包含以下章节:
# [主题] 讲解视频分镜脚本
## 视频总体规格
- 时长:X秒(Y帧)
- 背景:[背景风格]
- 风格:[视觉风格]
- 主角:[主角描述]
- 旁白:[旁白风格]
## 分镜段落设计
### 段落1:开场引入(0-12秒)
**段落目标**:建立兴趣,介绍主题背景
**画面顺序**:
#### 镜头1:推近 (Dolly In)(0-3秒)
- **运镜**:从全黑快速 spring dolly in,主角从底部升起
- **布局**:主角占屏40%,标题满幅覆盖
- **视觉**:标题文字从四角stagger飞入汇聚
- **过渡**:无缝过渡
#### 镜头2:环绕 (Orbiting)(3-12秒)
- **运镜**:360°环绕展示主角
- **布局**:主角居中,周围环绕关键信息气泡
- **视觉**:主角表情变化,背景粒子动态流动
- **过渡**:平滑过渡
**旁白**:"大家好!今天介绍..."
## 技术实现提示词
[技术规范]
## OpenCode执行提示词(直接复制使用)
[可直接在OpenCode中使用的提示词]
## 文件保存位置
建议保存位置:./docs/[标题]_storyboard.md2. OpenCode提示词格式
生成的OpenCode提示词为单行长文本格式,可直接复制到OpenCode中执行:
remotion,创建一个严格{X}秒(durationInFrames: {Y})的{风格}视频...
必须优化:
- 画面紧凑:...
- 动画流畅自然:...
- 运镜专业动态:...
背景{背景}...自动生成旁白同步字幕。
严格按以下分镜实现,分镜细节:段落1(时间)目标-...镜头序列-镜头1(0-3秒)-推近(Dolly In),镜头2(3-12秒)-环绕(Orbiting);旁白-... | 段落2(时间)目标-...镜头序列-镜头1(12-16秒)-推近(Dolly In),镜头2(16-24秒)-环绕(Orbiting);旁白-... | ...提示词特点:
- 分镜细节被压缩为单行长文本(去除换行符,用" | "分隔各段落)
- 每个段落包含:目标、镜头序列(多个镜头)、旁白
- 镜头序列描述每个镜头的时间范围和类型
- 可直接复制粘贴到OpenCode聊天框中使用
3. 文件保存
必须确认保存位置
默认保存位置:./docs/[标题]_storyboard.md
对话示例:
✅ 分镜脚本已生成完毕!
📄 建议保存位置:./docs/microGPT_storyboard.md
❓ 是否确认保存到该位置?
- 输入 "确认" 使用默认位置
- 输入其他路径自定义保存位置
- 例如:./docs/video/microGPT.md注意事项:
- 如果
/docs文件夹不存在,询问是否自动创建 - 文件名自动处理特殊字符(替换为下划线)
- 建议用户保留生成的 .md 文件作为参考文档
CLI 工具使用
除了通过 Claude 对话生成分镜脚本,还提供了命令行工具 cli.py,支持更灵活的使用方式。
前置要求
cd scripts
pip install -r requirements.txt交互式模式(推荐新手)
python cli.py interactive跟随 5 步向导:
- 基本信息(标题、时长)
- 视频类型(4种预置)
- 视觉设置(角色设置)
- 输出格式(Markdown/JSON/YAML)
- 确认生成
命令行模式(推荐高级用户)
# 基本用法
python cli.py generate --title "视频标题" --duration 60
# 指定视频类型
python cli.py generate --title "技术讲解" --video-type tech_tutorial --duration 90
# 导出 JSON 格式
python cli.py generate --title "产品介绍" --format json --duration 30
# 指定输出路径
python cli.py generate --title "教程" --output ./custom/path.md批量生成
创建 batch.yaml 配置文件:
- title: "视频1"
duration: 60
video_type: "tech_tutorial"
- title: "视频2"
duration: 30
video_type: "product_promo"运行批量生成:
python cli.py batch batch.yaml格式转换
将已有 Markdown 分镜转换为 JSON/YAML:
# 转换为 JSON
python cli.py convert --input ./docs/examle.md --format json
# 转换为 YAML
python cli.py convert --input ./docs/example.md --format yaml --output ./output/example.yaml参数参考
generate 命令参数
| 参数 | 简写 | 说明 | 默认值 |
|---|---|---|---|
| --title | -t | 视频标题(必填) | - |
| --duration | -d | 视频时长(秒) | 60 |
| --video-type | -v | 视频类型 | - |
| --config | -c | 配置文件路径 | - |
| --output | -o | 输出文件路径 | ./docs/ |
| --format | -f | 输出格式 | markdown |
视频类型
tech_tutorial- 技术教程product_promo- 产品推广story_telling- 故事讲述data_insight- 数据洞察
配置文件
默认配置
位置:config/default-config.yaml
设置默认值:
- 视频 FPS、默认时长
- 默认视觉风格
- 输出目录、文件名模式
- 镜头序列设置
视频类型配置
位置:config/video-types.yaml
4 种预置视频类型的完整配置模板。
完整输出示例
头脑风暴或 CLI 完成后,生成的内容包含:
- 结构化的分镜文档 - 便于人类阅读和参考
- OpenCode执行提示词 - 可直接用于执行视频制作
- 保存位置确认 - 确保文档妥善保存
📌 Claude Skill 配置说明
如何让 Claude 加载本 Skill
本 skill 可以通过以下方式被 Claude 加载:
方法 1: 通过 Claude.config 配置(推荐)
如果你使用的是支持 skill 功能的 Claude 环境:
- 将本 skill 文件(
SKILL.md)放置在 Claude 可访问的目录中 - 在配置中添加 skill 路径
- 重启 Claude 或刷新配置
方法 2: 直接粘贴到对话中
在 Claude 对话中直接输入:
@video-storyboard-generator然后提出你的视频分镜需求即可。
方法 3: 作为参考文档参考
即使不作为 skill 加载,也可以:
- 告诉 Claude:"请参考 video-storyboard-generator skill 的工作流来帮我生成视频分镜"
- 或将 SKILL.md 的部分内容复制粘贴给 Claude
Skill 自动触发场景
本 skill 会在以下情况被触发:
- 用户提到"视频分镜"、"storyboard"、"讲解视频"等关键词
- 需要制作 Remotion 视频分镜脚本
- 需要设计视频叙事结构
- 需要规划镜头运镜
💡 和其他 Skill 的配合
本 skill 可以与以下 skill 配合使用:
- remotion-best-practices - 生成 Remotion 视频代码时参考最佳实践
- video-editing - 视频剪辑建议(如果有)
- script-writing - 剧本写作技巧(如果有)
🔄 使用场景示例
场景 1:技术概念讲解
用户:我想做一个 Transformer 注意力机制的分镜脚本
Claude(自动触发本 skill):
- 头脑风暴 → 确认:技术教程、60秒、科技风、AI机器人助手
- 段落设计 → 5个段落,每个3-4个镜头
- 生成带镜头序列的分镜脚本
- 用户可以要求调整某个镜头的运镜或时长
场景 2:产品发布视频
用户:帮我设计一个产品的发布视频分镜,30秒
Claude:
- 头脑风暴 → 确认:产品推广、30秒、活泼风格、产品吉祥物
- 段落设计 → 3个段落(开场/核心/结尾),快速节奏
- 生成分镜脚本,每个段落2-3个镜头,强调快速切换
场景 3:教学视频脚本
用户:我需要一个3分钟的 AI 基础教学视频
Claude:
- 头脑风暴 → 确认:故事讲述、180秒、温暖柔和风格、小导师角色
- 段落设计 → 7个段落,逐步深入讲解
- 生成长分镜脚本,每个段落2-3个镜头
⚠️ 重要提示
必经步骤:头脑风暴
本 skill 的核心优势是头脑风暴引导,不要跳过!
❌ 不要这样:
用户:生成一个60秒的分镜脚本
Claude:[直接给出模板化的分镜]✅ 应该这样:
用户:生成一个60秒的技术讲解分镜
Claude:好的!在生成前,我想先确认一下...
(Claude 会引导你:主题、受众、风格、时长、角色、运镜...)
[头脑风暴完成后,再生成定制化的分镜脚本]镜头序列的重要性
从 v2.0.0 开始,画面顺序(镜头序列)是核心功能:
- 每个段落通常包含 2-4 个镜头
- 每个镜头独立指定:
- 时间范围(如 "0-3秒")
- 镜头类型(推近/环绕/特写等)
- 运镜描述
- 画面布局
- 视觉元素
- 过渡方式
优势:
- 精确控制每个镜头的时长
- 丰富视觉表达
- 明确运镜规划
完整输出示例
头脑风暴或 CLI 完成后,生成的内容包含:
- 结构化的分镜文档 - 便于人类阅读和参考
- OpenCode执行提示词 - 可直接用于执行视频制作
- 保存位置确认 - 确保文档妥善保存