product-launch-motion 教程:用代码从网站做出 60 fps 产品发布片(2026)
阅读说明
仓库信息查阅日期:2026-10-23;星数、更新时间会变,以仓库页面为准;本文不写价格。
一句话结论
AbubakrChan/product-launch-motion 是一个 Claude Code 技能。当前的 v2 从网站地址出发,让模型当导演:用一个不会硬切的形状、闭式阻尼弹簧和光标,把产品发布片写成单个 HTML,再渲染成 60 fps 的 MP4。
适合要做界面演示、品牌片头或发布片,并且愿意自己准备 Node、Playwright、FFmpeg 和一首音乐的人。README 写明要用 Claude Opus 5.5;更小的模型能跟着规则走,但会漏掉细节。需要旁白讲解时,README 建议改用留在 legacy/ 里的 v1。
仓库信息
截至 2026-10-23,星数、最近推送和创建时间取自仓库元数据,日期为北京时间。
| 仓库 | 星数 | 最近推送(北京时间) | 许可 | 创建时间 |
|---|---|---|---|---|
| AbubakrChan/product-launch-motion | 345 | 2026-10-22 | MIT | 2026-07-27 |
仓库描述是 “Claude Code skill for Dribbble-level product launch videos from code.” README 写明技能和 references/ 为 MIT。样片不随许可一起给出去:它们是为 Cheerful 做的,归属该产品,详见 NOTICE。
它能做什么样的视频
README 展示的成片都是 HTML 按时间算出来的帧,再编码成带声音的 MP4。预览图本身没有声音。
| 成片 | README 写明的规格 |
|---|---|
| 发布片 | 30 秒,为 Cheerful 制作,1080p、60 fps、有声音。文件名 launch-film-1080p60.mp4 |
| 同一支片子的玻璃通道 | 可选的 WebGL 玻璃处理,折射的三维形状穿过每个场景。文件名 launch-film-glass-1080p60.mp4 |
| One shape, never cut | 14 秒无缝循环,1440×1440,有声音。文件名 one-shape-loop-1440.mp4 |
| Hoopoe Club | 43 秒,Arabic,有声音。文件名 hoopoe-club-1080p60.mp4 |
14 秒循环里,同一个元素依次变成十一个界面状态:button、loader、check、dynamic island、video reel、slider、toggle、tabs、chart、⌘K palette、toast,再回到 button。内容用一段短模糊换掉,光标负责点击和拖拽,最后一帧等于第一帧。
README 用下面这些规则约束成片。完整提示和审片笔记在 references/prompts.md,代码套路在 references/technique.md。
- 一个形状,不做硬切。状态之间是形变、镜头推进,或推进某个元素、让它变成下一场。
- 容器里的文字先短促退出,新文字再用弹簧进入,两者不重叠。
- 只用闭式阻尼弹簧,过冲很小。开关旋钮和标签指示器的两条边用不同弹簧,所以会拉长。
- 光标驱动每一次变化:按下有缩放和涟漪,拖拽在松开后弹回。产品自己的代理可以成为第二支光标。
- 每个状态都要被镜头框住。空镜算错误。拉远用来表现规模。
- 音乐优先。用 numpy 量出节拍网格,高潮落在大场面,每个合成界面音效按自己测到的峰值卡在鼓点上。
- 用真实数字和原创场景。里程表上是真实数字,客户标志一拍一个,不从产品网站整页抄。
- 模型自己做创意决定,每条记成一行
DECISION:,你可以在下一句里推翻。
v1 和 v2 的差别,README 表如下:
v1(legacy/) | v2 | |
|---|---|---|
| 时间 | 锁在旁白的词上 | 锁在测出来的音乐节拍上 |
| 运动 | GSAP 时间线 | 闭式弹簧,纯 seek(t) |
| 渲染 | HyperFrames | Playwright 子帧 + ffmpeg tmix 运动模糊 |
| 结构 | 镜头和转场 | 一个形状,不硬切 |
| 声音 | 音效库,做电平 | 合成音效,按测到的峰值摆放 |
| 纵深 | CSS 镜头机位 | 镜头弹簧,外加可选的 WebGL 玻璃 |
README 写 v1 仍然更适合有旁白的讲解片。README 还写原版 v1 当时是 190 星,代码留在 legacy/。
流水线原文:
brief ──► state list on the beat grid ──► one HTML film, every pixel = f(t) in seek(t)
──► one frame per beat, contact sheet, fix ──► Playwright: 4 subframes per frame
──► ffmpeg tmix (motion blur) ──► 60 fps H.264 + mix ──► storyboard + seam scan
因为每一帧都是时间的纯函数,跳到任意时刻得到的像素相同。README 写这是按拍质检和并行渲染的前提。
需要准备什么
README 的 Requirements 表:
| 需要 | 用途 |
|---|---|
| Claude Code,并使用 Opus 5.5 | 导演和搭建成片。更小的模型能遵守规则,但会漏细节 |
| Node ≥ 20,以及 Playwright | 渲染 |
| FFmpeg | 运动模糊、编码、响度检查 |
| Python 3 和 numpy | 节拍网格和合成音效 |
| 一首大约 120 BPM 的免版税歌曲 | 可选。每首曲子的许可要单独看;有些免费素材库里夹着受限条目 |
README 写 Everything runs locally。仓库没有写需要单独的 API key。
安装与第一次运行
- 安装当前技能。README 的命令是:
npx skills add AbubakrChan/product-launch-motion
已经装过、要换成最新版时,README 写的是
npx skills update。README 按安装日期分了三种情况:
- 2026-10-13 之前装的是 v1。运行
npx skills update后,product-launch-motion会被换成 v2。 - 2026-10-13 或 2026-10-14 装的 v2 曾经短暂叫
motion-launch-video,update找不到它。需要重装一次:
npx skills remove motion-launch-video
npx skills add AbubakrChan/product-launch-motion
- 旁白讲解还要留着 v1 时,和 v2 并排安装:
npx skills add AbubakrChan/product-launch-motion/legacy
- 装好后打开 Claude Code,用下一节的提示做第一支片子。仓库文件各管一块:
SKILL.md是创意方向和流程,references/prompts.md是原始提示和审片笔记,references/technique.md是弹簧、镜头、光标、里程表、音频和渲染的代码套路。
在 Claude Code 里用 Opus 5.5 驱动它
在 Claude Code 里用 /model 选 Opus 5.5,详见 Claude Opus 5.5。
README 在安装命令之后给出的用法是,在 Claude Code 里说:
Make a launch video for https://your-website.com
README 写模型会读网站、写故事、导演每一场,并渲染一支 60 fps 的 MP4,带音乐、对上时间的音效和运动模糊。上面的样片也是从一条 URL 开始,再来几轮修改意见。
SKILL.md 把流程写成这几步:
- 先要输入,除非用户已经给了,或说了你来定:形状要变成的 8 到 12 个状态、调色(黑白、一个强调色,或品牌设计系统),以及一首大约 120 BPM 的免版税歌曲。可以提供 “Director's cut / Director picks”。
- 先导演,再写代码。定下产品故事、品牌处理、音乐弧线,以及按拍的场面计划。每个决定记成
DECISION:。用户没有要求先批准时,不要干等。 - 做成一个 HTML。每个样式都在
seek(t)里由时间算出来。不用 CSS transition,不用计时器,帧与帧之间不保留状态。 - 全片渲染前,先每一拍出一帧,做成接触表,改掉不在网格上、挤、空、难读或重叠的地方。转场再看 ±0.1 秒。还要用低分辨率、正常速度看一遍动态草稿。
- 全片渲染:Playwright 子帧,ffmpeg
tmix运动模糊,然后是 60 fps 的 H.264 加混音。 - 用每秒一帧的故事板和帧差扫描检查 MP4 的接缝和毛刺,并核对音效是否对上画面。
SKILL.md 写交付物放在 deliver/:MP4、每秒一帧的故事板、关键静帧,以及用来对比的上一版。交出方式写成 serve <dir> 的 tailnet 地址,并写明 never localhost。
示例提示词(按 README 写明的用法改写,不是仓库原文):
为 https://example.com 做一支产品发布片。先向我要 8 到 12 个界面状态、调色,以及一首大约 120 BPM 的免版税曲子;我也可以回答 Director's cut 或 Director picks。用同一个形状连续变形,不要硬切。全部画在一个 HTML 里,用 seek(t) 计算每一帧。渲染成 60 fps 的 H.264 MP4,音效按测到的峰值放在节拍上。
做一支 14 秒、1440×1440 的循环。一个形状依次变成按钮、加载、对勾、滑杆、开关、标签、图表、命令面板和提示,最后一帧等于第一帧,光标的位置和速度也要接上。先给出节拍上的状态列表,再写代码。
限制与已知问题
SKILL.md 写明的限制和易错点:
- 禁用弹跳缓动、粒子爆发、辉光、界面控件上的渐变、不统一的图标描边、空的时间,以及看起来像模板的画面。调色用品牌自己的设计系统。
- 不要把产品网站的文案、界面、数据和图片整页搬过来。大数字用站得住的真实数据,微型故事可以编,报告里要写明哪部分是真的。
- 客户标志一拍一个,只用真正跑过活动的品牌。素材要有许可,并逐条检查。
- 循环片的最后一帧必须等于第一帧,包括光标的位置和速度。
- 相机会缩放的元素不要加
will-change,否则文字发糊。 - 必须在时刻 T 到达的弹簧,要提前一个 settle-lead 发出目标。
hide()把不透明度打成 0 之后,要由绘制函数改回来,否则元素一直不可见。- 比例字体的里程表数字会跳。每个槽按最终字形定宽,只在垂直方向裁切。
SKILL.md另有一段写在 VPS 上渲染:磁盘紧,按 4 秒一段渲染并删掉 PNG;Chromium 会先被 earlyoom 杀掉;项目目录外若有/tmp/inspect.py会挡住标准库,Python 要从项目目录跑;PreToolUse 钩子会挡住某些 ffmpeg 通配字符串。
references/prompts.md 里的工作约定还写:非阻塞的选择不要停下来问,决定后用 DECISION: 汇报;交出 tailnet URL,不交 localhost 或 VPS 路径;报告要区分听过声音还是只做了测量。
截至 2026-10-23,仓库没有 open issue。
常见问题
能不能用 Codex 或 Cursor?
README 未写明 Codex 或 Cursor。安装和使用都写在 Claude Code 里,并点名 Opus 5.5。
成品是 HTML 还是 MP4?
两边都有。制作过程是一个 HTML,每一帧由 seek(t) 计算。交出来的成片是 60 fps 的 H.264 MP4,另加故事板和关键静帧。v2 的渲染器是 Playwright 子帧和 ffmpeg tmix。v1 用 HyperFrames。
商用和许可怎么算?
NOTICE 写明 MIT 覆盖作者写的材料:SKILL.md、references/、legacy/,以及 README 的正文。v2 样片(examples/ 和 v2.0.0 发布包)以及 v1 参考片、legacy/still-1.jpg 归 Cheerful,不得再使用、再分发或修改这些成片及其帧。片中的品牌标志归各自所有者。
样片音乐署名是 Arulo 的 “Swish Swed”,Mixkit Free License。字体是 DM Sans(SIL OFL 1.1)。音效是合成的。NOTICE 写依赖要单独看条款:Playwright 为 Apache-2.0,Python 与 numpy 为 BSD,FFmpeg 视编译方式为 LGPL 或 GPL。v1 还会用到 GSAP 和 HyperFrames,GSAP 适用 GreenSock 自己的许可,不在本仓库 MIT 之内。自备的音乐也要按每首曲子的许可使用。
要不要 API key?有没有中文字幕?
README 没有写 API key。它写的是本地运行,模型在 Claude Code 里选 Opus 5.5。中文字幕和中文配音 README 未写明。样片之一 README 标明是 Arabic(Hoopoe Club,43 秒)。v2 的时间轴跟音乐,v1 跟旁白词。
相关阅读
- 热门项目合集
- 用 Opus 5.5 做视频
- 从提示词到成片
- 场景模板
- 报错与省用量
- 开源 Skill 与工具
- Claude Opus 5.5
- 环境搭建
- 开源 AI 视频 Skill 目录
- Claude Motion(官方功能)
- claude-motion 教程
- motion-graphics-skills 教程
- claude-motion-design 教程
- herk-edit-kit 教程
- mg-styles-15 教程
参考来源
- AbubakrChan/product-launch-motion(查阅日期:2026-10-23)
- 仓库 README.md(查阅日期:2026-10-23)
- SKILL.md(查阅日期:2026-10-23)
- NOTICE(查阅日期:2026-10-23)
- references/prompts.md 的前半(查阅日期:2026-10-23)