Communitygithub.com

sui-motion-graphic-reel · 用代码做有设计感的动画

用代码做出有设计感的动画 Reel / 短片(动态设计),含 kinetic 字、几何变形、一镜到底、真 3D 运镜、粒子、手写字、介面动画,全部由 AI 写程序逐帧出片,无需 After Effects。

sui-motion-graphic-reel · 用代码做有设计感的动画란 무엇인가요?

sui-motion-graphic-reel 是一套专为 AI 代码生成动画(如 Claude Code、Cursor、Codex 等)设计的 SKILL,旨在通过编程手段创作具有设计感的动态短片(Motion Graphics Reel),涵盖 kinetic 文字、几何变形、一镜到底、真实 3D 运镜、粒子特效、手写字和介面动画等多种手法,完全取代传统的 After Effects 工作流。它强调在动手编码前先确立统一的“设计系统”(design system),包括颜色、字体、版面、元素性格等,以避免 AI 默认的俗套输出(如粉紫渐变、发光、淡入放大)。该 SKILL 提供完整的开发流程模块:从用户参考收集、设计 Agent 生成多套风格方案、口语化配音与逐字时间对齐,到分镜表确认、九条创作原则(如“一刻一个焦点”、“每幕换一种做法”、“镜头自己动”等),再到渲染前多层审片和交片前自审,最后给出用户不满意时的精准原因排查对照表。此外,它还包含大量实用参考文件:手法词汇表、俗套反义词对照表、15 秒片从第一版改到第七版的完整案例与对比图、自审脚本等。该 SKILL 支持 HyperFrames、Remotion 等引擎,每条规则都附有“做坏长什么样”的反面示例,帮助用户快速定位和修正问题,确保最终动画具有高级感和专业性。

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/suiyang-meta/sui-motion-graphic-reel/tree/HEAD

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

sui-motion-graphic-reel · 用代码做有设计感的动画은(는) 무엇을 하나요?

作者:Sui Yang(IG @asksui.ai)。这份 skill 是从一支 15 秒动画的七轮返工里整理出来的:每一条思路背后都有一版被否决的成片,对比图在 examples/,逐版经过在 references/case-0099.md。

一句话:动画好不好看,九成取决于开做之前定下的设计语言与镜头,不取决于用了多少特效。这份 skill 管的是「怎么想、怎么跟 AI 讲、怎么自己审」,不管你用哪个引擎。

一条线:找 design system(§1:有就照用户的;没有就由设计 agent 出几套给用户选)→ 稿与声音(§2)→ 分镜给人看(§3)→ 定设计语言、逐幕做(§4 九条思路)→ 渲染前审片(§5)→ 出片后自审(§6)→ 交付与返工(§7)。

两种东西分开放(这份 skill 最重要的设计):

住哪里能不能改
口味:用什么颜色、要不要渐层、字体、讲话快慢、有没有角色design system (references/design-system.md,每个专案一份)用户说了算。design system 里的范例只是起手,整份可以换
手艺:全片统一、每幕一种做法、多层次、镜头感、一刻一个焦点、自审这份 SKILL.md §4–§6跟口味无关,换什么风格都成立

碰到规则跟用户要的风格冲突:口味听用户的,手艺照做。例:用户要霓虹渐层 —— 可以,那就整支都是那一套霓虹语言(手艺:全片统一),不要第一幕霓虹、第二幕瑞士网格。


1. 开工先找 design system

没有 design system(设计系统:颜色、字、版面骨架、签名元素、动的性格、不要清单)就开做,AI 会掉回它的预设:粉紫渐层、发光、每一幕淡入放大。所以第一步永远是这个,而且先找、再问、最后才自己出。

有现成的 design system?
├─ 有 → 照用户的做(1A)
└─ 没有 → 用户过一轮问题,或交参考(1B)→ 设计 agent 上班,出几套给用户选(1C)→ 用户选定 → 照它做

1A. 先找:用户有没有自己的

  • 翻专案:design-system.md、品牌规范、design tokens、网站的 CSS 变数、Figma 导出、logo、过去做过的片或图。
  • 翻不到就问一句:「你有现成的 design system 或品牌规范吗?有的话丢给我,我照它做。」
  • 有 → 照用户的做。把它转写成专案里的 design-system.md(栏位见 references/design-system.md)。它已经定的一格都不改;它没写、但做片需要的那几格(动的性格、签名元素、平台安全边)由你补,补的每一格标「AI 补的」,请用户确认。

1B. 没有:用户先过一轮,或交参考

两条路,可以只走一条,也可以都走:

  • 过一轮:一次问完,最多四题,每题给选项。
    • 气质:冷静高级 / 活泼 / 科技感 / 手作感 / 自己讲
    • 颜色:有没有一定要用的颜色?没有就只挑一个强调色
    • 要不要角色或吉祥物、要不要配音
    • 这支片给谁看、放在哪个平台
  • 交参考:一支喜欢的片、一个网站、一张海报、一个品牌都行。每个参考问一句「喜欢它的什么」。学它的语言(色、格、字、动法),不抄它的画面。

1C. 设计 agent 上班:出几套给用户选

把 1B 拿到的答案与参考交给另一个 agent(设计 agent),它只做一件事:出 design system 的方案。派工单与交回格式在 references/design-agent.md。

  • 出 3 套方向,要拉得开(不是同一套换个强调色)。
  • 每一套附一张真的画出来的样张:三套用同一句标题、同一个画面内容,并排成一张图。用户是用眼睛选的,不是读色码选的。
  • 用户可以整套选,也可以混搭(「A 的颜色配 B 的字」)。都不喜欢就问哪里不对,再出一轮。
  • 选定的那一套写成专案里的 design-system.md。之后每一幕只准用这份里的东西;要加颜色、字、做法,先回来改它。

为什么要另一个 agent:做片的 agent 脑子里已经装着稿和画面,让它自己出方案,三套会长得很像。另开一个只看需求与参考的,方向才拉得开。环境里开不了第二个 agent 时,自己照同一份派工单做,一样交三套加样张。

用户不在场

排程、夜班、他说「你决定」:不要卡住等。设计 agent 照样出三套,自己选最贴需求的一套,在 design-system.md 里标明「AI 选的」并附上另外两套的样张,交付时请他确认或换。

栏位与四份范例在 references/design-system.md。

2. 稿与声音:声音先行

  • 稿写成一段讲话,用口语接起来(「你看」「还有」「而且」),不写名词清单。念出来像在跟朋友讲,不像在念标语。
  • 配音整段一次生成,不要一句一句分开生成再拼 —— 分开生成的每一句都像口号,拼起来没有语气。生成时要拿每个字的时间表(多数 TTS 服务有带时间戳的接口)。
  • 画面跟着字走:每一幕、每个元素在「念到那个词」的那一刻到场。片长 = 配音长度 + 收尾,不硬凑整数秒。动作也一样:念到「镜头飞进来」那一句,画面要在那一句飞;动作做在前一句、念到时已经停住,观众看到的是一张不动的图在配一句讲动作的话。把那个词念到的秒数印出来对,不靠估。
  • 不要为了等画面在配音中间插空白。画面来不及讲完,就简化画面。
  • 没有配音的片:先写节拍表(第几秒发生什么),一样照表做。
  • 出片后用语音转文字把成片的声音听写一次,确认每一句都在、没有被切掉半句(切坏的配音,画面上完全看不出来)。

配音怎么接、商用授权要注意什么:references/engines.md「配音」。

3. 分镜先给人看,点头再做

动画做完才发现方向不对,是最贵的返工。开做前出一张分镜表,每一拍一行:

栏写什么
时间 / 念的字这一拍从第几秒到第几秒、配音念哪几个字
焦点这一拍观众的眼睛该看哪一样东西(只能一样)
四层远景 · 中景主角 · 前景 · 资讯层各放什么(§4 第 4 条)
做法这一幕用哪一种动画方法(§4 第 2 条),不准跟上一幕一样
镜头镜头从哪到哪、怎么走
节奏这一拍是密还是疏、明还是暗(§4 第 9 条)。整张表写完,把这一栏单独念一遍
怎么接下一拍用哪一种转场

能的话每一拍先画一格静态关键画面(照 design system 真的画出来),拼成一张联络表给用户看。用户点头才开始做动画。

用户不在场时:分镜表照样写、照样存档,自己照 §4 检查一遍再开做,交付时附上。

4. 九条思路

每一条都写了「为什么」和「做坏长什么样」。手法的名字与讲法在 references/techniques.md。

① 先定一套设计语言,全片只用这一套

开做前把这几样定死,写成一个共用档(tokens),每一幕都从它拿:色板 · 网格与安全边 · 字体与字级层级 · 标题块的位置 · 一层贯穿全片的「签名元素」(例:范例 A 用的是设计工具注记 —— 选取框把手、关键帧轨道、形状名称标签,把做工摊开给人看)。

  • 为什么:观众分不出哪里不对,但一眼看得出「这几幕不是同一支片」。统一是「高级感」最便宜的来源。
  • 做坏长什么样:只把被嫌弃的那一幕改掉,其他幕各用各的颜色(对比 examples/v3-only-first-scene-fixed.jpg 与 examples/v4-unified.jpg)。改一幕就要整支对齐。

② 每一幕换一种做法,不换颜色

丰富感来自「这一幕是怎么动的」,不是来自换配色。一支片里把方法错开用:

题材做法
大字弹簧形变(落地压扁、弹起拉长)
像素 / 复古逐格跳、整数格位移,不做平滑补间
粒子物理模拟或流场,散开再聚合
手写字照真实笔顺一笔一笔描
介面 / 萤幕3D 透视,面板沿深度错开,镜头绕过去
数字滚动计数,每跳一下压扁一下
  • 做坏长什么样:每一幕都是「淡入 + 放大」。再多幕也只有一种动作。

③ 字要真的 kinetic

大字是主角时,它要有重量:掉下来越掉越长、落地压扁再弹回、逐字错开、拉伸进场、压成一条线退场。公式与写法在 references/techniques.md「字」。

  • 做坏长什么样:字只有淡入,或被遮罩平平地推上来。

④ 每一幕四层,一刻一个焦点

层做什么
远景会动的环境,交代「这是哪里」,暗、慢
中景唯一的焦点:主角或主物件,清楚、大、在画面中间
前景从镜头前掠过的东西,做出景深
资讯层标签、计数器、小 UI、字幕

同一时间可以很多东西在动,但最亮、最清楚、动得最明显的只能有一样。丰富靠层数,不靠同时抢眼的数量。

  • 停住的时候:主体(焦点和要读的字)完全停住让人读,背景与周边的东西要一直慢慢动:背景上飘着的小记号、远景的大字、压在主视觉两侧的前景物件、角色的呼吸。全部停住,画面就死了。动感放在主体的外面,不穿过要读的字。
  • 层要前后叠,不是上下排:远景垫在主角后面,前景压在主角的边缘前面。把「远景」「前景」放到主角下方的空白处,那只是多了两样东西,不算叠层;竖屏下方那一带还常被平台的介面盖住。
  • 做坏长什么样:一张卡片摆在纯色底上(少了三层,看起来「很干」);或者四样东西同时在闪(没有焦点,看起来「很乱」)。

⑤ 镜头要自己动

把所有东西放进同一个世界(一块比画面大很多的画布,或一个 3D 空间),让镜头在里面走,而不是原地换画面。

  • 开场:镜头从远处飞进来(fly-in),穿过几层前景,落定那一刻主角才做动作。
  • 前 4 秒要有两波:第一波大位移(0–1 秒),1.5 秒之后再来一波(再走一次镜头、换一个区域、或字本身大变形)。只飞一下就停,等于只有 1 秒的开场。
  • 换场:镜头位移到世界的另一个区域,远中近三层移动速度不同(视差)。走得快的那几帧加动态模糊,字幕不糊。
  • 气质安静的片也要有第二波,只是换一种方式:不一定是大运镜,可以是字本身的变形(拉伸、压扁)、一条线扫过带出下一行、主角物件做一个动作。「慢」是缓动慢,不是不动。
  • 镜头一动,安全边要重新量:推镜、横移之后,原本在安全边里的小字可能被带到画面外。镜头有位移的那几帧要截原尺寸看边缘。
  • 做坏长什么样:开场是一张静止的图;换场是整个画面淡掉换下一张。

⑥ 3D 就用真的 3D

要 3D 运镜,就建一个真的 3D 场景、放一台真的透视摄影机(three.js 这一类):绕弧线走、有加减速、看得到物体的侧面。粒子要有体积、景深、拖尾。

  • 做坏长什么样:把 2D 画面放大当作「推进」;用几个 CSS 方块拼立体(少画几个面、前后遮挡不对,一转就崩);粒子只是一个平面上的点。
  • 真 3D 段一定要逐帧放大检查(§6),它是最容易崩又最不容易在缩图里看出来的。

⑦ 转场本身是看点

除了镜头流动,段与段之间可以用:穿梭(镜头推进上一幕的某个物件里面,里面是下一幕)· 遮罩(从字或形状里透出下一幕、光圈打开)· 形状对位 match cut(上一幕收成的那个点 = 下一幕的笔尖)· 往后拉 reveal(原来刚才那一幕只是很多块萤幕里的一块)。

  • 转场放在配音换句的空档。
  • 每个转场抽几帧连拍检查有没有断、有没有跳(examples/v4-transitions.jpg)。

⑧ 画面全部由「第几帧」算出来

不管用哪个引擎,出片都是一帧一帧截图。所以每一个位置、大小、透明度都要是「帧数的函数」:给它第 137 帧,它就画出第 137 帧。不要用会自己跑时间的东西(CSS animation / transition、自己跑的计时器、3D 引擎自己的动画循环)—— 截图时它们对不上帧,会闪、会跳、会缺东西。

  • 好处:任何一幕都可以放进转场的小窗里、放进片尾的回顾里继续动,因为只要给它一个帧数。
  • 需要时间算的资料(文字取样点、粒子目标位置、角色像素)先算好存成档,不要出片时才算。

⑨ 节奏当音乐写:疏密与明暗都要有起伏

整支片从头到尾同一个密度、同一个底色,每一拍单看都没问题,连起来看很快就腻。把片子当一首曲子:有密有疏、有暗有明,哪里推上去、哪里放下来,开做前就排好。

  • 写一条节奏谱:分镜表每一拍标两格,密 / 疏、明 / 暗。念出来像「密密疏、密密疏、密」才对;连着四五拍都是「密、暗」,就在中间放一拍疏或换一次底色。
  • 疏 = 画面上只剩一样东西:一台手机、一行大字、一个数字,旁边留白。一段快剪的素材不是疏,它是全片最密的地方。
  • 密的那一拍也可以先疏后密:先只出标题,念到重点才把东西放上来。
  • 明暗靠换底色:design system 里的底色不只一个时,整拍换成另一个底色,是做起伏最直接的手段。换的时候整屏换,不要留一条旧底色的边。
  • 最浓的那个颜色只当一闪:整屏铺满强调色,刷过去、盖一下(约一秒内)很有力;拿来当一整拍要读字的底色会刺眼。
  • 做坏长什么样:每一拍都是「同一个底色 + 大标题 + 中间一个框」;或者只在最后才出现第一个疏。
  • 怎么自己查:把每一拍的停住帧缩得很小排成一排,遮住字。看得出段落、看得出哪里亮哪里暗,才算有节奏。

5. 渲染前审片:出片之前先替用户挑完

出一整支片很慢。用户会挑的毛病,多半在出片之前、只看几张静态截图就看得出来。所以画面写完不要直接出片,先过三层,便宜的先做:

层看什么抓得到
① 纸上审分镜表对着审片习惯档逐条答每幕做法重复、少层、焦点不只一个、开场没有两波、偏离要讲的那句话
② 机器量截几张静态图,跑 scripts/preflight.py字出安全边、两拍画面几乎一样、该动的段落没在动、画面太空
③ 审片 agent另一个 agent 只看图与习惯档,替用户的眼睛看主角认不认得出、俗不俗、干不干、物件崩了没、统不统一
  • 审片习惯档(review-habits.md)是这一步的核心:用户过去每一次看片挑出来的事,一条一条记在里面。先找专案里有没有,再找用户自己那一份;都没有就从 references/review-habits.md 的起手条目拷一份开始。
  • 用户每挑一次毛病,就记一条回去。记的时候问:这一条下次能不能在出片之前就查到?能,就写上怎么查。这份档会越来越像他本人的眼睛。
  • 三层都过才出片。必改的条目没过不准出片。
  • 这一步抓不到声音与连续播放的手感,那些留给 §6。

三层各自怎么做、审片 agent 的派工单:references/pre-render-review.md。习惯档的格式、起手条目、怎么长大:references/review-habits.md。

6. 交片前自己审(必做,不等用户骂)

做完不要直接说「好了」。照这个顺序自己看过,写下「我看到什么、改了什么」:

  1. 联络表:每 0.5 秒一格,看整体节奏与每一格读不读得懂。python3 scripts/review.py sheet <成片>
  2. 停住的那几帧放大看:每一拍主体停住的那一刻,用原尺寸截出来一张一张看。缩小的联络表看不出字贴边、人物崩、层叠错。python3 scripts/review.py frames <成片> 1.2 4.5 7.0 …
  3. 会动的段落密集看:转场、3D 运镜、粒子,每 0.1–0.2 秒一格。python3 scripts/review.py burst <成片> <起秒> <讫秒>
  4. 扫定格:有没有连续 1 秒以上完全不动的段落(常见原因:某个元素把整幕冻住了)。python3 scripts/review.py freeze <成片>
  5. 听写:把成片的声音转成文字,对一次稿。
  6. 对 design system:有没有哪一幕用了 design system 以外的颜色、字、做法。
  7. 对上一版:这一版比上一版好吗?如果只是「改了」而不是「更好」,讲出来。

逐格要问的:

  • 这一格的焦点是哪一样?一秒内看得出来吗?
  • 字够大吗、有没有糊、有没有贴边、有没有被别的东西压到?
  • 四层都在吗?一层一层数:远景是什么、前景是什么、资讯层有几样。只数得出主角一层就是薄。拿 examples/v7-near-final.jpg 的任何一格对一下密度。
  • 这一幕的做法跟上一幕不一样吗?
  • 有没有出现 design system 的「不要」清单里的东西?
  • 同一个画面里有没有两个东西在做同一件事?

自审工具也会骗人:联络表每格都对,不代表没有定格(要另外扫);抽到的帧都对,不代表动起来对(3D 与转场要密集看);语音转文字会把同音字、英文品牌名听错(那是听写的问题,不用改配音)。

最多自己改三轮。一轮 = 出一次完整的片 + 照上面七步看完一次;出片前用单张截图检查、当场修的不算一轮。三轮后还留着的毛病,列出来告诉用户,不要藏。

7. 交付,以及用户说「不满意」的时候

交付时讲三件事:这一版做了什么 · 自审看到什么、改了什么 · 还留着什么毛病。

用户的回馈通常是一个感觉。先把感觉翻成画面语言,再动手;翻不出来就问一句,不要猜着改:

用户说多半是哪里先查
很俗套 / 很 AI / 不高级设计语言:颜色太多、渐层发光、风格本身抢戏§4① 与 design system 的「不要」清单
只改了一部分 / 不统一其他幕没有跟着换语言§4①
很单调 / 都一样每一幕同一种动法§4②
很腻 / 没起伏 / 一口气看完很累疏密与明暗没有变化:每拍一样满、整支一个底色§4⑨,先把停住帧缩小排一排看
停住的时候很死主体停住的同时,背景与周边也全停了§4④「停住的时候」
很干 / 很空 / 没层次少了远景、前景、资讯层;或主角太小§4④
很乱 / 不知道看哪同时抢眼的东西太多§4④
很 static / 没动感 / 没空间感镜头没动,或只动了一下§4⑤
运镜很假 / 3D 很怪用 2D 缩放冒充,或 3D 物件崩了§4⑥
字没感觉字只有淡入§4③
像口号 / 节奏很慢配音被切段、中间留空、语速§2
字卡跟讲话没对上元素没有绑在逐字时间上§2
窒息 / 太满主体占满整个画面没有留白,或没有框住缩主体、加框、留出标题与注解的位置

改的时候两条纪律:

  • 改一处,查全片:这次的毛病在别的幕有没有同一个。
  • 用户点名喜欢的不要动。只换它的颜色与网格去对齐,做法原样留着。

每改一轮,回头对一次这支片原本要讲的那一句话。连改几轮后,最常见的事故是每一轮都修好了被点名的地方,但整支片已经不是原本要讲的那件事。


附:档案

档是什么
references/design-system.mddesign system 的栏位 + 四份范例(起手用,可以整份换)
references/design-agent.md设计 agent 的派工单与交回格式(出三套 design system + 样张)
references/pre-render-review.md渲染前审片三层怎么做、审片 agent 的派工单
references/review-habits.md审片习惯档:格式、起手条目、用户每挑一次怎么记回去
references/techniques.md手法词汇表:名字、长什么样、怎么跟 AI 讲、常见做坏
references/engines.md引擎怎么接(HyperFrames · Remotion · 其他)、真 3D、配音、音效、授权
references/case-0099.md一支 15 秒片从 v1 改到 v7 的完整经过:每一版被说了什么、病根是什么、怎么改
examples/上面那个案例每一版的联络表(正反例图);另有一张别的口味的实测片(见 design-system.md 范例 C)
scripts/preflight.py渲染前量测:只吃静态截图,出停住帧并排(画安全边)、连拍、提醒清单(需要 Pillow)
scripts/review.py自审脚本:联络表、原尺寸截帧、密集连拍、扫定格(只需要 ffmpeg;产出放在成片旁边的 review/<成片档名>/,每一版各一夹,方便跟上一版比)

관련 스킬