动画视频(Remotion)
基础设施,不是品味。 该技能存储模型本身无法携带的内容——工具(语音、配乐、渲染、转录)、公司上下文(授权语音、密钥、防火墙、许可证)、真实规则、技术细节、评审流程以及技术教训——且不规定视频的外观。 风格、表现形式和外观每次都由内容决定。在进化技能时,切勿向始终读取的内容添加外观示例、审美配方或“默认”组件:这会导致固化与重复。
需要阅读的内容
| 始终阅读 | 按需阅读 |
|---|---|
本文件 · APRENDIZADOS.md(技术) · direcao.md(专业知识) | gemini.md(语音、API、能力) · assets.md(许可证、资源来源) · edicao.md(录制编辑) · critica.md(评审) · referencias.md(仅当请求提及某个已研究视频时) · biblioteca/(仅在概念选定后) · VIDEOS.md 和旧项目(仅当有明确的风格方向时——甚至不要“为了看别人用了什么语音”) · historico/(当问题看起来是已知的) |
理解请求
技能充当导演的角色:理解请求的意图并采取行动。不进行问卷调查;仅询问阻塞性问题(模糊的政治/历史框架、资料无法解决的事实、不确定的使用权),并附上建议。
| 请求带来… | 执行方式 |
|---|---|
| 仅一个主题 | 全部创建(调研、脚本、概念、语音、配乐)并交付成品。 |
| 一个脚本 | 文本保持不变(建议的调整单独给出,可选的);展示简介并在确认后制作(“直接制作”跳过)。 |
| 笔记、叙述、要点 | 根据它们编写脚本(语气、剪辑、匿名化)并在制作前展示脚本 + 简介。 |
| 不含内容的咨询(“你推荐什么动画用于…”) | 不选择概念:概念来自文本。解释选择取决于什么,并请求内容。 |
| 提案请求 | 仅简介(PROPOSTA.md)。 |
| 具体指令 | 严格遵守;仅在未指定之处保留自由度。 |
| 需要剪辑的录制内容 | 编辑模式: edicao.md。 |
| 对现有视频的调整 | 仅修改指定内容并重新渲染。 |
| 风格方向(“像视频 X 一样”、“系列”) | 加载 VIDEOS.md 中的条目,复制该项目的 tema.ts 和组件,保持外观;roteiro.linha_de_estilo。 |
| 空白页(“从零开始”、“没有现成的东西”) | 仅技术基础;不使用库中的任何组件或已研究的参考。 |
| 外部参考(链接、视频) | 逐帧研究,提取语法(节奏、技术),绝不提取内容或外观。 |
| “不使用 API” | "offline": true,本地语音,配乐使用 partitura 或 arquivo,不生成图像。 |
请求可以组合。默认值:参考时长约 45–60 秒 · 16:9 + 9:16 · 使用授权参考的 VoxCPM2 克隆语音 ("voz": "voxcpm",已在模板中) 仅限内部使用 —— 面向公众的视频(营销活动、社交媒体、客户)需要其他语音:在简介时询问并给出建议。其他语音的请求:名称 → 直接使用;描述 → 参考 gemini.md;“选项” → 提供样本 · 仅当目标为销售时才使用带 URL 的 CTA。
时长由内容决定;根据所选语音的实测速率估算(切勿在测量前承诺)。
长视频:每个部分都有功能,并且完整的传递由子智能体分担。
导演简介(在任何代码之前)
按顺序——先确定核心卖点和限制,然后是美学,最后才是工具(从技术开始会让技术吞噬创意)。放入 PROPOSTA.md(收到脚本/提案时)或 ANALISE.md 顶部。
标准始终: 运动设计工作室的作品集作品——追求最高的完成度,而非仅能工作的基本版本。这适用于任何风格(极简或繁复);区别在于完成度体现在何处。
- 核心卖点:用一句话概括视频 + 目标受众 + 投放渠道 + 观众在结束时应有的感受/行动。
- 限制:时长、格式、真实性(来源;什么是插图)、权利、API 预算。
- 无偏见构思:3 个截然不同的概念,仅基于内容(不要打开库或之前的视频),每个概念完整:表现形式、视觉世界、材料、调色板、排版、运动、声音调色板和配乐。在
conceitos.json中声明并运行python3 scripts/diversidade.py --conceitos——模型会表现出即使不看历史记录也重复出现的世界反射;脚本(仅它读取记录)会指出。少于 2 个自由概念 → 重新构思。每个概念快速生成一帧放入out/conceitos/,通过查看选择;当有简介需要批准时,3 帧一起附上。记录 3 个概念及其原因;所选概念的材料放入roteiro.conceito.materiais。 - 视觉圣经,包含每项选择的原因和一个质量标准短语 →
src/tema.ts。 重复出现的角色 → 角色圣经(比例、调色板、表情、永远不变的元素)。 - 分镜:逐个区块,每个区块的功能、出现内容、转场、声音。
- 工具:语音;配乐;资产——来自网络的需有许可证(assets.md,
CREDITOS.md),生成(scripts/img.py,Veo:参考 gemini.md)或代码绘制。 - 资产传递(在圣经之后,动画之前):为本视频制作一套资产,每个脚本想法对应一个资产(角色、物体、场景、纹理),所有资产采用相同的处理方式。生成的:
tratamento_imagem+roteiro.json中的images,第一个获批的图像成为其他图像的风格ref,recorte用于独立元素(python3 scripts/img.py)。没有配额或离线时:用代码同样仔细地绘制。生成的图像绝不能在未标明“插图”的情况下描绘真实人物或事实。这是区分工作室作品与普通作品最关键的一点。
关卡(不可跳过)
brief → 脚本 → 语音 → 测量 → 音效 + 节拍 → 资产 → 故事板 → 动画样片 → 完整传递 → 评审 → 渲染 → 交付 → 进化
- 项目:
bash ~/.claude/skills/video-animado/novo.sh ~/videos/<slug>。项目的ANALISE.md已包含关卡清单:每通过一个就标记;仅在请求允许的情况下跳过,并注明原因。 - 脚本 在
roteiro.json中(唯一来源)+ 附带来源的ROTEIRO.md。在语音前始终进行事实核查。 - 语音:
python3 scripts/tts.py(仅重新录制更改的区块)。检查:~/.venvs/tts-local/bin/python scripts/check_voz.py。 - 测量:
python3 scripts/tighten.py;自然语音或注意 →~/.venvs/tts-local/bin/python scripts/align.py(cueW)。 - 音效 + 节拍:配乐(
lyria→scripts/music.py;arquivo;partitura用代码编写,带有每个区块的intensidade和场景的eventos)和python3 scripts/sound.py(时间线、效果、峰值、乐谱的beats.json)。配乐就绪 →~/.venvs/tts-local/bin/python scripts/beatmap.py。效果按类别分组(biblioteca/sfx/INDEX.md),根据材料选择,通过sfxVar使用(峰值自动与动作对齐)。 - 故事板:每个脚本时刻一个静帧,对照圣经和“哪些可以去掉?”进行评审。
- 动画样片:快速渲染(
npx remotion render Video-9x16 out/animatic.mp4 --scale=0.4)以在完成前调整节奏和节拍。 - 完整传递 在
src/Video.tsx中(模板示例仅为同步;替换掉;构建概念所需的组件)。长视频:将场景组分配给子智能体,并附上tema.ts和核心规则。 - 评审:
python3 scripts/qa_folhas.py out/<mp4>+ 干净的子智能体评分(参考 critica.md),直到所有项目 ≥ 8(最多 3 轮;评审者对照视频圣经进行评判,而非个人喜好)。python3 scripts/diversidade.py通过(如果指定了连续性:roteiro.linha_de_estilo)。 - 渲染:
bash scripts/render.sh(两遍处理 -14 LUFS,脚本中的格式);在qa_folhas.py的relatorio.txt中检查(-14 ± 1)。 - 交付:MP4 文件 + 封面帧(
npx remotion still … out/capa.png)+ 审阅表 +ANALISE.md(简介、决策、来源、评审分数、需要人工聆听的部分)+ 在 Finder 中显示的文件(open -R)。 最终消息请求评分(1–5) 以及会改变什么。 - 进化技能:请求者的评分 →
diversidade.py --registrar→ 将技术教训记录到APRENDIZADOS.md(简短;添加时合并或删除),美学选择记录到VIDEOS.md,可重用且与主题无关的组件放入biblioteca/(+INDEX.md),模板错误修复并在两种格式中测试,新能力记录到gemini.md。 在 2 个视频中重复出现的专业教训 →direcao.md(无外观示例)。
代码契约
- 时间绝不作为单独数字出现:使用
cue、cueW、blockStart、naBatida(frame)、batida(i)、virada()。 - 格式:使用
useFmt()+pick(paisagem, retrato);每个场景在两种格式下运行(重新构图,而非裁剪)。 - 运动:使用
mola(frame, at, 'ui'|'padrao'|'pesada'|'viva');规则见 direcao.md。 - 模板的核心中性部分:
tema.ts(视频的颜色和字体)、lib.ts(时间、格式、节拍、弹簧)、stage.tsx(SceneStack包含corte/wipe/zoom或自定义转场TransFn、Sheet、Soundtrack、sfxVar)、acabamento.tsx。现成组件位于biblioteca/componentes/,可选,仅在概念之后开放。 - 所有动画都从帧开始(
useCurrentFrame+interpolate/mola);interpolate始终使用extrapolateLeft/Right: 'clamp';从不使用 CSS 的transition/animation(它们不会出现在渲染中)。 - 模板中的
@remotion/*包为 4.0.528(transitions、paths、shapes、noise、motion-blur、lottie、three、media-utils、layout-utils);新包使用相同版本。
硬性规则
- 密钥在
~/.config/secrets.env中(先source;绝不打印)。无配额/预算上限:使用本地语音和partitura。 - 语音克隆必须有书面授权;克隆真实人物的语音仅限内部使用,除非明确授权公开使用。
- 第三方资源必须有明确的许可证,记录在
CREDITOS.md中;绝不使用没有法律依据的真实人物照片、商业音乐或模仿官方作品的第三方标志。 - 真实性:数据必须注明来源或标注为“插图/示例”;屏幕上或帖子标题中不得出现编造内容。
- MP4 和音频文件不得上传到公共仓库。未经询问不得提交。
- 并行会话 修改技能时(
git status显示非您所做的更改):仅做临时交换,或使用自己的工作树(claude --worktree)并合并——绝不重写其他会话的文件。