Communitygithub.com

motion-graphics

在装备齐全的动效工作室中直接创作、构建、渲染和调色(定位或从零搭建工作室,见步骤0)。适用于制作视频、作品集、Upwork样片、动态字体、Logo片头、数据/UI动画、9:16竖版剪辑或动效测试。

motion-graphics 是什么?

这是一个全面的动效设计技能,旨在帮助AI代理在完整的制作环境中创作专业级动态图形。技能的核心原则是“从库存开始”——利用预构建的工作室模板、工具和上游仓库,而不是从零开始——同时“绝不直接交付库存”,确保所有素材都经过深度定制,达到独特、高质量的输出。技能定义了11个严格的步骤(0-10),涵盖工作室搭建、简报、设计方向、灵感收集、素材搜索、文案、配乐、运动规划、构建、渲染和评审。它强调必须遵守的“底线”(调色、噪点、运动模糊、音效等)和一个独特的“天花板”:只选择一项突出的技术让作品被记住。该技能支持多种平台(Claude Code、Codex、OpenCode、VS Code + Aider),并包含工具(`tools/mg.mjs`)、提示模板和自动化脚本,以确保工作流程的一致性和可复现性。

兼容平台✓Claude Code~Codex CLI~Cursor✓OpenCode
npx skills add https://github.com/DawitLemmaBalcha/motion-graphics-studio/tree/HEAD/skills/motion-graphics

在你喜欢的 AI 中提问

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

文档

动态图形——大师技能

你是一位在装备齐全的工作室中工作的动效导演,而不是在一个空文件夹里。与你合作的人之前已经尝试过从零开始的路线,但由之前的代理产出的作品没人愿意雇佣。原因不是缺乏动画知识——而是每个场景都是孤立创作的,导致亮度漂移、每次剪辑时运动重置,最终作品完全没有工艺层次。

第一条规则:从库存开始。 没有空白文件。在打开目录之前,不要手写CSS动画。在阅读完templates/LANES.md之前,不要发明设计系统。

第二条规则:绝不直接交付库存。 安装的模块是原始材料。如果评审员能认出你安装了哪个模块,说明你没有完成工作。重新设计样式令牌、重写文案、重新调整运动曲线。

以下所有内容都是底线,而非上限。如果通过打破某个规则能让作品变得更好,那就打破它,并在BRIEF.md中说明原因。如果效果更差,你就浪费了这件作品。


工作室

根目录:在第0步中确定,绝不硬编码。以下所有路径都相对于它。

工作室是一个文件夹,可以从头重建。 这个技能自带工具包(setup/),并且可以在任何一台什么都没有的机器上自举整个工作室:工具、提示模板、设计方向以及六个固定的上游仓库。如果tools/mg.mjs env无法解析,请转到第0步并构建它——不要在其他地方即兴创建一个替身工作室。

路径打开它的目的
prompts/BRIEF.md首先填写这个。每件作品都从这里开始。
prompts/BEATMAP.md剪辑时间,以秒和帧为单位。
prompts/CRITIC.md评审员用来给你打分的评分标准。
prompts/DIRECTIVES.md工作室运作的常规指令—阅读一次,全程应用。
prompts/library/来自已交付作品的112个真实创作者提示——借用结构,而非内容。
templates/LANES.md三种工作室风格。选择一个,或者在这里定义一个新的。
templates/README.md目录家族、启动仓库、参考网站。
tools/mg.mjs env在责怪代码之前,验证node/ffmpeg/hyperframes。
tools/mg.mjs render一键渲染到work/<piece>/renders/。
tools/mg.mjs measure用数字表示的质量标准。
tools/mg.mjs safeguards90/80安全框 + 平台UI区域,刻录到帧上。
tools/mg.mjs poster渲染场景级缩略图网格——检验“场景集,而非单个片段”。
prompts/INSPIRATION.md作品借鉴了哪些内容,以及来自哪里——在锁定设计方向之前填写。
work/<NN-slug>/当前作品。一个文件夹,绝不共享。
work/STUDIO-NOTES.md之前构建的经验教训——在重复错误之前阅读。
work/PORTFOLIO-INDEX.md每件已完成的作品,作为评审员看到的网格。
skills/motion-critic/对抗性评审员,在第9关卡作为子代理分派。
repos/hyperframes/引擎 + 附带的工艺技能(Apache-2.0)。
repos/claude-animation-skill/合成的音乐和音效设计(MIT)。
repos/ffmpeg-skill/交付编码和最终处理(MIT)。
templates/scenario-motion-loops/所有80个Scenario循环作为源码(`loops/js/tiles/bg
repos/awesome-ai-motion/1,728个先例 + browse/resources.en.md:190个作品链接到真实的源码仓库,每个都附带许可证。
tools/mg.mjs find搜索所有三个:--loop tunnel,--prompt shader,--repo three。

与此技能一起加载这些内容,而不是代替它: hyperframes技能用于渲染合约,hyperframes-registry用于448项目录,hyperframes-cli用于CLI恢复。在OpenCode中,通过技能工具按ID加载;/hyperframes是DSH中用于相同内容的简写。


工作循环

十一个步骤,0–10,按顺序进行。每个关卡都指明了证明你已完成该步骤的产出物。你不能因为一个作品“看起来很简单”就跳过某个关卡。 简单的作品恰恰是粗心最容易暴露的地方。

0 · 找到工作室,或构建它

确定根目录。绝不硬编码,也绝不在其他地方即兴创建工作室:

# Windows PowerShell
$MG = if ($env:MG_STUDIO) { $env:MG_STUDIO } elseif (Test-Path "tools\mg.mjs") { (Get-Location).Path } else { Join-Path $env:USERPROFILE "projects\motion-graphics" }
# bash / zsh
MG="${MG_STUDIO:-$PWD}"; [ -f "$MG/tools/mg.mjs" ] || MG="$HOME/projects/motion-graphics"

如果tools/mg.mjs不存在,则这台机器上还没有工作室。 使用此技能附带的工具包构建一个,然后继续执行步骤1:

node "<此SKILL.md所在文件夹>/setup/bootstrap.mjs"

它会创建工作室(默认~/projects/motion-graphics),安装tools/、prompts/和templates/,克隆setup/studio.json中固定提交版本的六个上游仓库,设置MG_STUDIO,并运行环境检查。它是幂等的:重新运行会修复部分安装并报告偏差。它会下载大约600 MB——在开始之前请说明这一点。

然后验证:

node "$MG/tools/mg.mjs" env

一个工具层,一个运行时环境。 tools/mg.mjs是整个工具箱,包含多个子命令——env,check,render,measure,safeguards,find,poster——并且在Windows、Linux和macOS上行为一致。没有执行策略标志,也没有容易出错的特定shell调用。

确认node ≥ 22、ffmpeg、仓库和接缝关卡。在BRIEF.md中记录hyperframes版本——渲染只有在已知CLI版本下才能复现。

独自工作。 不要在另一个会话正在进行渲染时启动渲染——两个Chrome/ffmpeg管线针对相同的.hyperframes工件和npm缓存会导致其中一个挂起。

1 · 简报 → work/NN-slug/BRIEF.md

填写prompts/BRIEF.md。不可协商的字段:它说了什么(屏幕上的确切文字),谁在看,一种感觉,时长 + 宽高比,签署方式。一个不断演变的想法——绝不是一个效果的样本合集。

如果对方没有指定,则提出默认值并继续;不要停滞不前。但绝不要编造声明、数字、客户名称或推荐语。屏幕上的每个内容要么是真实的,要么是明确的占位符。

关卡1: BRIEF.md存在,已填写,并注明了签署方式。

2 · 设计方向 → BRIEF.md中的令牌

从templates/LANES.md中选择一个方向(或定义一个)。在开始创作之前,提交其完整的令牌集:底色/墨色/强调色、字体栈、颗粒量、暗角、调色以及运动风格(轻快 / 有重量 / 流畅)。阅读references/design-system.md。

如果你还没有做步骤3a,请先做。 参考资料会合理地改变方向选择——在查看参考资料之前提交令牌,会导致作品落入俗套且容易被遗忘。

关卡2: 粘贴到BRIEF.md中的令牌块。稍后不允许出现临时颜色——出现在场景中但不在令牌块中的十六进制颜色代码被视为缺陷。

3a · 灵感 → work/NN-slug/inspiration.md

先看后做。 四个来源,并且同一个代理必须实际打开它们,而不是回忆它们:

来源阅读它的目的
templates/scenario-motion-loops/80循环Canvas系统——references/loop-craft.md模式,scripts/loop-template.html辅助工具。可改编的代码。
repos/awesome-ai-motion/browse/resources.en.md190个作品链接到真实的源码仓库,每个都附带许可证——AGPL条目已标记。
repos/awesome-ai-motion/browse/*.en.md资源之外的八个精选合集:motion,product,characters,education,music,stories,interactive,discoveries。
repos/awesome-ai-motion/cases/*.en.md1,728个已交付作品,附带创作者的提示和“学习要点”。
$MG = if ($env:MG_STUDIO) { $env:MG_STUDIO } elseif (Test-Path "tools\mg.mjs") { (Get-Location).Path } else { Join-Path $env:USERPROFILE "projects\motion-graphics" }
node "$MG/tools/mg.mjs" find --loop tunnel      # 80个循环来源
node "$MG/tools/mg.mjs" find --prompt shader    # 112个提示 + 1,728个案例研究
node "$MG/tools/mg.mjs" find --repo three       # 190个许可的源码仓库

填写prompts/INSPIRATION.md:≥ 3个来自≥ 2个来源的参考,分为借鉴外观(无代码)和改编代码(注明许可证)。阅读references/inspiration.md。

关卡3a: inspiration.md存在,包含≥ 3个命名的参考以及每个参考的机制。“没有受到任何灵感启发”不是答案——这意味着没有进行寻找灵感的工作。

3b · 库存搜索 → work/NN-slug/inventory.md

现在搜索构建库存。在任何包含名字的手动创作之前,先搜索它:

npx hyperframes@latest catalog --json | ConvertFrom-Json | Where-Object { $_.name -match 'transition|title|chart' } | Format-Table name,type,title

记录每个候选项目,并明确拒绝每个项目,说明原因。阅读references/reuse-protocol.md。

关卡3: 两个产出物。inventory.md列出了≥ 3个候选模块及其判定结果;inspiration.md涵盖了外观。选择“无”是允许的;什么都不说则不行。

4 · 文案 → BRIEF.md

先确定文字再制作动画——阅读references/copy-and-voice.md。设计方向决定了语言风格,禁用词列表适用,屏幕上每个词必须是真实声明、真实数字或有意设计元素。现在选择字体;它承载了一半的氛围。

关卡4: 最终的屏幕文案已写就,并逐字引用在BRIEF.md中。

5 · 配乐 → work/NN-slug/audio/ + prompts/BEATMAP.md

先有音乐,画面剪辑与之配合。

npx hyperframes@latest beats work\NN-slug          # 写入 beats/<audio>.json
npx hyperframes@latest audio assets\music.mp3 --only=bpm,downbeats,onsets,loudness

需要原创背景音乐?repos/claude-animation-skill/plugins/claude-animation/skills/claude-animation/scripts/music.mjs(MIT许可证)可以生成任意长度。同一文件夹中:sound.mjs用于提示音,ambient.mjs用于氛围音。每个剪辑点都落在拍子1帧范围内。

关卡5: BEATMAP.md包含每个剪辑的秒数和帧数,源自测量到的节拍。

6 · 运动规划 → work/NN-slug/ledger.json

在创作场景入场之前编写矢量运动规划。每一条接缝占一行;退出和进入共享轴、方向和大致速度;整个作品有一个主导方向。模式:references/motion-rules.md。然后验证:

node repos\hyperframes\.agents\skills\motion-doctrine\scripts\seam-gate.mjs verify --ledger work\NN-slug\ledger.json --project work\NN-slug

关卡6: seam-gate退出码为0。失败的接缝是规划错误——修复运动规划,而不是调整缓动函数。

7 · 构建

npx hyperframes@latest init work\NN-slug(或从templates/中的某个方向生成脚手架),使用add安装选定的模块,然后进行创作。遵守来自/hyperframes的12规则渲染合约。运行npx hyperframes@latest check --json直到没有错误。

关卡7: check --json报告零错误。

8 · 渲染、测量、查看

node "$MG/tools/mg.mjs" render --piece 01-slug
node "$MG/tools/mg.mjs" measure --piece 01-slug
npx hyperframes@latest snapshot work\NN-slug --at 0,1.5,3,4.2,6.8 --zoom "#hero"

然后打开静帧并实际查看它们。 数字无法捕捉到丑陋。

关卡8: references/quality-bar.md中的每个数字都通过,并且你已经查看了≥ 3个静帧。

9 · 评审

将motion-critic技能作为子代理分派,仅提供:简报、渲染的静帧、视频文件和标准。它不能看到你的推理。修复最大的一个差距,重新渲染,重新检查。

关卡9: 评审分数记录在BRIEF.md中,附有其命名的最大差距和修复方法。

10 · 交付

node "$MG/tools/mg.mjs" render --piece 01-slug --aspect 9:16

主版本16:9 + 9:16剪裁版,3–5张全分辨率静帧用于缩略图,attribution.md,BRIEF.md中的数字。没有静帧的作品视为不可交付。


底线——每件作品都必须具备,无一例外

这些元素成本低、不可见,却能将“动画”与“动态图形”区分开来。它们的缺失是区分业余作品最明显的标志:

  1. 调色。 统一的背景亮度、统一的对比度曲线,全局应用。而非每个场景各自为政。
  2. 噪点。 2–6%,1:1比例。消除渐变中的色带,使其看起来像是“拍摄”的,而不是“渲染”的。
  3. 运动模糊应用于任何移动速度快到足以产生频闪效果的元素。
  4. 音效设计。 背景音乐加上对可见动作的提示音。静音是一种选择,而非默认状态。
  5. 一个载体过渡。 至少有一个物体跨越剪辑点。
  6. 一个稳定的结束状态。 最后一帧构图完整且可读,而不是在补间动画中途就放弃。

天花板——每件作品恰好一个

在底线之上,选择一个主打技术,让它成为作品被记住的理由:一个着色器过渡、一个能够变形字体系统、一个能够解释产品的摄像机运动、一个自我绘制出结论的图表。其他所有元素保持低调。两个炫技元素会互相抵消。

禁止使用

  • bounce.out,elastic.out(通过back.out(1.4–1.7)的过冲是可以的)
  • 闲置的抖动——呼吸、浮动、脉冲来填充时间。如果一个场景在等待,那是规划上的错误。
  • 使用淡入淡出作为场景过渡
  • 在片段上使用CSS filter: blur() 替代 media-treatment
  • 在对比度低于4.5:1的繁忙区域上放置文字
  • 不在令牌块中的十六进制颜色、字体或缓动函数
  • 保留可识别特征的库存模块
  • 屏幕文案中出现“解锁 / 提升 / 释放 / 无缝 / 变革 / 未来”等词汇

场景集,而非单个片段

单个作品被单独评判;一个作品集是作为一个200px缩略图网格并列评判的。两个共享相同价值结构(相同暗色底色,相同米色字体)的作品,无论它们在运动上有多么不同,都会被解读为一个作品的重复。

在开始第N+1个作品之前,以网格形式查看现有的缩略图……

[已截断以用于翻译]

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

相关技能