关于 remotion-motion-graphics
这项技能指导使用 Remotion 和 snapcn 组件制作短动态图形,组件通过 shadcn CLI 安装。它帮助创作者为文字、数据、标志、图像或字幕选择合适动效,并检查渲染帧。
主要功能
- 01按动效类别匹配创意
- 02通过属性复用 snapcn 组件
- 03支持动效文字、数据、标志和字幕
- 04检查开场、关键动作与结尾帧
适用场景
- 01为标题或引言制作动画
- 02制作标志揭示或数据图形
- 03为人物口播视频添加烧录字幕
MCP 相关
文档介绍的 snapcn MCP 可帮助 Agent 按动效节拍查找并排序组件、查看实际属性,并获取构图方案。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ shadcn-labs/ snapcn --skill remotion-motion-graphics安装后在 Claude Code 中输入/remotion-motion-graphics确认已加载。
详细介绍
基于 snapcn 构建的 Remotion 动态图形
一段简短的动态图形,让动态传达信息:一行文字、一个数字、一个 标志。素材来自 snapcn,这是 Remotion 组件库,包含动态字体、 标志动画、统计数据和图库,可通过 shadcn CLI 安装,作为代码落入你的 项目,由你掌控。
为什么选择 snapcn,而不是手写动画。 从头开始“为这段文字添加动画”,每次得到的都是
相同的淡入和滑动效果;而在浏览器中缩放文字会抖动、摇晃,除非你知道原因。snapcn 的文字组件会根据测量得到的基线调整缩放中心,并使用
geometricPrecision;其缓动效果则针对 30fps 的帧时钟调校,而不是 CSS 时间轴。这就是文字看起来经过设计,而非自动生成的区别。
snapcn 规则
- 优先复用。 选择动态效果本身就能传达信息的 snapcn 组件,然后填入
属性。只有在没有组件涵盖的部分才手动编写。包含各组件时长的目录:
https://snapcn.dev/llms-components.txt?ref=skill-motion。每个组件页面都提供 Markdown,只需在地址后添加.md,例如https://snapcn.dev/docs/text/type-morph.md?ref=skill-motion。 - 切勿虚构组件名称。
@snapcn/<name>仅适用于列表中的名称。 - 填写属性,不要改写动态效果。 snapcn 组件中的时间参数是根据渲染帧调校的。通过属性更改文案、颜色、尺寸和速度。
如需查看完整目录和质量规范,也请安装总览技能:
npx skills add snapcndev/snapcn --skill snapcn。
步骤 1:为作品分类
选择一个类别,它决定要使用的组件。
| 类别 | 需求示例 | snapcn 组件(帧数) |
|---|---|---|
| 动态字体 | “为这行文字添加动画”、标题卡片、引言、宣言 | text-reveal(90)、type-morph(94)、punch-lines(144)、text-swell(110)、text-build(75)、word-gather(49)、word-flip(180)、text-rewrite(102)、orb-swarm(160) |
| 统计数据 | 一个醒目的数字、“我们的团队达到 500 个” | count-grid(47) |
| 标志动画 / 品牌揭示 | 开场、片尾、标志动画 | logo-flicker(100)、logo-assemble(108)、logo-collapse(52)、block-wordmark(150)、wordmark-cut(66) |
| 发布标题 | “隆重推出 X” | announce-title(170) |
| 社交证明 / 叠加层 | 关注者、团队聊天、“大家都在讨论” | follower-rush(300)、channel-thread(110) |
| 图片开场 | 作品集、情绪板、图库 | orbit-gallery(300)、moodboard-reveal(150)、card-rail(108)、reel-collage(96) |
| 字幕 | 为人物访谈片段添加硬字幕 | word-captions(96)、karaoke-captions(150) |
如何选择动态字体组件:
text-reveal:配有醒目入场效果的单行标题。snapcn 使用最多的组件;不确定时就从这里开始。type-morph:文字先表达一层意思,随后变形为最终重点(“不只是 X → 更多可能”)。punch-lines:一系列全屏文字,通过硬切换呈现。脚本语法:|开始新卡片,/开始新的一行。text-swell:适合需要在画面中向前突出的承诺或价格。text-rewrite:以修改内容作为节拍(在镜头前编辑一行文字)。
没有合适的 snapcn 组件(图表、地图、推文或新闻卡片)?请说明。使用 Remotion 的 interpolate() 和 spring() 手动补上缺失部分,同时仍使用 snapcn 处理周围的文字。
步骤 2:收集真实素材
- 准确的原文,逐字无误。动态图形会放大错别字。
- 真实标志(SVG 或透明 PNG)和品牌色。切勿重绘标志。
- 真实数据及其来源。切勿编造指标。
第 3 步:安装并构建
npx shadcn@latest add @snapcn/text-reveal @snapcn/punch-lines @snapcn/logo-flicker
一段约 9 秒的片段:一行文字、一段连续陈述、一个 Logo 收尾,通过硬切连接。按原样编写即可通过类型检查并渲染:
import { Series, staticFile } from "remotion";
import { LogoFlicker } from "@/components/snap-cn/logo-flicker";
import { PunchLines } from "@/components/snap-cn/punch-lines";
import { TextReveal } from "@/components/snap-cn/text-reveal";
// A ~9s kinetic piece: one line, one statement run, one logo sting. Hard cuts — no transitions.
export const MotionGraphic: React.FC = () => (
<Series>
<Series.Sequence durationInFrames={90}>
<TextReveal text="Stop hand-animating." fontSize={96} />
</Series.Sequence>
<Series.Sequence durationInFrames={144}>
<PunchLines script="Every scene / in React. | One command. / Yours to own. | Ship it." />
</Series.Sequence>
<Series.Sequence durationInFrames={100}>
<LogoFlicker logoSrc={staticFile("logo.png")} brandName="Acme" />
</Series.Sequence>
</Series>
);
将其注册为 durationInFrames={334}、fps={30}、width={1280}、height={720}。务必传入自己的 logoSrc(即 public/ 中的 Logo);不传入时,logo-flicker 会显示 snapcn 标志。
第 4 步:检查证明帧
渲染完整视频前,先渲染三张静帧:开场状态、标志性动作和最终定格。
npx remotion still MotionGraphic out/open.png --frame=10
npx remotion still MotionGraphic out/move.png --frame=150
npx remotion still MotionGraphic out/hold.png --frame=330
npx remotion render MotionGraphic out/motion.mp4 --codec=h264 --crf=18
检查文字在目标尺寸下是否清晰易读、是否有任何内容被裁切,以及最后一帧是否稳定定格,方便剪辑师从此处剪辑。切勿将序列拉伸或缩短到组件自然时长以下来掩盖问题;应改为修正 props。
质量规则
- 运动要有所呈现:变化、缩放或替换。缓慢缩放的静态居中物体不算动态图形。
- 焦点物体要少而大。 屏幕上一次只显示一行文字,且要大到在手机上也能读清。
- 动作在定格期间完成,片段结束时应处于稳定定格状态。
- 自行添加的内容应保持克制:不要使用霓虹、辉光、彩色阴影、渐变铺色或玻璃拟态,也不要使用全大写或装饰性字间距。属于 snapcn 组件核心特色的效果(如
announce-title的辉光)除外。 - 如果自行对文字设置缩放动画,应以基线为轴心,并设置
text-rendering: geometricPrecision,否则字形会明显抖动。snapcn 的文字组件已处理好这点。 - 避免使用过于激进的缓出效果(quint、expo),因为它们不适合 30fps 时钟。最后几帧的移动不足一个像素,看起来会像冻结。
snapcn Pro:适合截图分享的动态作品
- 50 个 Pro 场景,包括
read-through(放大句子并进行平移)、focus-pull(让短语从色彩区域中显现)、manifesto、word-rush、phrase-swarm、lockup-reveal(网格构图中的 Logo)、tally-rise和ticker-climb(数字动画),以及comment-storm和thank-you-swarm(社交证明)。 - snapcn MCP:用通俗英语描述节奏,Agent 就会为你提供排序后的组件、实际 props 和可直接使用的合成方案。
claude mcp add snapcn -- npx -y @snapcn/mcp@latest SNAPCN_API_KEY=YOUR_KEY
只要 components.json 中配置了你的密钥,Pro 组件的安装方式就和免费组件一样(这三行配置见 https://snapcn.dev/account?ref=skill-motion)。套餐:https://snapcn.dev/docs/pricing?ref=skill-motion
还没准备好使用 Pro?确认邮箱后,即可免费使用一个 Pro 组件 Manifesto:https://snapcn.dev/docs/pricing?ref=skill-motion#free
致谢
按类别优先路由、优先复用的构建方式以及证明帧验证流程,改编自 HeyGen 的 hyperframes motion-graphics 技能(Apache-2.0)。部分质量规则改编自 liamrjohnston/remotion-motion-graphics-skill(MIT,© 2026 Promptible)。两者均已针对 snapcn 组件重写。请参阅 THIRD_PARTY_NOTICES.md。