--- name: manim-video-teacher description: 专注于使用 Manim 生成动画教学视频的完整流程与专业建议。适用于用户用中文提示语让 Codex 生成脚本、分镜、Manim 代码、渲染命令或优化教学视频质量与节奏,并输出 MP4。 --- # Manim 动画教学视频 ## 快速目标 用用户的中文提示语,产出可执行的 Manim 方案:脚本/分镜/代码/渲染命令,并解释关键教学设计选择。 ## 先收集的最少信息 - 主题与受众:讲什么、给谁看 - 时长与节奏:总时长、快慢、是否分章节 - 画面风格:黑板风、简洁线性、是否强调配色 - 数学/代码内容:公式、伪代码或示例数据 若用户未提供,先做合理默认并声明假设。 ## 工作流程 1. 把用户提示语改写成教学脚本(结构化段落:引入-核心-总结)。 2. 为每段脚本给出分镜(画面目标、关键动画、旁白要点)。 3. 设计视觉语言(颜色/字号/对齐/高亮规则),保持一致。 4. 生成 Manim 代码(Scene 结构清晰、变量命名明确)。 5. 给出渲染命令与参数建议(分辨率、fps、质量)。 6. 用脚本生成旁白音频,并可同步产出字幕(SRT)。 7. 用脚本合成视频与音频,必要时把字幕嵌入输出。 8. 用脚本生成单独封面图(适合传播/分享平台)。 9. 简要解释关键教学设计选择(为何这样分镜/过渡/强调)。 ## 教学脚本模板 用短句、可口播的节奏: 1. 引入:问题/现象/动机(1-2 句) 2. 定义:核心概念(1-3 句) 3. 机制:关键步骤或推导(分 2-5 步) 4. 示例:用 1 个具体例子验证 5. 总结:一句话回扣重点 ## 分镜粒度建议 - 15-30 秒一个镜头块,避免信息密度过高 - 每一步推导或关键结论单独成镜头 - 每个镜头最多 1-2 个主视觉对象 ## Manim 代码约定 - 使用 `Scene` 或 `MovingCameraScene`,尽量保持单场景可复用。 - 把复杂动画拆成小函数(如 `show_definition()`)。 - 用 `VGroup` 组织元素,统一对齐与间距。 - 用 `FadeIn/FadeOut/Transform/ReplacementTransform` 传达逻辑过渡。 - 文本尽量用 `Tex/MathTex` 保持数学排版一致,纯中文说明用 `Text`。 ## 默认技术参数 - 分辨率:1920x1080 - fps:30 - 渲染质量:`-qh` 作为默认 - 输出:MP4 ## 视觉与节奏默认值 - 主色:蓝色或橙色二选一,保持一致 - 强调色:亮黄或红色,仅用于关键结论 - 留白:屏幕边缘留 10-15% 安全区 - 口播节奏:每分钟 120-150 字 ## 脚本优先 优先使用 `scripts/` 下的脚本完成语音生成、合成与封面,不要求用户手写命令。 可用脚本: - `scripts/tts_generate.py`:把旁白文本转为音频(edge-tts),可用 `--subs-output subs.srt` 输出字幕 - `scripts/concat_audio.py`:合并多段旁白(ffmpeg concat) - `scripts/mux_av.py`:合成视频与音频(ffmpeg),可用 `--subs subs.srt` 嵌入字幕 - `scripts/make_cover.py`:生成 16:9 封面图(Pillow) - `scripts/pipeline.py`:一键执行语音、合成与封面生成 - 可选参数:`--dry-run` 输出命令不执行,`--verbose` 显示执行命令,`--log-file` 记录命令列表(默认覆盖),`--append-log` 追加记录 - 字幕参数:`--subs-output subs.srt`(TTS 生成字幕),`--subs subs.srt`(使用已有字幕) 若脚本报缺依赖,提示用户安装对应依赖即可(edge-tts、ffmpeg、Pillow)。 示例(推荐): ```bash python scripts/pipeline.py \\ --video manim.mp4 \\ --tts-file narration.txt \\ --subs-output subs.srt \\ --cover-title "二次函数顶点式" \\ --cover-subtitle "60 秒掌握" \\ --output output.mp4 ``` ## 封面图规格与建议 - 比例:16:9 - 尺寸:1920x1080(与正片一致) - 文字层级:标题 1 行 + 副标题 1 行(可选) - 信息结构:左大标题,右侧示意图或关键公式 - 颜色:主色 + 强调色,避免超过 3 种主色 - 导出:PNG,保证清晰度 ## 用户可能的触发示例(中文) - “用 Manim 做一个 60 秒讲解二次函数顶点式的视频。” - “做一个教学动画解释矩阵乘法,画面简洁。” - “把这个概念讲给高中生,生成 Manim 代码和渲染命令。” ## 输出格式建议 - 先给脚本与分镜 - 再给 Manim 代码(可直接运行) - 提供 `scripts/pipeline.py` 的使用方式(优先) - 如需分段合成或自定义流程,给出对应脚本用法(`tts_generate.py`/`concat_audio.py`/`mux_av.py`) - 提供封面图设计建议与导出规格(对应 `make_cover.py`) - 最后给渲染命令与参数说明(Manim) - 如果用户要旁白,附带配音台词与字幕(SRT) ## 常见优化点 - 重要概念用颜色/加粗/放大突出 - 动画节奏宁可慢一点,留白便于理解 - 公式推导分步出现,避免一次性堆叠 - 使用 `Wait()` 给观众思考时间 ## 质量检查清单 - 逻辑顺序明确,镜头之间过渡自然 - 文字不过密,屏幕无明显拥挤 - 关键步骤已用颜色或动画强调 - 渲染参数与目标平台匹配