Motionite:面向智能体的动态设计工具
Motionite 能将一段创意简报转化为一部完成度极高的、确定性的 Remotion 影片,使其看起来是经过专业设计的,而非由程序随机生成。它包含三个核心部分:
| 部分 | 位置 | 使用它来… |
|---|---|---|
| 15 种 NxrStyles | styles/ · 比较与选择器 | 为每部影片选择一整套完整的视觉系统 |
| 70 种技巧 | techniques/ | 使用经过验证的参数来构建每个运动(ID 为 T, N, X, C, U, H, R) |
| 可工作的代码 | examples/ | 复制 lib/anim.ts 中的标记、演示组件和风格组件 |
提示词本身并非决定因素。同一句简短的演示视频提示词,可以生成风格迥异的影片。真正产生差异的是在静帧上的迭代以及在评审循环中的审美判断。本技能即为这个闭环过程。
工作流程(请按顺序执行)
1 · 简报 → 事实 vs 选择
请记录以下内容:
- 事实: 你拥有的真实素材(Logo 文件、截图、录像片段、品牌十六进制色值、字体、配音、音乐及其 BPM)、宣传要点、画面宽高比、视频时长和发布平台。
- 选择: 除此之外的所有其他内容。如果缺少真实产品的 UI 或 Logo,请询问用户或留下带有标签的占位符。切勿凭空捏造。
- 一句话: 观众必须记住的核心信息。一部影片,每个节拍传达一个想法,整体传达一个主题。
2 · 情绪板
收集 2-3 个情绪板参考影片,并用具体数字记录你从其中借鉴的内容:剪辑节奏(每秒镜头数)、调色板十六进制色码、字体族、标志性运动手法。你可以在 techniques/README.md 中找到这些手法的 ID。如果可能,为每个参考影片制作一个接触表(ffmpeg -vf fps=2,scale=480:-1,tile=6x5)并仔细审阅。
3 · 选择一种 NxrStyle
使用 styles/COMPARISON.md 中的决策表,然后打开所选风格的说明文件,并遵循其视觉 DNA(调色板、字体、布局、运动、转场、时间轴、音频)及其“做”与“不做”的规范。
- 如果提供了品牌设计指南,它将覆盖该风格本身的调色板和字体,以及任何被禁止使用的元素。
- 你可以从其他风格中借用一个单一的技巧,但绝不能借用整套调色板或字体系统。
| # | 风格 | 感觉 | # | 风格 | 感觉 |
|---|---|---|---|---|---|
| 01 | 节拍场 | 响亮、条形剪切色块 | 09 | 动态本托网格 | 1:1 循环海报,含动态拼块 |
| 02 | 夜间字幕解说 | 9:16 配音字幕,大数字 | 10 | 像素条格预告片 | 像素游戏预告片,抖动剪切 |
| 03 | 浮动产品 UI | 3D 手机,大数字,标签块 | 11 | 单镜头传送缩放 | 一个对数缩放穿越多个世界 |
| 04 | 社论墨水 | 纸张,衬线体,荧光笔 | 12 | 控制台即电影 | 对象即世界 |
| 05 | 单视角平面世界 | 单一摄影机移动,天空由 X 决定 | 13 | 极简启动影片 | 克制,单一强调色 |
| 06 | PRESS START 菜单 | 复古 8-bit 菜单 | 14 | 纸张定格动画 | 以 12 帧为基础的剪纸,波普风格 |
| 07 | 霜冻收藏品 | 冰霜感,轨道运动,薄荷色计数 | 15 | 手绘墨水 | 自绘抖动,墨迹 |
| 08 | 双色调故事书 | 雕刻感的深蓝 + 一种暖色 |
4 · 镜头列表(以帧为单位)
在编写代码之前,先创建一个表格:
| 镜头 | 帧数 | 第一帧屏幕上的内容 | 运动内容(精确到帧) | 文字 | 技巧 ID | 音频提示 |
|---|
规则:
- 选择帧率(大多数工作选 30,UI 平滑影片选 60),然后设定节拍网格:
BEAT = fps·60/BPM。镜头持续整数个小节,剪切点落在节拍前 2 帧的位置。 - 第 0 帧是海报帧,因此它必须已经构图完整。
- 每个镜头传达一个想法,任何文字行的停留时间 ≥ 0.8 秒且必须清晰可读。
- 切勿连续使用两个转场设备。视觉风格的变化应通过硬切实现,并持续 ≥ 1 秒。
5 · 在 Remotion 中构建
从 examples/ 开始。复制 src/lib/anim.ts(包含缓动 E、弹簧 SPR、prog、spr、lmix、track、hitPulse、blurIn/blurOut、rand、onTwos),以及 src/styles/kit.tsx 和你所选风格的组件。
构建规则:
render(frame)必须是纯函数:不能使用Math.random、Date.now、定时器、CSS 过渡/动画,或跨帧的状态。仅可使用基于种子的rand(key)。所有物理效果都必须从第 0 帧开始以固定步长重新模拟。- 入场使用
E.out,退场使用E.in。次要运动的起始点位于主要运动的 55–75% 处。 - 缩放运动必须在对数空间中进行(
lmix)。一个需要重新定位目标的值,应使用弹簧的总和(track)。 - 速度限制:在 60 帧/秒下,运动速度 ≤ 25 像素/帧,除非有运动模糊或拖影效果。
- 过冲效果每部影片最多 2 次,且绝不能用于文字。闪光效果每部影片也最多 2 次,亮度限制在 65–85%(绝不能是全白或全黑的完整画面)。
- 文字必须模糊入场(模糊半径从 12–20 像素降至 0,在运动过程的 60% 处变得清晰)。不要使用简单的透明度淡入。
- 在每个计数器上设置
fontVariantNumeric: 'tabular-nums'。包含数字的字体名称需要使用引号:'"Press Start 2P"'。 - 不要在
preserve-3d元素上设置透明度或滤镜,不要在摄影机缩放的文字上设置will-change,不要在无头渲染中使用backdrop-filter。 - 图层韵律:UI 元素以每帧移动,手绘角色以每两帧移动,纸偶以每 12 帧移动。纹理不应抖动。
- 循环动画:最后一帧必须与第一帧相同。
6 · 静帧审批(在任何完整渲染之前)
在每个节拍处渲染一张静帧,再加上每个转场前后的 3 帧:
npx remotion still src/index.ts <CompId> out/s_<f>.png --frame=<f> --scale=0.5
将它们制作成接触表并仔细审视它们。在此阶段修复构图、可读性和调色板问题,因为渲染一张静帧只需数秒,而渲染完整影片需要数分钟。如果流程中有人类参与,请务必获得对静帧的批准。
7 · 渲染
npx remotion render src/index.ts <CompId> out/raw.mp4 --codec=h264 --crf=18 --pixel-format=yuv420p
ffmpeg -i out/raw.mp4 -c:v copy -af loudnorm=I=-14:TP=-1:LRA=11 -c:a aac -b:a 192k -movflags +faststart out/film.mp4
8 · 质量保证(QA)(完整命令)
ffprobe:检查编码格式、文件大小、帧率,并确保视频时长与音频时长一致(误差 ±1 帧)。- 响度:集成 LUFS 为 −14(误差 ±1),峰值不超过 −1 dBTP。
- 使用最终 MP4 文件(而非静帧)制作接触表:2 帧/秒,6×5 的拼贴。
- 确定性:对同一帧渲染两次并进行像素级差分(结果必须完全相同)。
- 帧差曲线:不出现单帧峰值超过其相邻帧 3 倍以上的情况。
- 检查:从静帧中采样品牌十六进制色值,音频起始点与视觉击打点的偏差应在 ±1 帧内。
9 · 自评(共 3 轮)
根据 qa.md 中的六项测试(海报帧、可读性、节拍、预算、风格和品牌)对接触表进行评分。修复最严重的三个问题,重新渲染,然后重复此过程,最多三轮。每轮都要报告你所做的修改。
通用审美规则(简版)
- 第 0 帧是海报帧,并且每一帧暂停时都应是构图上完整的。
- 文字使用模糊入场。不使用简单的透明度淡入。退场效果应有加速感。
- 使用一种强调色,并且它必须具有特定含义。
- 缩放和对数空间内的运动,保持摄影机运动的连续性而非阶梯式(像素风格除外)。
- 在小节线上进行剪切,每个小节传达一个想法,并留有足够长的可读停留时间。
- 闪光亮度限制在 65–85%,最多使用两次。过冲效果最多两次,且绝不能用于文字。
- 转场是经过设计的特效(如棋盘格、涂抹、墨迹、缩放穿越、极性翻转),绝不能使用交叉溶解。
- 优先使用真实资产而非手绘元素。切勿伪造真实产品的 UI。
- 确定性是一项特性:同一帧始终渲染出相同的像素。
- 审美层面的禁用项(衬线体、奶油色、发光、玻璃、表情符号、粒子)是通用产品影片的默认规范。品牌或情绪板可以覆盖它们。但物理法则是不可更改的。
完整法则:techniques/laws.md。简报模板:techniques/prompt-skeleton.md。
输出声明
当你交付一部影片时,需报告以下信息:
- 所使用的风格
- 镜头列表(帧数 + 技巧 ID)
- MP4 文件和接触表的存放路径
- ffprobe 输出行、LUFS 读数以及确定性测试结果
- 每轮评审中修改的内容
- 任何占位符或虚构的素材