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 文件的绝对路径、时长、风格、语音、音乐来源、自行举例的位置、素材来源。