Motion Proof 是做什么的?
你将用代码制作动画视频:每一帧都来自一个程序(Remotion,使用 React)。区分一个视频是否“看起来像 AI 生成”的,几乎总在于两个地方:运动(曲线、节奏、呼吸般的停顿)和审查(逐帧查看并测量)。这个技能为你提供了这两方面的能力。
开始之前
- 检查工具:
node --version(20 或更高)和ffmpeg -version。对于 web 版本,需要一个带有 libvmaf 的 ffmpeg(ffmpeg -filters必须列出libvmaf)。 - 如果没有 Remotion 项目,用
npx create-video --yes --blank mi-video创建一个,然后用npx remotion skills add添加官方技能。使用这些技能解决 Remotion API 的问题。 - 在
remotion.config.ts中添加Config.setColorSpace("bt709");。否则视频将以全范围(yuvj420p)输出,某些播放器会改变颜色。 - 将
plantilla/movimiento.ts复制到项目中(例如src/lib/movimiento.ts),并查看plantilla/Ejemplo.tsx中的模式:带弹簧效果的错开入场、漂移、摄像机推拉、点击和运动模糊。 scripts/中的脚本用node <此技能文件夹>/scripts/<程序>.mjs运行。它们不安装任何东西。
流程
- 简报。 产品是什么,目标受众是谁,观看者最终应该做什么,格式(16:9, 9:16, 1:1)和时长。如果缺少重要信息,在继续之前提问。
- 视觉脚本 使用
referencias/guion-visual.md:包含精确的起始帧和结束帧的场景,总计时长等于总时长。在用户批准之前不要开始动画。 - 单一配置文件 包含文本、数字、颜色和时间。文本更改应为一行,图像和声音的时间应从同一位置读取。
- 动画制作 遵循
referencias/movimiento.md。首先阅读“暴露 AI 的清单”。 - 测试帧(
npx remotion still或renderStill),在每个场景变化和每次摄像机运动处进行检查。在完整渲染之前查看它们。将摄像机朝向某点推进会使远离该点的物体向外推:所有摄像机编辑都必须在帧上检查。 - 渲染 使用 H.264(yuv420p, bt709),60 帧/秒。垂直和方形视频通过不同的场景布局重新构建,而不是从水平视频中裁剪。
- 声音 使用
referencias/sonido.md:unir.mjs合并音乐,volumen.mjs将其标准化为 −14 LUFS。 - 测量 使用
medir.mjs。如果失败,则修复视频。仅当错误是误报并且测量证明这一点时,才可更改测量器;在这种情况下,在交付时说明。 - 目视审查 使用
cuadros.mjs(帧表)和referencias/revision.md中的检查清单。 - Web 版本 如果需要轻量文件,使用
web.mjs。 - 交付 mp4 文件、测量结果以及无法验证的内容(例如,如果没有人听过声音)。
固定规则
- 每一帧仅由帧号决定,帧号可包含小数(用于运动模糊)。禁止使用
useState、setTimeout、CSS 过渡或没有固定种子的Math.random()。 - 字体在第一帧之前加载。出现 Times New Roman 的帧视为失败。
- 没有任何物体以直线或匀速运动,也没有任何物体完全静止。
- 重要文本至少停留 1.5 秒在屏幕上。计数器上升约 1 秒。
- 没有物体超出画面,除非是有意退出。
- 未经验证的内容必须如实说明。
命令
node scripts/medir.mjs video.mp4 --ancho 1920 --alto 1080 --fps 60 --duracion 30 --informe medicion.json
node scripts/cuadros.mjs video.mp4 hoja.png --cantidad 12
node scripts/cuadros.mjs video.mp4 cambios.png --segundos 4.5,9,15.2,22
node scripts/unir.mjs video-mudo.mp4 musica.wav con-sonido.mp4
node scripts/volumen.mjs con-sonido.mp4 final.mp4
node scripts/web.mjs final.mp4 web.mp4 --poster poster.jpg --segundo 28
medir.mjs 如果满足条件则退出码为 0,否则为 1,并以文本形式列出每个错误。cuadros.mjs 生成一张图片,你可以打开它一次性查看视频的多个时刻。为 medir.mjs 添加 --mudo 用于无声音频。