Summary
- 通用的知识教学视频制作技能,生成带配音的 Motion Canvas 动画视频。
- 核心工作流:内容分析 → 分镜脚本 → TTS音频 → 验证更新 → Motion Canvas代码 → 渲染验证
- 触发条件:需要制作任何主题的教学视频、科普讲解、技术原理演示
wangyendt/wayne-skills
通用的知识教学视频制作技能,生成带? 核心工作流:? 触发条件:需要制作任何主题的教学视频、科普讲解、技术原理演示
npx skills add wangyendt/wayne-skills --skill tutor-general
Related neighbors and high-traction skills in the same topics — useful to compare before installing.
Cross-product Zoom reference skill. Use after the workflow is clear when you need shared platfo…
1.8K installsAuthor or edit a custom HyperFrames composition when no specialized workflow fits, or when BRIE…
239.5K installsFoundation skill for MSW (MapleStory Worlds). Read this FIRST before anything else in MSW.
6.6K installsGeneral software development best practices covering code quality, testing, security, performan…
741 installsGeneral Counsel advisory for startups: contract review (MSA, SaaS, NDA, DPA, employment), IP st…
440 installsSearch for tokens or entities by name. Use when you have a token name and need the full address…
383 installsOther skills from wangyendt/wayne-skills.
npx skills add wangyendt/wayne-skills
Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.
main
Files included with this skill beyond the listing page.
SKILL.md
8,294 B
SUMMARY.md
322 B
⚠️ 重要声明:本技能受 tutor-math-geometry 启发,用 Motion Canvas 替代 Manim,适配更广泛的知识点讲解。
| 维度 | tutor-math-geometry | tutor-general |
|---|---|---|
| 主题 | 数学几何 | 任何知识点 |
| 渲染引擎 | Manim | Motion Canvas (TypeScript) |
| 代码风格 | Python | TypeScript |
| 动画类型 | 数学公式/图形 | 流程图/示意图/动画 |
WORKFLOW = [
// 步骤1: 内容分析
{
"step": 1,
"name": "analyze_content",
"input": "主题/文本/URL",
"output": "content_analysis.md",
"tasks": ["提炼核心概念", "确定讲解结构", "规划可视化方式"]
},
// 步骤2: 分镜脚本
{
"step": 2,
"name": "storyboard",
"input": "content_analysis.md",
"output": "{日期}_{主题}_分镜.md",
"tasks": ["定义幕结构", "设计画面/字幕/读白", "规划动画类型"]
},
// 步骤3: TTS生成
{
"step": 3,
"name": "generate_tts",
"input": "分镜脚本",
"output": "audio/audio_{三位幕号}_{幕名}.wav + audio_info.json",
"command": "python scripts/generate_tts.py audio_list.csv ./audio --voice xiaoxiao"
},
// 步骤4: 验证更新
{
"step": 4,
"name": "validate_audio",
"input": "分镜.md + audio/",
"output": "更新后的分镜.md(填充时长) + audio_info.json",
"command": "python scripts/validate_audio.py 分镜.md ./audio",
"check": ["音频存在性", "时长>0", "数量匹配"]
},
// 步骤5: Motion Canvas 脚手架
{
"step": 5,
"name": "scaffold",
"input": "分镜.md + audio_info.json",
"output": "src/scene.ts (伪代码框架)",
"template": "templates/scene_scaffold.ts",
"must_include": [
"createScene() - 场景创建",
"COLORS - 颜色定义",
"SCENES[] - 幕信息数组(从audio_info.json加载时长)",
"Motion Canvas API 调用"
]
},
// 步骤6: 生成代码
{
"step": 6,
"name": "implement",
"input": "脚手架 + 分镜.md + audio_info.json",
"output": "完整的 Motion Canvas 代码",
"rules": [
"根据分镜实现每幕动画",
"使用 @motion-canvas/2d 库",
"画面时长 >= 音频时长",
"TypeScript 类型正确"
]
},
// 步骤7: 检查与渲染
{
"step": 7,
"name": "check_and_render",
"input": "Motion Canvas 项目",
"output": "视频文件",
"command": "npm run export",
"check": ["TypeScript 编译", "动画同步", "导出成功"]
}
]
目标:理解主题,提炼核心概念,规划可视化方案。
## 内容分析
### 主题
{主题名称}
### 核心概念(3-5个)
1. 概念1:...
2. 概念2:...
3. 概念3:...
### 讲解结构
- 引入:...
- 展开:...
- 总结:...
### 可视化方案
- 概念1 → 流程图
- 概念2 → 示意图
- 概念3 → 动画演示
目标:定义视频结构,结尾预留音频文件名(时长为空)。
{日期}{主题}分镜.md
# 分镜脚本 - {主题名称}
## 分镜设计
### 第1幕:{幕名}
**画面**: ...
**字幕**: ...(简洁,≤20字)
**读白**: ...(详细,口语化)
**动画类型**: 淡入/移动/缩放/高亮
**时长**: {音频时长}
---
### 第2幕:{幕名}
...
## 音频生成清单
| 幕号 | 文件名 | 读白文本 | 时长 | 说话人 | 情感 |
|------|--------|----------|------|--------|------|
| 1 | audio_001_{幕名}.wav | "读白文本" | | xiaoxiao | 热情 |
| 2 | audio_002_{幕名}.wav | "读白文本" | | xiaoxiao | 平和 |
fade-in - 淡入fade-out - 淡出move - 移动scale - 缩放rotate - 旋转highlight - 高亮draw - 绘制(用于流程图)命令:
python scripts/generate_tts.py audio_list.csv ./audio --voice xiaoxiao
输出:
audio/audio001{幕名}.wavaudio_info.json命令:
python scripts/validate_audio.py 分镜.md ./audio
检查项:
模板:templates/scene_scaffold.ts
必须包含:
// 颜色定义
const COLORS = {
background: '#0f172a',
primary: '#4ecca3',
secondary: '#e94560',
highlight: '#ffc107',
text: '#ffffff',
};
// 幕信息(从 audio_info.json 加载)
const SCENES = [
{ id: 1, name: '开场', duration: 5.0 },
{ id: 2, name: '概念', duration: 10.0 },
// ...
];
// 场景创建
export function createScene() {
// ...
}
import {
Scene,
Circle,
Rect,
Line,
Text,
VGroup,
layout,
fadeIn,
any,
all,
waitFor
} from '@motion-canvas/2d';
// 创建圆形
const circle = new Circle({ radius: 50, fill: '#4ecca3' });
// 创建文字
const text = new Text({
text: 'Hello',
fontSize: 32,
fill: 'white'
});
// 动画序列
circle.fill('red', 1);
// 等待音频
yield* waitFor(audioDuration);
// 淡入
new Rect().opacity(0).fadeIn(1);
// 移动
new Circle().position([100, 0]).move([200, 0], 1);
// 高亮
new Circle().stroke('#ffff00', 0.5).back(0.5);
// 流程图
new Layout({ direction: 'row', spacing: 50 })
.add(new Rect())
.add(new Arrow())
.add(new Rect());
npm run serve
npm run export
| 维度 | Manim | Motion Canvas |
|---|---|---|
| 语言 | Python | TypeScript |
| 实时预览 | 需渲染 | 即时预览 |
| 适合 | 数学图形 | 流程/演示 |
| 输出 | 视频 | 视频/可交互 |
npm install
# 1. 复制模板
cp -r templates/* ./my-project/
# 2. 生成分镜脚本
# 编辑 {主题}_分镜.md
# 3. 生成 TTS
python scripts/generate_tts.py audio_list.csv ./audio
# 4. 验证音频
python scripts/validate_audio.py 分镜.md ./audio
# 5. 实现动画
# 编辑 src/scene.ts
# 6. 开发预览
npm run serve
# 7. 导出
npm run export
tutor-general/
├── SKILL.md # 本文件
├── README.md # 说明文档
├── scripts/
│ ├── generate_tts.py # TTS生成脚本
│ ├── validate_audio.py # 音频验证脚本
│ └── audio_list.example.csv # 示例
├── templates/
│ ├── scene_scaffold.ts # 脚手架模板
│ └── package.json # 项目模板
├── references/
│ └── storyboard_sample.md # 分镜示例
└── assets/
└── (静态资源)
npm run serve 实时查看效果