Install
openclaw skills install motion-video-skill根据文本、脚本或 Markdown 生成结构化讲解动画视频,使用 Web 页面制作和预览 AE / PR 风格的动效。必须严格根据解说文本规划合理的动画播放与切换时间,先生成预览,只有在用户明确确认后才导出 mp4。适用于知识讲解、产品介绍、口播配套动画、字幕强化、步骤演示和数据解说视频。
openclaw skills install motion-video-skill本技能用于构建结构化讲解动画视频,而不是让 AI 直接输出一份不可维护的随意 HTML。
核心工作流是:
用户输入 -> 拆分分镜与讲述节奏 -> 按解说文本同步 timing -> 生成 movie.json -> Web 预览 -> 自然语言编辑 -> 用户确认 -> 导出 mp4
node_modules、Chromium 浏览器二进制和历史导出产物。{baseDir} 安装依赖;只有在需要导出 mp4 时才安装 Playwright 浏览器。ffmpeg;仅做预览和结构编辑时不依赖它。cd {baseDir}
npm install
npx playwright install chromium
system fallback。movie.json 是唯一事实来源,不能只改最终 HTMLscene,每个 scene 只负责一个讲述重点scene.durationMs、元素入场时间和分步出现节奏必须优先根据 scene.narration 推导,不能凭感觉平均分配pending,不能直接开始合成references/movie-schema.md
定义 movie.json 的结构、scene 与 element 字段。references/animation-rules.md
定义“文本内容 -> 讲解动画”的映射规则。scripts/sync_timings.js
按 scene.narration 自动同步场景时长和动画开始时间。references/template-catalog.md
定义当前可选模板、主题配色、适用场景与 UI 风格。references/tts-catalog.md
定义当前支持的 TTS provider、确认要求和兜底规则。references/prompt-patterns.md
定义从原始文本生成分镜、scene 和节奏的提示模式。scripts/init_project.js
创建新的独立项目目录与 starter movie.json。scripts/validate_movie.js
校验 movie.json 是否满足最小结构要求。scripts/render_preview.js
根据 movie.json 生成可播放的 preview.html。scripts/export_video.js
用浏览器逐帧截图并调用 ffmpeg 导出 .mp4,必须显式确认。scripts/build_project.js
一键完成 timing 同步、校验、预览生成;只有显式确认后才导出视频。scripts/list_catalog.js
列出可用模板、主题与 TTS provider。scripts/configure_tts.js
先把 TTS provider、language、speed 和 fallback 写入 movie.json,并保持 pending。scripts/confirm_tts.js
在用户明确选定 voice 后,把 voice 写入 movie.json,并把状态切到 confirmed。scripts/synthesize_voice.js
生成逐 scene 音频。当前支持 MiniMax 和本机朗读兜底;本机兜底兼容 macOS 与 Windows。assets/themes/*.json
定义主题颜色、字体、背景与高亮色。assets/templates/*.json
定义预设模板的 UI 风格、舞台样式和推荐主题。samples/example-movie.json
示例动画工程。references/animation-rules.md,把用户原文拆成 4 到 8 个讲述节拍。references/movie-schema.md,把每个节拍映射成 scene,同时补齐 scene.narration。{baseDir}/projects/<slug>/movie.json 中写入结构化分镜,并选择合适的 template。node {baseDir}/scripts/build_project.js {baseDir}/projects/<slug>。该命令会先同步 narration timing,再生成 preview.html。references/template-catalog.md 给出 2 到 4 个模板选项,并明确推荐 1 个;theme 默认跟模板走。references/tts-catalog.md 确认 provider、language、speed、fallback,先写入 pending 的 audio 配置。node {baseDir}/scripts/confirm_tts.js {baseDir}/projects/<slug> --voice <voice-id> ...,再运行 node {baseDir}/scripts/synthesize_voice.js {baseDir}/projects/<slug>。node {baseDir}/scripts/build_project.js {baseDir}/projects/<slug> --export --confirm-export。在本技能目录下运行:
cd {baseDir}
npm install
npx playwright install chromium
node scripts/list_catalog.js
node scripts/init_project.js demo-video "AI 剪辑讲解" --template creator-pop
node scripts/sync_timings.js samples/example-movie.json
node scripts/configure_tts.js projects/demo-video --provider minimax --language zh-CN --speed 1.0 --fallback system
node scripts/list_tts_voices.js minimax
node scripts/confirm_tts.js projects/demo-video --voice "Chinese (Mandarin)_Reliable_Executive" --provider minimax --language zh-CN --speed 1.0 --fallback system
node scripts/synthesize_voice.js projects/demo-video
node scripts/validate_movie.js samples/example-movie.json
node scripts/render_preview.js samples/example-movie.json outputs/example-preview.html
node scripts/export_video.js samples/example-movie.json outputs/example.mp4 --confirm
node scripts/build_project.js projects/demo-video
node scripts/build_project.js projects/demo-video --export --confirm-export
scene 必须有稳定的 idelement 必须有稳定的 idscene.narration 不能为空或应能从当前元素文本推导scene.durationMs 要真实反映讲解节奏,并且优先根据解说文本自动同步x, y, w, h1280 x 720animation 字段里scene.timingMode 设为 manualaudio.confirmationStatus 在用户确认前必须保持 pendingfade-upitemStaggerMsslide-left / slide-rightpopfade / popscene.narration 作为 timing 真相来源itemStaggerMs 要根据解说内容长度自动调整,不能固定套用同一个值当用户说“第二段太长”“第三个要点出现快一点”“把结论页更像 AE 的 kinetic typography”时:
sceneelementmovie.jsonpreview.html当用户还没把配置说全时,优先按这个顺序引导,不要一次把所有问题都堆给用户:
建议用“推荐项 + 2 到 3 个备选”的方式提问,而不是开放式追问。只有当用户明确说“你来定”时,才可以直接使用推荐模板和其默认 theme。
signal-stageeditorial-boardcreator-popmono-frameprovider、voice、language、speed、fallbackProvidermicrosoft-azure、openai、minimax、doubao、systemsystem,不能假装已经原生接通”system 作为 fallbacksystem fallback 在 macOS 使用 say,在 Windows 使用 PowerShell + System.Speechffmpeg 合成 .mp4