生成专业讲解视频分镜脚本,支持头脑风暴需求澄清。用于创建带有详细运镜指导、画面设计和旁白的时间轴分镜文档。当用户需要制作教学/讲解视频、概念演示视频,或需要Remotion视频分镜脚本时使用此skill。
Install
npx skillscat add oyyh-apple/video-storyboard-generator Install via the SkillsCat registry.
This skill generates structured video storyboard scripts with detailed shot guidance, visual design, and narration for educational or concept demonstration videos. It helps clarify requirements through collaborative brainstorming to determine content, audience, duration, and visual style. Developers use it when creating instructional videos or Remotion-based video compositions requiring precise timing and cinematic direction.
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执行提示词 - 可直接用于执行视频制作
- 保存位置确认 - 确保文档妥善保存