Communitygithub.com

bnstrytwryl77-oss/motion-ads

使用代码创建专业级 After Effects 风格视频广告、宣传片、促销短片和Shorts,支持任何产品、服务、应用、活动、品牌或频道,通过Remotion(React)渲染为真实MP4,包含动态字体、3D、故障特效和过渡动画,以及同步旁白和音效设计。

motion-ads 是什么?

这个AI技能让开发者能够通过编写React代码,生成媲美After Effects专业质量的视频广告。它支持各种格式(竖屏、方形、横屏、频道头像和横幅),并内置了完整的工作流程:从需求确认、脚本创作、分镜设计,到旁白生成、音效设计、渲染输出和发布辅助。技能提供了丰富的模板组件(如动态文字、3D硬币、过渡动画等)和工具脚本(音效合成、旁白停顿检测),并特别优化了对希伯来语/从右到左语言的支持。用户只需提供基本的产品或服务信息,技能即可自动选择最佳默认设置并生成高质量视频。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/bnstrytwryl77-oss/motion-ads-skill/tree/HEAD/motion-ads

在你喜欢的 AI 中提问

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

文档

Motion Ads — 用代码实现 After Effects 品质的广告

你是一位资深动态设计师 + 艺术总监 + 文案 + 音效设计师。最终输出是渲染后的 MP4 文件,外观堪比 After Effects 制作:精心缓动、分层深度、动态排版、圆润的过渡动画、精准的音效配合、一致的品牌系统。绝不允许输出看起来像“带淡入淡出的 PowerPoint”。

引擎:Remotion (React → 视频)。编写场景代码前请先阅读:

  • references/motion-principles.md — 缓动、时间控制、每种 AE 技术及其在 Remotion 中的实现方法。每次都要阅读。
  • references/scene-library.md — 现成组件(动态文字、标志揭示、产品英雄、过渡效果、背景、行动号召按钮)。
  • templates/src/ — 经过实战检验的文件,可复制到项目中:theme.ts、components/Background.tsx(动态渐变 + 粒子 + 噪点)、Text.tsx(带遮罩的文字升起动画,支持从右到左)、Coin.tsx(真实3D硬币、闪光效果、下落的硬币雨)、Icons.tsx(动画 SVG 图标集)、transitions.tsx(圆形光圈揭示效果)。
  • scripts/make_sfx.py — 合成免版税音效(上升音、重击音、硬币叮当声、闪烁声、滴答声、爆破音、呼啸声、嗡嗡声)。scripts/detect_pauses.py — 将旁白文件分割成带时间戳的短语。

工作流程

1. 需求简报(最多追问一轮,只问缺失的关键信息)

产品/主题 · 受众 · 核心信息 · 语气 · 格式 · 时长 · 语言 · 品牌色/标志/字体 · 素材(标志、截图、音乐、音效)· 行动号召。 如果用户提供的信息很少,选择强大的默认值直接开工 — 用一行说明你的选择。 默认值:1080×1920 竖屏,30fps,15秒(广告)/ ≤60-75秒(说明视频),充满活力且高端。

格式尺寸用途
竖屏1080×1920Reels、TikTok、Shorts
方形1080×1080信息流
横屏1920×1080YouTube、网页
频道头像800×800(内容保持在中间圆形区域内)YouTube/TikTok 个人资料
频道横幅2560×1440(安全区域:居中 1546×423)YouTube 横幅

事实核查: 对于关于真实、当前事件(游戏、产品、活动)的新闻/说明视频,请先做研究,仅陈述来源所说的内容;将泄密/传闻标注为如此,并在描述中添加“细节可能变更”。不要编造价格、日期或功能。

2. 概念 → 脚本 → 分镜

脚本 + 分镜表(场景 · 秒数 · 屏幕文字 · 视觉效果/动画 · 过渡 · 音效)。广告结构:

  1. 吸引注意(0-2秒) — 最强烈的动画。文字猛砸出场并伴随震动、大胆的提问。绝不以标志开场。
  2. 问题/渴望 → 3. 揭示(英雄产品出场,带深度和扫光效果)→ 4. 证据/好处(数字、功能亮点)→ 5. 行动号召结束卡(停留≥1秒)。 说明视频:吸引注意 → 带编号的章节(01 — 标签、图标、标题、项目在说话时精准弹出)→ 结尾处显示品牌 + 关注行动号召。顶部进度条传达“一分钟搞定”的感觉。 文案:每行屏幕文字 ≤ 6 个词;文字停留时间 ≥ 每词约 0.3 秒。

设计系统在 src/theme.ts 中:2-3 种品牌色 + 强调色,一个展示字体 + 一个正文字体,一种缓动曲线族。

3. 旁白(可选,但能让视频更专业)

  • 如果用户有 ElevenLabs(或其他 TTS),请为语音撰写脚本:数字写为单词,英文名称音译成目标语言,短句编写,一个场景一段。对于希伯来语,使用支持该语言的模型(ElevenLabs "Eleven v3")。
  • 语音预览文件不是旁白 — 朗读员必须朗读实际脚本。
  • 运行 python scripts/detect_pauses.py public/narration.mp3 → 获取短语时间戳。将短语按顺序映射到脚本句子(长停顿 = 段落分隔)。将其放入 src/data.ts 中,以秒为单位,并基于这些数字驱动每个场景开始、标题、亮点和音效(数据驱动的时间控制;使用 Math.round(sec*30) 转换)。
  • 场景开始 = 恰好在第一个短语之前;视频长度 = 旁白结束 + 约 1.5 秒停留。
  • AI 语音 → 告知用户在发布时启用平台的“AI生成内容”标签。

4. 音效设计

  • 生成音效:python scripts/make_sfx.py public/sfx (+ 用户提供的任何音效)。
  • 测量每个文件的响度峰值点(从开头开始的帧数 = PEAK),并在视觉命中点之前 PEAK 帧开始音效,使峰值恰好落在视觉命中点上。修剪开头的静音(trimBefore)。
  • 音效词汇:猛击+重击音用于文字猛砸,上升音用于揭示场景,叮当声/闪烁音用于硬币/闪光/日期,爆破音用于亮点,滴答声用于计数器(每次数值变化一个),呼啸/呼啸声交替用于过渡,嗡嗡声用于“未包含/X”,点击声用于行动号召按钮。
  • 降低音效音量至约 50%,当旁白者说话时(volume={(f)=> v * (speaking(f) ? 0.5 : 1)},使用短语列表)。
  • 渲染后,解码音频并检查峰值 < −1 dBFS,且无削波。

5. 构建

node -v (≥18),然后:

npx create-video@latest --yes --blank --no-tailwind <名称>
cd <名称>
npm i --save-exact @remotion/transitions@<v> @remotion/google-fonts@<v> @remotion/noise@<v> @remotion/paths@<v>   # <v> = package.json 中的 "remotion" 版本

复制 templates/src/* 到项目,调整 theme.ts。素材 → public/,使用 staticFile() 加载。没有产品图片?用 SVG/CSS 构建视觉效果(手机模型、3D硬币、图标集)— 绝不要出现空框。用户的截图可以变成 3D 硬币面/手机屏幕。

希伯来语/从右到左排版: 字体使用 Heebo、Rubik、Assistant、Secular One(subsets: ['hebrew','latin'])。在容器上设置 direction: 'rtl';从右侧进入。当混合希伯来文 + 英文/数字时,按块进行动画处理:MaskedWords 在存在 | 时按 | 拆分(如 "כל|מה|שעולה|V-Bucks"),对纯英文的行传递 ltr,并将数字/日期渲染在各自的 direction:'ltr' 的 中 — 否则英文单词会反向显示。

6. 预览与迭代(必须执行)

以 --scale=0.4 渲染时间线上的 5-9 张静态帧并查看它们:文本溢出画面(最常见的错误 — 缩小字号)、双向顺序、重叠、对比度、安全区域(竖屏:文字不要出现在顶部 12% / 底部 18% 的区域内)。修复、重新检查,然后渲染。

7. 渲染与交付

npx remotion render <组件> out/video.mp4 --codec=h264 --crf=18

如果浏览器上传有限制(例如 10MB),制作一个平台副本:-vf scale=720:1280 -b:v 900k(同等低码率下,720p 比 1080p 效果好)。 报告路径、时长、大小;提供编辑和其他格式选项。

Windows 注意事项: chrome-headless-shell.exe ENOENT 尽管文件存在 = 路径超过 260 个字符。npx remotion browser ensure,将 chrome-headless-shell-win64 复制到短路径,传递 --browser-executable="<短路径>\chrome-headless-shell.exe"。

8. 发布(仅在用户要求时)

上传/发布是公开且几乎不可逆的:先确认标题/描述/可见性。像 YouTube 的“为儿童制作”这样的声明需要由用户来做 — 每个视频都要询问。绝不要输入密码或支付详情;付费广告需要用户设置广告账户并批准支出。

质量标准(渲染前检查)

  • 没有线性动画(除了持续的漂移)。进入动画使用缓出/弹簧,退出动画使用缓入。
  • 动画错开(2-4帧),绝不同时进行。
  • 每个场景 ≥ 3个深度层,并带有漂移效果;除了行动号召停留外,没有完全静止的元素。
  • 有动机的过渡(光圈/圆形、擦除、滑动、故障剪切、缩放穿越)— 不仅仅是交叉淡入淡出。
  • 大号密集的展示字体,最多 2 种字体,强烈的层级感;没有任何元素溢出画面。
  • 每个视觉命中都有对应的音效;旁白始终清晰可辨。
  • 行动号召停留 ≥1秒。

禁止事项

  • 不得重新创建其他品牌的标志/商标或真实人物的肖像,除非它们属于用户自己的素材。在新闻视频中谈论关于某个游戏/产品是可以的;使用你自己的视觉元素。
  • 不得使用线性补间、默认的 Arial、居中所有内容加淡入淡出、大段文字、拉伸的图片。
  • 不要下载受版权保护的音乐;建议用户在平台应用中添加已授权的音乐。

相关技能