Communitygithub.com

andyluu98/VideoMotion

根据需求生成越南语视频,AI 担任导演,无预设模板:核心创意、脚本、VieNeu 语音、文字分镜、背景音乐、基于 Sonnet agent 并行搭建(HyperFrames + GSAP)、字幕、导出 MP4。当用户输入“/videomotion”、“làm video”、“视频解说”、“关于 X 的短片”或“把这篇变成视频”时触发。

VideoMotion 是什么?

VideoMotion 是一个专为 AI 代理(如 Claude Code 等)设计的越南语视频生成技能,核心思想是让 AI 真正担任导演,而不是依赖固定的模板。技能的工作流程包括:首先收集需求并生成 brief(包含主题、受众、核心信息、时长、风格、语音、音乐等参数),然后由 AI 导演构思核心创意(一个具象化的世界观、叙事主轴和贯穿全片的主角/物体),并撰写脚本(Script),使用 VieNeu 语音引擎生成语音。接着,AI 会对语音时间轴进行精确的逐句分镜(Storyboard),并添加时间锚点。渲染阶段采用并行架构:每个场景由独立的“vm-canh”代理(基于最新 Sonnet 模型,中等努力度)调用 HyperFrames 和 GSAP 进行视频化搭建。最后自动合成音频、添加字幕并导出 MP4 文件。该技能支持 91 种预设风格,并提供医生工具进行环境验证。主要适用于需要高质量、风格一致且叙事驱动的越南语短视频制作,尤其适合无模板化、高度定制的内容创作场景。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/andyluu98/VideoMotion/tree/HEAD/skills/videomotion

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

VideoMotion: AI 导演视频制作

任何模板化的视频制作都千篇一律。VideoMotion 为 AI 赋予其真正需要的东西:品味(91 种风格标签)、运动词汇(motion/dong-tu.md)以及一个由导演亲自编写的故事。你(主进程)是导演;每个场景交由 vm-canh 代理(最新 Sonnet,中等努力度)并行搭建。

VV="${CLAUDE_PLUGIN_ROOT}"
PY="$HOME/.motionfly/venv/Scripts/python.exe"; [ -x "$PY" ] || PY="$HOME/.motionfly/venv/bin/python"
export PYTHONUTF8=1 HF_HUB_DISABLE_PROGRESS_BARS=1

首次在当前会话中运行 python "$VV/tools/setup/doctor.py";若状态未显示 SAN SANG,则遵循 vm-cai-dat 技能。每个视频对应一个 videos/<slug>/ 目录(slug 不含音调,使用连字符)。

固定规则

  • 数据、名称、日期必须有来源。 新闻和数据必须查证;自行举例需注明“示例”。将来源记录到 brief.json 中。
  • 越南语必须带音调,不使用长破折号,朗读文本中不包含表情符号。
  • 文字使用 HTML 渲染,不在图像中绘制文字。

其余内容均为专业建议。

1. Brief

记录 brief.json:topic(主题)、audience(受众)、message(一句核心信息)、aspect(默认 9:16)、duration_s(默认 60 秒)、style(风格)、voice(默认 Ngọc Huyền)、music(默认 synth:<mood>)、sources(来源)、auto(自动)。仅询问无法推断的内容,每次一个问题,将建议的选项置于首位。如果用户说“全部自行处理”,则设置 auto: true。

2. 风格

  • 如果用户指定了风格名称,则使用该风格(在 styles/INDEX.md 中按越南语名称或 slug 查找)。
  • 如果未指定,则建议 3 种风格:一种 契合 主题,一种 风格迥异,一种 出人意料(参考 styles/nhip-video.md 中的速查表)。若为 auto 模式,则自动选择契合的风格。
  • 仔细阅读 styles/<slug>.md 和 styles/nhip-video.md(关于如何使用幻灯片标签制作视频)。
  • 如果标签包含 “视频版本” 部分,则核心创意、角色和故事板的外观应遵循该部分,并查看 docs/assets/styles/<slug>.jpg 图片以了解最终效果:用户因图片而选择风格,视频必须与图片相似。

3. 核心创意与脚本(唯一审核关口)

先构思核心创意。 一句话概括:视频发生在哪个 世界,沿着什么 主线,以及贯穿全片的 角色或物体 是什么。例如:“工厂如棋盘:每一种浪费都是一个敌人,AI 就像皇后,一步吃掉三个棋子。” 故事赋予视频灵魂;风格仅决定其外观。

编写 script.json:

{"title": "...", "voice": "Ngọc Huyền", "aspect": "9:16",
 "scenes": [{"id": "s1", "say": "第一句。 | 第二句后稍作停顿。", "intent": "场景意图"}], "pron": {}}
  • 1 分钟大约 150 到 170 个单词,5 到 9 个场景。前 3 秒作为引子。
  • 每个场景 1 到 3 句,每句不超过 25 个单词,使用口语化表达。| 表示 0.55 秒的停顿。
  • 使用 VieNeu 语音:句子需包含越南语主语,避免少于 5 个词的句子以及以英文名称开头的句子;数字使用阿拉伯数字书写。

向用户发送一个简短的表格:场景编号、朗读文本、预期的隐喻画面。等待用户审批(如果为 auto 模式,则跳过此步骤)。

4. 语音

遵循 vm-giong 技能。完成后生成 voice.wav 和 words.json。

5. 分镜

基于 words.json 中的真实语音时间戳编写 storyboard.json:

{"title": "...", "aspect": "9:16", "style": "pixel-rpg",
 "idea": "核心创意句子",
 "look": "2 到 4 句描述整体视觉风格:贯穿全片的物体外观如何、强调色的含义、场景切换方式",
 "scenes": [{"id": "s1", "visual": "什么物体,在做什么,按照哪个动词运动",
             "anchors": [{"id": "hook", "kw": "与朗读文本完全匹配的词", "nth": 1, "off": -0.1}],
             "in": "场景进入方式", "out": "场景过渡到下一个场景的方式"}]}
  • visual 描述 概念和物体,而非像素级布局:这部分留给代理自行设计。
  • 跨场景状态: 如果某个物体(如进度条、角色、数字)贯穿多个场景,则需在每个场景的 visual 中明确其进入和离开时的状态(例如“HP 进入时 9/10,离开时 3/10”)。各代理并行执行,无法看到彼此的场景。
  • 共享元素(角色、界面框架、背景层)需在 look 中描述其具体尺寸和位置,或预先在 compositions/_nen.html 中绘制。
  • 每个句子至少有一个锚点;kw 必须与 say 中的内容完全一致。
  • 穿插密集场景和舒缓场景;避免连续三个场景使用相同的画面风格。选择 2 到 3 个“高潮”时刻,进行更详细的描述。
  • 运行 "$PY" "$VV/tools/timeline.py" <project>;修改直到不再出现 KW miss 错误。

6. 背景音乐

遵循 vm-nhac 技能:输出 mix.wav。

7. 搭建、渲染、交付

遵循 vm-dung 技能:设置字体、颜色,将场景并行分配给 vm-canh 代理,拼接、hyperframes check、渲染、混音、添加字幕。

最终报告:MP4 和 SRT 文件的绝对路径、时长、风格、语音、音乐来源、自行举例的位置、素材来源。

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

相关技能