SuperAPI AI 工具集

remotion-motion-graphics

设计与创作

查看项目

更新于 10-15 14:07

技能介绍

用途

Remotion Motion Graphics 是一个用于创建和编辑专业动态图形视频的技能。它基于 Remotion——一个用 React 组件逐帧渲染视频的框架。该技能的核心目标不是解决代码质量问题,而是提升“动效设计”水平,避免未经训练的生成结果出现线性缓动、仅透明度淡入淡出、元素同时入场、扁平色彩、缺乏纹理等“通用 AI 视频”特征。

主要能力

该技能定义了一套不可协商的规则,适用于每一个合成:

  • 禁止使用线性插值,每个 interpolate() 必须搭配缓动曲线,入场优先使用 spring(),并始终设置 extrapolateLeft/Right: "clamp"。
  • 入场动画需同时动画 2-3 个属性(如 opacity + translateY + scale),禁止单独淡入。
  • 所有元素错开入场,列表、单词、光线、卡片等使用 3-6 帧偏移,不允许同时进入。
  • 退出动画存在且比入场更快(约 10 帧 vs 约 20 帧)。
  • 每个场景使用五层堆叠,从下到上:背景网格 → 素材 → 图形/文字 → 调色 → 颗粒 + 暗角。禁止纯色背景。
  • 每张静态图片应用 Ken Burns 效果(缓慢缩放 1→1.08 并平移)。每个视频素材使用 <OffthreadVideo>,而非 <Video>。
  • 屏幕上停留超过 2 秒的元素需有正弦波微动,使其“呼吸”。
  • 所有时间基于 fps 通过 useVideoConfig() 推导,不使用魔法帧号。
  • 项目顶部有一个主题对象(颜色、缓动、弹簧预设、字体),禁止在组件中内联十六进制颜色或缓动。
  • 渲染后必须提取帧并目视检查,修复后重新渲染,绝不交付未验证的渲染结果。

使用方式

工作流分为五步:

  1. 确定范围:明确时长、fps(默认 30,仅高速运动用 60)、尺寸(1080×1920 竖屏或 1920×1080 横屏)、现有素材(图片、视频、音频、Logo),以及是新建合成还是编辑现有项目。若编辑现有项目,先完整阅读 src/,找到或创建主题,并重构违反上述规则的代码。

  2. 设置:新项目安装依赖:

npm install remotion @remotion/cli react react-dom
# 可选:@remotion/transitions @remotion/motion-blur @remotion/google-fonts

将技能中的 assets/theme.ts 复制到 src/theme.ts 并按品牌调整调色板。结构为:src/index.ts (registerRoot) → src/Root.tsx (Composition,时长/fps/尺寸) → src/scenes/.tsx → src/components/.tsx。用户素材放在 public/,通过 staticFile() 加载。

  1. 构建:阅读 references/motion-patterns.md 获取可复用组件实现(BgMesh、Grade、Grain、Vignette、KenBurns、WordReveal、Stagger、Counter、Spark、转场、视差)。阅读 references/design-rules.md 了解节奏、韵律、排版、调色板和声音设计规则。场景节奏:HIT → 保持(15-20 静止帧)→ 构建 → HIT。前 15 帧必须有运动,超过 90 帧必须出现新视觉元素。

  2. 渲染:

npx remotion render src/index.ts <CompId> out/video.mp4 --codec h264 --crf 17

Remotion 需要 Chromium 二进制文件。若自动下载失败,可手动指定路径:

which chromium chromium-browser google-chrome 2>/dev/null
ls /opt/pw-browsers 2>/dev/null   # Playwright 安装位置
npx remotion render ... --browser-executable=<path>

若完整 Chrome 报错“Old Headless mode has been removed”,改用 headless_shell 二进制文件。

  1. 验证(强制):提取关键帧并目视检查。便携方法:
for f in 15 45 90 150; do
  npx remotion still src/index.ts <CompId> out/check_$f.png --frame $f --overwrite
done

若系统有 ffmpeg,也可从成品 mp4 提取:

ffmpeg -v error -ss 1.5 -i out/video.mp4 -frames:v 1 check_1.png

按频率检查并修复:间距错误(em 相对于父字体大小)、文字溢出或触碰边缘、元素在入场前或退出后可见(缺少 clamp)、颜色/对比度问题、图层顺序错误。修复后重新渲染、重新提取、重新检查,只有通过后才交付。

适用场景

  • 创建新的动态图形视频,支持竖屏(Reels/Shorts)和横屏。
  • 编辑现有视频:将 mp4 放入 public/,用 <OffthreadVideo> 作为素材层,根据片段长度设置合成时长,在上方堆叠图形/调色/颗粒。可用 ffprobe 获取片段时长和 fps。支持为语音添加逐词同步字幕。
  • 处理图片、视频、音频、Logo 等素材。

限制

  • 需要安装 Remotion 及相关依赖,并需要 Chromium 二进制文件。
  • 渲染和验证过程需要手动提取帧并目视检查,无法完全自动化。
  • 技能本身不提供收费、价格或平台信息,这些事实暂未提供。
  • 需要遵循严格的规则集,否则可能产生“通用 AI 视频”效果。
  • 字体方面,英雄文字不能依赖系统默认,需通过 @remotion/google-fonts 或 @font-face + staticFile 加载显示字体。
  • 避免使用 Emoji 作为图标,因为 Emoji 渲染为全彩平台字形,会忽略调色板并破坏单主色规则。
  • 若没有音效素材,可用 Node 脚本合成 16 位 WAV 最小音效包,无需下载。
  • 常见失败模式包括:生成一个巨大组件而非主题化可复用组件、Composition 与场景内容 durationInFrames 不匹配、重新渲染时忘记 --overwrite 导致检查旧文件、试图向用户“描述”结果而不渲染验证。