motion-graphics
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chinesemotion-graphics — dispatch entry
motion-graphics — 调度条目
Confirm the route before Step 0. This skill makes a short, design-led, unnarrated motion graphic (motion is the message; ~under 10s, no voice-over). A longer, multi-scene, or narrated treatment →; a narrated video of a website →/general-video; a topic explainer →/website-to-video; a product promo →/faceless-explainer; captions on existing footage →/product-launch-video. Out of scope: live / at-render-time data, or footage it can't capture. Unsure motion-first-vs-narrated? Read/embedded-captionsfirst./hyperframes-read-first
A short design-led motion graphic. Asset-first: decide the asset strategy and source real material before designing the shot, then design the shot around what you have, then compose by reusing catalog capabilities. All artifacts go to (created in Step 0); all paths below are relative to it.
PROJECT_DIR = videos/<project-name>/| Phase | Execution | Primary artifact | Detailed flow |
|---|---|---|---|
| init | Bash | | Step 0 |
| plan | subagent — decide search? + classify + asset strategy | | |
| source ◇ | Bash — media-use resolve (skip if | | |
| design | subagent — shot design around resolved assets | | |
| build | subagent — reuse-first composition | | |
| render | Bash — | | Step 5 |
| verify | Bash — | (fixes in place) | |
◇ sourcekinetic-typechartsstatasset_needs: []在第0步之前确认路线。 此Skill用于制作以设计为主、无旁白的短动态图形(动态为核心信息;时长约10秒以内,无旁白)。如果是较长的多场景或带旁白的制作方案 →;带旁白的网站视频 →/general-video;主题讲解视频 →/website-to-video;产品宣传视频 →/faceless-explainer;为现有素材添加字幕 →/product-launch-video。超出范围:实时渲染数据,或无法捕获的素材。不确定是动态优先还是带旁白?先阅读/hyperframes-read-first。/embedded-captions
以设计为主的短动态图形。资产优先:在设计镜头前先确定资产策略并获取真实素材,然后围绕已有素材设计镜头,再通过复用目录功能进行合成。所有产物都存放在(在第0步创建);以下所有路径均为此目录的相对路径。
PROJECT_DIR = videos/<project-name>/| 阶段 | 执行内容 | 主要产物 | 详细流程 |
|---|---|---|---|
| init | Bash | | 第0步 |
| plan | 子Agent — 是否需要搜索? + 分类 + 资产策略 | | |
| source ◇ | Bash — 媒体使用解析(若 | | |
| design | 子Agent — 基于已解析资产设计镜头 | | |
| build | 子Agent — 优先复用的合成 | | |
| render | Bash — | | 第5步 |
| verify | Bash — | (就地修复) | |
◇ sourcekinetic-typechartsstatasset_needs: []Categories — split by the search decision
分类 — 按搜索决策划分
plancategories/<id>/module.mdreferences/motion-vocabulary.mdhyperframes-animationForm categories — no search; the user supplies the content:
| Category | Intent | Leans on |
|---|---|---|
| punchy line / quote / title, motion-first text | |
| single hero number / count-up + ring | |
| bar / line / pie / race / % from data | |
| logo sting / brand lockup (user logo) | |
| name / title bars, callouts, social overlays | |
Search-driven categories — search first, then animate by content type (the RWA path):
| Returned content | Category | Animation |
|---|---|---|
| webpage / link | | webpage / UI animation (scroll, reveal, cursor, callouts) |
| news article | | headline reveal + source card + key-fact callouts |
| tweet | | animated tweet card |
| image / entity | | the asset's geometry becomes the chart (RWA diegetic fusion) |
Build order: one at a time, coverage-first (rough is fine). ported from the prototype; the rest follow.
kinetic-typeplancategories/<id>/module.mdreferences/motion-vocabulary.mdhyperframes-animation表单类分类 — 无需搜索;由用户提供内容:
| 分类名称 | 用途 | 依赖组件 |
|---|---|---|
| 有力的语句/引语/标题,以动态为核心的文本 | |
| 单个核心数字/计数动画 + 环形图 | |
| 基于数据的柱状图/折线图/饼图/竞速图/百分比图 | |
| Logo短动画/品牌标识动画(用户提供Logo) | |
| 姓名/标题栏、标注、社交叠加层 | |
搜索驱动类分类 — 先搜索,再按内容类型制作动画(RWA路径):
| 返回内容类型 | 分类名称 | 动画效果 |
|---|---|---|
| 网页/链接 | | 网页/UI动画(滚动、展示、光标、标注) |
| 新闻文章 | | 标题展示 + 来源卡片 + 关键事实标注 |
| 推文 | | 动画推文卡片 |
| 图片/实体 | | 资产的几何形状转化为图表(RWA叙事融合) |
构建顺序:逐个构建,优先覆盖功能(粗糙版本即可)。从原型移植;其余分类遵循此流程。
kinetic-typePrerequisites
前置条件
macOS Apple Silicon or Linux x64. System tools: . once. macOS GPU render: .
brew install node ffmpegnpx hyperframes doctorexport PRODUCER_BROWSER_GPU_MODE=hardwareOptional keys (local fallbacks if unset) — only needed by categories that source/generate assets via media-use:
| Key | Used for | Fallback |
|---|---|---|
| image generation (media-use resolve) | skip generate / search-only |
| (asset_scout / search providers) | | category degrades to asset-free |
macOS Apple Silicon 或 Linux x64。系统工具:。运行一次。macOS GPU渲染:。
brew install node ffmpegnpx hyperframes doctorexport PRODUCER_BROWSER_GPU_MODE=hardware可选密钥(未设置时使用本地 fallback)——仅适用于通过媒体使用获取/生成资产的分类:
| 密钥 | 用途 | Fallback |
|---|---|---|
| 图片生成(媒体使用解析) | 跳过生成 / 仅搜索 |
| (asset_scout / 搜索提供商) | | 分类降级为无资产模式 |
Flow
流程
Step 0 — Initialize
第0步 — 初始化
cwd is the agent workspace root; write all artifacts under . : use the dir the user gave, else a short kebab-case name from the intent (). Not the workspace basename or a timestamp.
PROJECT_DIR = videos/<project-name>/<project-name><subject>-motionOnly when is absent:
$PROJECT_DIR/hyperframes.jsonbash
PROJECT_DIR="${MOTION_GRAPHICS_DIR:-videos/<project-name>}"
mkdir -p "$(dirname "$PROJECT_DIR")"
npx hyperframes init "$PROJECT_DIR" --non-interactive --skip-skills --example=blankConstraints: never in the workspace root; never nest another inside ; every Bash command (master + subagents) is a subshell — never bare .
hyperframes inithyperframes/PROJECT_DIR(cd "$PROJECT_DIR" && ...)cd当前工作目录为Agent工作区根目录;所有产物写入下。:使用用户指定的目录名,否则根据需求生成简短的短横线命名(如)。不得使用工作区基名或时间戳。
PROJECT_DIR = videos/<project-name>/<project-name><subject>-motion仅当不存在时执行:
$PROJECT_DIR/hyperframes.jsonbash
PROJECT_DIR="${MOTION_GRAPHICS_DIR:-videos/<project-name>}"
mkdir -p "$(dirname "$PROJECT_DIR")"
npx hyperframes init "$PROJECT_DIR" --non-interactive --skip-skills --example=blank约束: 切勿在工作区根目录执行;切勿在内嵌套另一个目录;所有Bash命令(主Agent和子Agent)均为子shell — 切勿使用裸命令。
hyperframes initPROJECT_DIRhyperframes/(cd "$PROJECT_DIR" && ...)cdStep 1 — Plan (subagent: Director Part 1)
第1步 — 规划(子Agent:Director第一部分)
Dispatch one subagent. prompt = full + ( / / the user's request / ). It must:
agents/director.md## Dispatch contextSKILL_DIRPROJECT_DIRSchema: <SKILL_DIR>/references/shot-plan-ir.md- Decide: does this need a search? (the first fork)
- No → pick a form category (kinetic-type / stat / charts / logo-reveal / lower-thirds); content is user-supplied; .
asset_needs: [] - Yes → emit a search plan into (news / web / tweet / image; two-pole queries). The specific search-driven category (webpage / news / tweet / asset-fusion) is confirmed by the content type returned in Step 2, and finalized in Step 3.
asset_needs[]
- No → pick a form category (kinetic-type / stat / charts / logo-reveal / lower-thirds); content is user-supplied;
- Write a draft (envelope + chosen form category or search intent +
shot-plan.json+ a one-paragraph shot brief). Schema:asset_needs.references/shot-plan-ir.md
Validation: .
[ -s "$PROJECT_DIR/shot-plan.json" ] && echo ok || echo missing调度一个子Agent。提示词 = 完整的 + ( / / 用户请求 / )。必须完成:
agents/director.md## Dispatch contextSKILL_DIRPROJECT_DIRSchema: <SKILL_DIR>/references/shot-plan-ir.md- 决策:是否需要搜索?(第一个分支)
- 不需要 → 选择一个表单类分类(kinetic-type / stat / charts / logo-reveal / lower-thirds);内容由用户提供;。
asset_needs: [] - 需要 → 在中生成搜索规划(新闻/网页/推文/图片;双向查询)。具体的搜索驱动类分类(webpage / news / tweet / asset-fusion)由第2步返回的内容类型确认,并在第3步最终确定。
asset_needs[]
- 不需要 → 选择一个表单类分类(kinetic-type / stat / charts / logo-reveal / lower-thirds);内容由用户提供;
- 写入草稿版(信封结构 + 所选表单类分类 或 搜索意图 +
shot-plan.json+ 一段镜头简要说明)。Schema:asset_needs。references/shot-plan-ir.md
验证:。
[ -s "$PROJECT_DIR/shot-plan.json" ] && echo ok || echo missingStep 2 — Source ◇ (Bash: media-use, conditional)
第2步 — 资产获取 ◇(Bash:媒体使用,条件执行)
If is non-empty, resolve assets (search / generate / fetch → frozen project-local paths + ledger). See (wraps ; the search-driven categories use the news/web/tweet/image search). If is empty, skip to Step 3.
shot-plan.json.asset_needsphases/source/guide.mdmedia-use resolveasset_needsbash
undefined如果非空,则解析资产(搜索/生成/获取 → 冻结的项目本地路径 + 分类账)。详见(封装;搜索驱动类分类使用新闻/网页/推文/图片搜索)。如果为空,直接跳至第3步。
shot-plan.json.asset_needsphases/source/guide.mdmedia-use resolveasset_needsbash
undefinedillustrative — see phases/source/guide.md
示例 — 详见 phases/source/guide.md
(cd "$PROJECT_DIR" && node <SKILL_DIR>/phases/source/resolve.mjs --plan ./shot-plan.json --out ./assets)
Degrade gracefully: if a search/provider is unavailable, the category falls back to asset-free (note it in `context.log`).(cd "$PROJECT_DIR" && node <SKILL_DIR>/phases/source/resolve.mjs --plan ./shot-plan.json --out ./assets)
优雅降级:若搜索/提供商不可用,分类将回退到无资产模式(在`context.log`中记录)。Step 3 — Design (subagent: Director Part 2)
第3步 — 设计(子Agent:Director第二部分)
Dispatch a subagent (prompt = Part 2 + dispatch context including the resolved if Step 2 ran + ). It designs the shot around the available assets: pick the catalog block(s) + the rules/blueprints, the layout, the motion, beats, and (for ) the + eyedropper palette. Finalizes ( + + per-category content).
agents/director.mdassets/index.mdcatalog-map.mdhyperframes-animationasset-fusionelement_positionsshot-plan.jsoncontent.blockcontent.customize调度一个子Agent(提示词 = 第二部分 + 调度上下文,包括第2步执行后的 + )。将围绕可用资产设计镜头:选择目录区块 + 规则/蓝图、布局、动态、节奏,以及(针对) + 取色器调色板。最终确定( + + 分类专属内容)。
agents/director.mdassets/index.mdcatalog-map.mdhyperframes-animationasset-fusionelement_positionsshot-plan.jsoncontent.blockcontent.customizeStep 4 — Build (subagent: Builder, reuse-first)
第4步 — 构建(子Agent:Builder,优先复用)
Dispatch a subagent. prompt = full + dispatch context (, , the category's , , ). Reuse-first: + customize in place; hand-author only gaps + the asset-fusion affordance. Output honoring the HF contract (paused GSAP timeline on , + stable ids, , deterministic).
agents/builder.mdshot-plan.jsoncatalog-map.mdmodule.mdreferences/motion-vocabulary.mdreferences/builder-contract.mdnpx hyperframes add <block>compositions/index.htmlwindow.__timelinesclass="clip"tl.seek(0)调度一个子Agent。提示词 = 完整的 + 调度上下文(、、分类的、、)。优先复用: + 就地自定义;仅手动编写空白部分 + asset-fusion功能。输出符合HF协议的(上的暂停GSAP时间轴、 + 稳定ID、、确定性)。
agents/builder.mdshot-plan.jsoncatalog-map.mdmodule.mdreferences/motion-vocabulary.mdreferences/builder-contract.mdnpx hyperframes add <block>compositions/index.htmlwindow.__timelinesclass="clip"tl.seek(0)Step 5 — Render (Bash)
第5步 — 渲染(Bash)
bash
(cd "$PROJECT_DIR" && npx hyperframes render . -q draft -o ./renders/video.mp4)bash
(cd "$PROJECT_DIR" && npx hyperframes render . -q draft -o ./renders/video.mp4)transparent overlay variant: --format webm (or mov)
透明叠加层变体:--format webm (或 mov)
undefinedundefinedStep 6 — Verify (Bash → repair subagent on failure)
第6步 — 验证(Bash → 失败时调用修复子Agent)
bash
(cd "$PROJECT_DIR" && npx hyperframes lint . && npx hyperframes inspect .)exit 0 → done. On lint/inspect errors, dispatch the repair subagent (: snapshot QA + one in-place fix pass + re-render). Never change a fixed duration in repair.
agents/finalize.mdbash
(cd "$PROJECT_DIR" && npx hyperframes lint . && npx hyperframes inspect .)返回0 → 完成。若lint/inspect出错,调度修复子Agent(:快照QA + 一次就地修复 + 重新渲染)。修复时切勿更改固定时长。
agents/finalize.mdReport + optional preview
报告 + 可选预览
Report the final output (, or the / overlay variant) + duration. Don't open a preview during the run. Offer one only on request, started after render so it serves the final file:
renders/video.mp4.webm.movbash
(cd "$PROJECT_DIR" && npx hyperframes preview) # Studio UI; or `npx hyperframes play` for a shareable linkFlags live in the skill ().
hyperframes-clireferences/preview-render.md报告最终输出(,或 / 叠加层变体) + 时长。运行期间请勿打开预览。仅在用户请求时提供预览,且需在渲染完成后启动,以加载最终文件:
renders/video.mp4.webm.movbash
(cd "$PROJECT_DIR" && npx hyperframes preview) # Studio UI;或使用`npx hyperframes play`获取可分享链接标志位于 Skill中()。
hyperframes-clireferences/preview-render.mdResume table
恢复表
| State | Continue from |
|---|---|
no | Step 1 (plan) |
| Step 2 (source) |
| Step 3/4 (design+build) |
| Step 5 (render) + Step 6 |
| Report + stop |
| 状态 | 从哪一步继续 |
|---|---|
无 | 第1步(规划) |
| 第2步(资产获取) |
| 第3/4步(设计+构建) |
| 第5步(渲染) + 第6步 |
| 报告 + 停止 |
Design notes (maintainers — execution does not read this)
设计说明(维护人员 — 执行流程不读取此部分)
- Asset-first rationale: sourcing is front-loaded and informs shot design (the RWA flow: analyze → search → review → compose). the search-driven categories (/
webpage/news) andtweetboth lean on media-use search (news/web/tweet/image), which is media-use's documented RWA lineage.asset-fusion - Reuse-first: the in-ecosystem analog of LLM-generated templates is "compose catalog blocks + rules". HF's paused GSAP timeline ≙ Remotion's
hyperframes-animation.useCurrentFrame - Category module contract: one (planning + build), sharing
categories/<id>/module.md(+ optional eval). Adding a category = drop the folder + register its classifier line inreferences/motion-vocabulary.md+ its row inagents/director.md; the phase pipeline is untouched.catalog-map.md - Directory shape:
videos/<project-name>/ hyperframes.json context.log shot-plan.json # the IR (Director output) assets/ assets/index.md # media-use output (if sourced) compositions/index.html # Builder output renders/video.mp4 - Registration: in router — add the "design-led short motion graphic" intent + Workflow description; carve the motion-graphics triggers out of
hyperframes-read-first; add reverse Do-NOT-use edges. See/general-video§5-7.motion-graphics-genre.md
- 资产优先原理:资产获取前置并指导镜头设计(RWA流程:分析 → 搜索 → 审核 → 合成)。搜索驱动类分类(/
webpage/news)和tweet均依赖媒体使用搜索(新闻/网页/推文/图片),这是媒体使用的已记录RWA传承。asset-fusion - 优先复用:生态系统内类似LLM生成模板的方式是“组合目录区块 + 规则”。HF的暂停GSAP时间轴 ≙ Remotion的
hyperframes-animation。useCurrentFrame - 分类模块协议:一个(规划+构建),共享
categories/<id>/module.md(+ 可选评估)。添加分类 = 添加文件夹 + 在references/motion-vocabulary.md中注册其分类器行 + 在agents/director.md中添加其行;阶段流水线无需修改。catalog-map.md - 目录结构:
videos/<project-name>/ hyperframes.json context.log shot-plan.json # 中间表示(Director输出) assets/ assets/index.md # 媒体使用输出(若执行了资产获取) compositions/index.html # Builder输出 renders/video.mp4 - 注册:在路由中 — 添加“以设计为主的短动态图形”意图 + 工作流描述;从
hyperframes-read-first中分离motion-graphics触发条件;添加反向禁用边缘。详见/general-video第5-7节。motion-graphics-genre.md