One Line Motion Gratis
版本 gratis 包含 10 种预设风格。完整版本(52 种预设、UMKM 广告、3D 透视、世界地图、YouTube 长格式)见 onelinemotion.com。当用户请求的风格不在 references/styles.md 中时,请从这 10 种风格中选择最接近的预设,并说明该风格在完整版中可用。
本技能可将用户的一句话创意转化为动态图形视频(真实动画而非幻灯片),包含旁白、音效、字幕、缩略图和发布文案。默认工作语言为印度尼西亚语,除非用户另有要求。
本技能文件夹包含:
template/:可用的 Remotion 项目(时间线基于旁白时长、风格令牌、动画组件、自动字幕、音乐与闪避)。scripts/:new-project.sh、make-sfx.sh、make-music.mjs、tts-fallback.sh、sync-timeline.mjs、qa-sheet.mjs、finish.sh。examples/:10 个示例视频代码,每种预设一个(参见references/styles.md中的表格)。在开始动画之前,请先阅读所选预设对应的示例代码,作为起点(调色板、组件、运动方式)。references/:styles.md(预设风格)、motion.md(运动原则与布局)、audio.md(音频、SFX、音乐)、formats.md(平台规格与上传包)、revisions.md(修改字典)、prompts.md(供用户使用的提示库)。
请在提示中引用此技能路径为 $SKILL(即此文件所在文件夹)。
核心原则
- 顺序不可跳跃。 概念锁定后才能写脚本,脚本锁定后才能配音,配音完成后才能进行动画。每个镜头的时长由旁白时长决定,不可反之。
- 一个镜头,一个想法。 如果一个镜头需要两句话来解释,请拆分为两个镜头。
- 始终保持动态。 任何静止画面不超过 1.5 秒。
- 风格锁定在
brand.json中。 所有颜色、字体、线宽、节奏均从此文件读取,确保第 20 个视频与第一个视频同样精致。 - 渲染前先检查。 QA 检查单必须通过肉眼阅读(
Read)确认无误后,再进行完整渲染。 - 不可编造事实。 数字和声明需通过网页搜索验证,并记录来源。
工作流程
在每一步向用户显示简要进度,例如 Brief ✓ → 概念 ✓ → 脚本 … → 配音 → 动画 → QA → 渲染。
1. 需求收集(5 个要点)
- 什么:用一句话表达的核心信息。
- 面向谁:目标受众(初中生、大众、潜在买家等)。
- 时长:默认 Shorts 30–45 秒、解说 60–90 秒、片头 5–10 秒、促销 15–30 秒。
- 格式:9:16(Reels/TikTok/Shorts)、16:9(YouTube)、1:1(信息流)或多种同时,
- 基调和风格:教育、幽默、戏剧、高端、促销;如有偏好的预设风格也请说明。若为商业广告,还需询问业务数据(名称、价格/折扣、地址或购买方式),不可编造。
若有信息缺失,请在 一个 问题中一次性询问(如可用则使用 AskUserQuestion)。若用户表示“直接做”,则使用默认值并告知用户所采用的默认项。
同时检查 ~/.one-line-motion/brands/ 目录。若已存储品牌套件,询问用户是否使用(如“是否再次使用 Kopi Senja 品牌套件?”)。
2. 三个概念 → 用户选择一个
阅读 references/styles.md。每个概念需包含:
- 名称(2–4 个单词)和核心 视觉隐喻(例如“格林兰作为拼图碎片”)。
- 预设风格 + 5 色调色板(十六进制) + 字体配对。
- 前 3 秒钩子:观众看到和听到的内容。
- 镜头/运动流程(一句话描述)。
三个概念必须使用不同的隐喻,而不仅仅是颜色不同。其中一个应标记为推荐,并给出理由(一句话)。用户选择后,根据该概念编写项目 brand.json。
3. 逐镜头脚本
若主题为事实性内容,请先通过网页搜索验证事实,并将来源记录在 notes/sources.md 中。然后呈现表格:
| # | 时长 | 旁白 | 视觉 | 运动 | 屏幕文字 | SFX |
规则:
- 印度尼西亚语旁白语速约 2.3 词/秒(电影感约 2.0;促销动感约 2.6)。计算总词数,确保总时长匹配。
- 镜头 1 = 钩子 ≤ 3 秒:问题、惊人事实或矛盾。
- 最后一个镜头 = 收尾 + 行动号召(关注、评论、访问店铺)。
- Shorts 4–7 个镜头;解说 60–90 秒 6–10 个镜头。
- 屏幕文字每行最多 6 词,最多 2 行。重要数字应放大显示。
- 旁白需适合听觉:短句,日常用语,避免 TTS 难以读出的缩写(例如写“五倍”而非“5x”)。
请求用户批准脚本(说“ok”即可),除非用户已表示可以直接进行。
4. 准备项目
bash "$SKILL/scripts/new-project.sh" <project-folder> [~/.one-line-motion/brands/<name>.json]
该脚本会复制模板,在 public/sfx/ 中生成合成 SFX 库,并安装依赖。然后加载 remotion-best-practices 技能(如可用)后再编写镜头代码。
5. 先处理音频
阅读 references/audio.md。概括如下:
- 逐镜头旁 →
public/audio/vo-01.mp3、vo-02.mp3、…- 主要使用 ElevenLabs(插件/MCP
creative_generate_speech或其他可用的 ElevenLabs 工具)。根据受众选择声音并告知用户名称。 - 无账号的备用方案(用于草稿):
bash "$SKILL/scripts/tts-fallback.sh" "<narration>" public/audio/vo-01.mp3。告知用户这是草稿音质。
- 主要使用 ElevenLabs(插件/MCP
- 填写
src/timeline.json:每个镜头一个条目(id、component、vo、text= 旁白、sfx)。 - 同步时长:
node "$SKILL/scripts/sync-timeline.mjs" <project-folder>。镜头时长 = 旁白时长 + 0.45 秒。 - SFX:从
public/sfx/(pop、ding、click、whoosh、swoosh、riser、impact、boing、typing)或连接的 SFX 服务获取。仅在关键运动时刻使用,每镜头最多 2–3 个。at以帧为单位,从镜头开始计算。 - 音乐:根据氛围生成免版税背景音乐,长度等于视频总时长 + 2 秒:
node "$SKILL/scripts/make-music.mjs" <cheerful|lofi|piano|angkasa|synthwave|funk|tech|gamelan> <seconds> public/audio/music.wav或使用已连接的有版税音乐服务(确保账户有下载权限)或用户自有文件。填写timeline.music。自动闪避在Video.tsx中实现。
6. 动画
阅读 references/motion.md 和 references/styles.md 中对应预设的部分。
- 每个镜头一个文件,位于
src/scenes/,在src/scenes/index.ts中注册,文件名需与 timeline 中的component名称一致。 - 优先使用内置组件:
Background、Camera、Pop/usePop、KineticText(以*开头的词使用强调色)、BigNumber、DrawPath、Caption。示例镜头(Hook、Sunlight、Scatter、Payoff)展示了模式;不用的可删除。 - 所有动画使用
useCurrentFrame、interpolate、spring。禁止使用 CSS 动画或过渡。 - 颜色、字体、缓动、弹簧参数仅从
theme获取。除非是特定插图(如彩虹色),否则禁止在镜头文件中写新的十六进制颜色。 - 插图自行使用 SVG/React 绘制。纹理使用程序化生成。禁止使用有版权的角色、标志或图片。
- 布局读取
useVideoConfig(),使同一镜头可渲染为 9:16 和 16:9 格式(Video-16x9)。 - 新字体需在
src/fonts.ts中注册。
在项目文件夹中运行 npx tsc --noEmit,直到没有错误。
7. 视觉 QA(必须)
node "$SKILL/scripts/qa-sheet.mjs" <project-folder>
使用 Read 打开 out/qa-sheet.jpg。每行 = 一个镜头,列 = 开始/中间/结束。检查并修正:
- 文字与字幕或其他元素重叠、文字被截断、超出安全区域。
- 中间/结束列中镜头“静止”(动画已结束但旁白仍在继续)。
- 对比度低、元素在手机上过小。
- 镜头间风格一致性。
重复直到无问题。如果用户希望预览,可将 QA 检查单展示给用户。
8. 渲染与收尾
cd <project-folder> && npx remotion render Video out/video.mp4 --codec h264
bash "$SKILL/scripts/finish.sh" out/video.mp4 <thumbnail-second>
输出:video-final.mp4(响度 -14 LUFS)、video-thumb.jpg、video-wa.mp4(轻量版)。如需其他格式:npx remotion render Video-16x9 out/video-16x9.mp4。长时间渲染可在后台运行。
9. 上传包
阅读 references/formats.md。使用 SendUserFile 发送最终 MP4,并附上:
- 3 个标题选项(≤ 60 字符)、短文案、5–8 个相关话题标签。
- 时长、格式、预设、使用的声音、音乐/SFX 来源。
- 事实来源(若为教育内容)。
询问是否保存品牌套件:将 brand.json 复制到 ~/.one-line-motion/brands/<name>.json。
10. 单句修改
阅读 references/revisions.md。将用户请求(如“月亮再大些,加个脸”)转换为列表:镜头 → 元素 → 属性 → 新值。仅修改这些内容。
- 修改旁白:仅重新生成对应镜头的 VO,运行
sync-timeline.mjs。 - 若布局发生变化,再次运行 QA 检查单,然后重新渲染。
- 记录在
notes/revisions.md(日期、请求、更改),并简要告知用户更改内容。
伦理与许可
- 禁止模仿特定角色、品牌或工作室/创作者的特有风格。文化图案应以普遍的风格重新绘制,保持尊重。
- 音乐和 SFX 仅来自许可来源、用户自行创作或
make-sfx.sh合成。 - 如果视频用于客户或付费广告,提醒用户检查语音/音乐服务的许可条款。
- 科学简化可以接受,但不可出现概念错误。