bama
BAMA: Build Any Mac App. Agent skills to research, clone, design, build, optimize, and test native macOS apps with Swift and SwiftUI.
翻譯準備中
一段配音,变成一支逐帧代码渲染的口播动效片 —— Claude Code / Codex Skill(9:16 · 16:9 · 60fps · 封面)
翻譯準備中
技能JavaScript · HTMLGitHub @isaachang自行安裝營運者未確認
試用過了嗎? 點一下就好,不需要登入。
正在載入完整 README。 以下為已儲存的摘錄。
你录一段配音,AI 现场设计每一帧,交出一支 60fps 的口播动效片。 A Claude Code skill that turns a voice-over into a frame-accurate, code-rendered motion video. 一镜到底的运镜转场 说到哪个字,画面就到哪一帧 真实网页 1:1 还原 上面每一帧都是代码画的:没有剪辑软件、没有模板、没有 AI 生成视频。改哪一秒就重画哪一秒,每次渲染结果完全一致。 离线听写给配音里的每一个字标上时间。写动画时不用手抄秒数,直接写说到哪个词: 不是「盖一层东西把切点遮住」,而是前后两个镜头在转场的那半秒里同时存在、共用同一条运动曲线。镜头运动跨过切点也不断,再叠加最多 8 层运动模糊。 推进穿越 推进一个元素,它的内部就是下一镜 甩镜衔接 同方向、同速度甩进下一镜 形状匹配 卡片原地变形成手机屏幕 前景遮挡 前景板划过,背后已换场景 景深转换 虚焦淡出,对焦浮现 拉远揭示 整个画面缩成一枚图标 AI 会按口播自己判断:只在信息切换处转,有形状相似的元素就用形状匹配,从细节回到全局就用拉远揭示,一分钟的片子用 3–4 次,留一个最炸的给高潮。檢視完整 README ↗
上面每一帧都是代码画的:没有剪辑软件、没有模板、没有 AI 生成视频。改哪一秒就重画哪一秒,每次渲染结果完全一致。
离线听写给配音里的每一个字标上时间。写动画时不用手抄秒数,直接写说到哪个词:
const t = say('4万'); // → 22.59,数字就在这一帧砸出来
say('收藏', 2); // 第 2 次说「收藏」的时刻
sayEnd('抄作业'); // 最后一个字的时刻
不是「盖一层东西把切点遮住」,而是前后两个镜头在转场的那半秒里同时存在、共用同一条运动曲线。镜头运动跨过切点也不断,再叠加最多 8 层运动模糊。
AI 会按口播自己判断:只在信息切换处转,有形状相似的元素就用形状匹配,从细节回到全局就用拉远揭示,一分钟的片子用 3–4 次,留一个最炸的给高潮。
组件包只是底座。AI 每期都按口播内容现场设计、现场写代码:现成组件能表达的直接用,表达不了、会和往期撞脸、高潮需要记忆点的,就新写,并在分镜表里标明为什么。第一期 56 秒的片子,约一半代码是现场写的。
下面 12 张来自同一套引擎,风格完全不同:
讲工具、讲产品,画面里必须是真东西。
a/来源.md右边这段就是抓取本仓库的 GitHub 页面后,现场做出来的。
整个流程里,你只需要点选项:比例、音乐、风格、标题,每题都有推荐项。还可以先看全篇关键帧总览再开工。说一句「直接做」,它就全部按推荐走完,最后告诉你替你选了什么。
AI 还会自己看预览帧,检查文字有没有被裁、元素有没有重叠、字够不够大,发现问题自己修。
flowchart LR
A[做一期片子] --> B[交付时复盘]
B --> C[你的意见 → 写进硬规则]
B --> D[新写的组件 → 沉淀进组件包]
B --> E[碰到的 bug → 修进引擎]
C --> F[下一期更快、更稳、更像你]
D --> F
E --> F
F --> A
每期交付时,AI 会把这期的收获分成三类列出来,你勾选同意的,它再更新进 skill。用得越久,越懂你的审美。
| 剪映模板 | AE / PR 手工 | AI 文生视频 | Remotion 等代码框架 | Motion Video Workflow | |
|---|---|---|---|---|---|
| 和口播逐字对齐 | 手动拖 | 手动打点 | 做不到 | 自己写 | 自动 |
| 每期不重样 | 容易撞款 | 看人 | 随机抽卡 | 自己写 | AI 按内容现场设计 |
| 精确到帧地修改 | 有限 | 可以 | 只能重新生成 | 可以 | 可以,改哪秒重画哪秒 |
| 真实界面、文字 | 手工截图 | 手工 | 常出错字 | 自己写 | 自动抓取 + 1:1 重建 |
| 上手门槛 | 低 | 高 | 低 | 要会写代码 | 低:只做选择题 |
| 成本 | 会员 | 软件 + 大量时间 | 按次计费 | 免费 | 免费、全程本地 |
| 组件包 | 组件 |
|---|---|
知识讲解 explainer | 动态文字、关键词卡、流程链、左右对比、时间线、大数字、柱状图、分层结构、标注框、状态胶囊、5 种动态背景、约 25 个线性图标 |
AI 资讯 news | 新闻卡、社交帖、滚动快讯条、排行榜 |
教程 tutorial | 浏览器 / 应用窗口、鼠标点击、逐字打字、代码块、终端、聚光灯、步骤徽章 |
产品案例 product-ui | 手机聊天(逐条推近)、推送通知、通话界面(计时 + 声波 + 对话气泡) |
角色 / IP 形象 mascot | 透明角色弹出 / 从边缘探出 / 呼吸浮动、柔光渐变镜头底 |
竖版 vertical | 竖版画布和镜头、印章大字、盖章、逐字浮现、数据格、提示条、键帽、冲击线 |
真实网页 web | 浏览器加长图滚动、截图框选、截图局部放大、卡片内逐帧播放视频 |
片尾 outro | 收藏、关注、评论区置顶 |
引擎 engine | 镜头推拉、手持漂移、抖动、闪白、色散、胶片颗粒、彩屑、拍点卡点、口播时间查询 |
| 类型 | 转场 |
|---|---|
| 运镜转场(镜头连续) | 推进穿越、拉远揭示、甩镜衔接、形状匹配、前景遮挡、景深转换 |
| 遮罩转场 | 笔刷擦屏、色条擦屏、光圈、圆形揭示、矩形揭示、穿越推镜、甩镜 |
这个 skill 在 Claude Code + Claude Opus 5.5 上开发和打磨,强烈推荐用 Opus 5.5 运行。每期都要现写上千行动画代码,换成更小的模型也能跑,但画面会简单很多:
Codex 等支持 SKILL.md 的 agent 也能用(选择题会变成编号选项,发图会变成给出图片路径),只是交互和自查不如 Claude Code 顺手。
Claude Code(推荐)
git clone https://github.com/isaachang/motion-video-workflow ~/.claude/skills/motion-video-workflow
只给某个项目用,就换成 你的项目/.claude/skills/motion-video-workflow。装好后重开 Claude Code,会自动识别。
Codex
git clone https://github.com/isaachang/motion-video-workflow ~/.agents/skills/motion-video-workflow
项目级放 你的项目/.agents/skills/;较早的 Codex 版本用 ~/.codex/skills/。输入 $motion-video-workflow 调用,或直接描述需求自动触发。
第一次运行不用手动装依赖:AI 会把模板复制到项目目录,运行 bash tools/setup.sh,自动安装 Python 依赖、Playwright 浏览器、约 250MB 的离线听写模型,缺中文字体会自动下载开源的思源黑体。
准备一段配音(手机录音就行),对 AI 说:
用 motion-video-workflow,把 ~/Desktop/配音.mp3 做成一支 9:16 的口播动效片。
主题是介绍 XX 网站,口播稿如下:……
接下来:开场确认(比例、音乐)→ 要不要先看效果图 → 确认标题、配色、分镜 → 要不要先看全篇关键帧总览 → 渲染 → 交付成片和两张封面,并列出可以沉淀进 skill 的改进。
tools/setup.sh 自动安装。不需要 GPU,也不需要任何 API Key如果你是正在读这个仓库的 AI 助手:
SKILL.md:完整的工作流、必须停下来问用户的节点、画面硬规则、输出规范、运镜转场规则。开始前完整读一遍。motion-kit/:每支片先复制一份到项目目录再改,不要直接改 skill 目录里的模板。组件清单见 motion-kit/README.md。say('词') 或 python3 tools/when.py 词。a/来源.md。可以把这段直接发给你的 AI:
请把 https://github.com/isaachang/motion-video-workflow 安装成我的 skill(Claude Code 放 ~/.claude/skills/,Codex 放 ~/.agents/skills/),
读一遍 SKILL.md,然后告诉我做一支口播动效片需要准备什么。
motion-video-workflow/
├── SKILL.md # 工作流说明(AI 的入口)
├── CHANGELOG.md # 更新日志:每个版本改了什么
├── motion-kit/ # 模板:每支片复制一份再改
│ ├── engine/ # 时间轴引擎 + 遮罩转场
│ ├── packs/ # 9 个组件包(含运镜转场 transition.js、角色 mascot.js)
│ ├── shell/ # 9:16 装饰带
│ ├── tools/ # 音频、听写、抓图、抠图、关键帧总览、渲染、封面
│ └── examples/muse/ # 第一支片的源码(仅参考,不含素材)
└── docs/ # README 用的演示素材和它们的源码(全部为代码生成的虚构内容)
docs/showcase-src/。