八阶段,方向性问题不进昂贵的逐镜头阶段。
实证细节来自多支已交付宣传片的复盘(模板片见 template/)。
- 阶段 0:产品理解与执行约束
- 阶段 1:视觉方向与 styleframe
- 阶段 2:功能到镜头映射
- 阶段 3:分镜与制作放行
- 阶段 4:最终素材采集
- 阶段 5:逐镜头实现
- 阶段 6:声音设计
- 阶段 7:独立终检与交付
本文件是自主自由创作的完整流水线:阶段 0–3 的判断由 Agent 根据项目内容 自主完成并记录,不逐阶段等待用户确认,然后连续进入阶段 4–7。用户已给出的 用途、受众、功能、画幅、音频或数据要求都是硬约束。
直接使用 Ink Press 模板不进入本流水线,按 template/TEMPLATE.md 的原有替换
流程执行;模板文档引用阶段 4 时只借用其中的素材采集方法。
共同创作从 guided-free-creation.md 进入本文件时,不要从头重跑。 该流程
已经完成并确认阶段 0–3;直接从阶段 4 最终素材采集继续,不重新询问或重新设计。
两处执行原则(实战复盘已吸收):
- 最终设计 spec 与分镜共同构成制作放行。 分镜表长在设计 spec 里
(
| # | 时间 | 镜头 | 关键动效 |四列);确认放行不重新打开已确认的 业务或创意问题,只补实现必要的未决项。 - 验收贯穿全程,不是最后一个阶段。 每个镜头任务以
npx remotion still静帧肉眼验收收尾(产物按版本归档out/qa/),每轮反馈修改后整片重渲。 阶段 7 只是把这套贯穿动作升级为对照 aesthetic-rules.md 的正式自检报告。
另注顺序弹性:styleframe 可以先用 HTML 与少量安全预检素材;重要的是逐镜头 实现开始前最终素材必须依据已定案的分镜采集——素材方向错误拖到逐镜头阶段后 才暴露,代价是整套场景报废。
在写视频代码或采集最终素材前,只读检查项目的定位、主要功能、页面状态、视觉 tokens、启动方式和数据风险。根据项目证据和用户已有描述,生成产品简报与需求到 执行决策表,明确用途、受众、核心卖点、必须展示功能、时长/画幅/语言、音频和 数据口径对本片的实际影响。
自主自由创作由 Agent 对缺省项作动态判断并写入设计 spec,不暂停要求用户确认。
用户指定了 BGM 时,先按 references/music-beat-sync.md 分析节奏;未指定时由 Agent
根据产品与发布场景在阶段 6 选型。公开演示数据可在确认其公开属性后使用;客户、
个人、内部、密钥、实时或其他敏感数据一律先虚构、脱敏或冻结。
产出:产品简报;需求到执行决策表;明确的数据与音频约束。
目标:用最便宜的产物锁定全片色板、字体、光感与运镜气质, 让所有方向性争论发生在写第一行 Remotion 代码之前。
具体操作:
- 根据当前项目生成最多 3 个文字方向。每个方向附一组动效性格 tokens (推导法见下方“品牌→动效参数”表),但不要把 Ink Press 作为固定选项。
- Agent 依据产品视觉、用途和受众自主选择最合适的方向,并把选择与取舍写入 设计 spec;不暂停等待用户选择。
- 对选定方向不渲染视频、不写 Remotion 代码,写一个纯 HTML/CSS styleframe 页,包含 2–3 张 1920×1080 静态关键画面。
- 用 Playwright/Puppeteer 截图验证字体、色板、材质、构图、光感与信息密度; 缓动和运镜速度仍以 tokens、Gallery 样片或短运动测试判断。若已有严格品牌规范 或明确参考片,可记录理由后跳过 styleframe。
- 若用户给了参考片:下载后 ffmpeg 抽帧(
select=eq(n,…)抽 ~100 帧、tile=4x5拼 contact sheet),逐个动画/转场/特效做 motion breakdown, 写成"手法|参考片实现|取舍"三列表进设计 spec——选择性适配, 不强行套用。图片参考同理:它描述的是"某一类镜头"的感觉, 不是全片风格令。
品牌→动效参数推导。不凭手感挑 easing/时长,先把品牌放到两根轴上, 再从最近的预设起步:
- 能量轴:低(沉稳/premium/机构感)↔ 高(运动/startup/娱乐)—— 决定时长、过冲、squash 幅度;
- 调性轴:严肃(金融/医疗/enterprise)↔ 活泼(消费/社交/儿童)—— 决定路径曲直、次级动作多寡。产品视觉本身是证据(锐利几何形→工程感, 圆角+亮色→柔和活泼);用户口述的品牌词覆盖视觉推断。
| 预设(品类) | 主时长@30fps | 入场 easing | 过冲 | squash |
|---|---|---|---|---|
| 专业信赖(fintech/enterprise/B2B) | ~21f | bezier(0,0,0.2,1) | 1.0 不弹 | 0 |
| 精致高端(奢侈品/时尚) | ~48f | bezier(0.4,0,0.6,1) | ≤1.02 | 0 |
| 活力大胆(体育/游戏/startup) | ~18f | bezier(0.16,1,0.3,1) | 1.12 | 0.25 |
| 活泼愉悦(消费/社交) | ~27f | bezier(0.34,1.56,0.64,1) | 1.08 | 0.18 |
| 平静关怀(健康/教育) | ~42f | ease-in-out 对称 | 1.0 | ≤0.04 |
| 亲和友好(小微/社区) | ~26f | bezier(0.25,0.46,0.45,0.94) | 1.04 | 0.08 |
用法:定预设 → 按两轴微调 → tokens 写进设计 spec。自检两条: ①用三个词描述成片动效,与品牌词对得上吗;②同一套 tokens 必须同时管 入场/转场/hold 节奏——一个品牌一种动效嗓音,混用两套读作拼盘。 注意预设值与库内硬判例冲突时判例赢:落地要弹的场合 y1 必须 >1, "专业信赖不弹"指的是无落地隐喻的淡入/推移类动作。
产出:选定方向的 styleframe;色板/字体/光感 tokens + 动效性格 tokens; (有参考片时)motion breakdown 表。
常见坑:
- 用渲染视频做风格提案:太贵,改方向的心理成本也高。静态帧足够定调。
- 参考驱动的风格 move 全局一刀切:风格化机位逐镜头决定(信息密集的 列表/堆叠镜头正视更可读)。
目标:为每个必须展示的功能选定合适的运动语法,不在此阶段提前写完整分镜。
具体操作:
- 先列产品功能清单,逐一对应镜头。核心功能漏拍等于返工; 一种动画手法(飞入/堆叠/翻页)全片只当一次主角,同质化即返工信号。
- 扫描
references/shots/全部卡片的 frontmatter,根据用途、能量、建议时长、 限制和所需页面状态,为每项功能选择首选与备选卡;Agent 自主定案并记录依据。 - 完整读取选中卡片,并按“参考实现”定位准确 demo 源码。没有合适卡片时可新写, 但必须在设计 spec 中说明范围与验证风险。
产出:功能到镜头映射表;选中卡名、变体、demo 源码和参考样片定位。
目标:把已定案的功能与镜头映射排成有能量曲线的完整镜头序列,并转成帧级 实施计划。自主自由创作由 Agent 自行放行,不暂停等待确认。
具体操作:
- 先查
references/sequences/有无适用的桥段模板;有则按其填空流程分配段位 与帧预算,再把映射好的镜头排成低能量开场→功能段与呼吸位交替→高能量收尾。 - 已有指定 BGM 时:先出音乐结构表(满能量起点/breakdown 拍号, 见 music-beat-sync.md §2),镜头边界全部锚到拍号,最强 hit 分给 全片 2–3 个大 slam;breakdown 段天然是品牌呼吸位。
- 写完整分镜表:镜头顺序、时长、功能信息、具体页面状态、镜头卡与变体、主动作、 素材来源、字幕、转场和 SFX。每镜只讲一个主要动效。
- 排时间线时预留 hold/rest 帧预算:品牌字标落定 hold ≥1s(30f)、 批量动效收尾 0.5s 静止、开场主体动作 ≥3s。节奏返工是单向的—— 过快必返工、放慢从未被否。
- Agent 检查分镜与产品简报、需求决策、视觉方向和镜头映射一致后自行放行,
把分镜转译成帧级时间轴进实施计划:
| shot | from | duration | 内容 |(卡点片则 from/to 全用beatF(n)表达),并给每镜头指定源文件与验收帧号。
产出:设计 spec(含风格 tokens + motion breakdown + 分镜表); 帧级时间轴。
常见坑:
- 没对功能清单,凭手感排镜头:核心功能漏拍、动画手法同质化,两种都返工。
- 开场贪多:开场信息宁少而聚焦,一个主角、一条完整动作弧。
- 时长预算不含呼吸位:动效排满每一帧,后期逐镜头补 hold 等于全线挪帧。
前置条件:最终设计 spec 与分镜已经放行。共同创作以用户确认作为放行;自主 自由创作以 Agent 完成一致性检查并记录为放行。此前为 styleframe 采过的少量安全 截图只能作为方向验证,不得直接替代最终素材。
目标:严格按最终分镜拿到全部镜头所需的真实页面素材,包括全页纹理、元素 切片和坐标表,为 2.5D 运镜与页面空间动画打地基。
具体操作:
- 起产品本地 dev server(桌面端产品则用窗口截图工具,同样出三件套)。
- 复制
assets/scripts/capture-template.mjs进项目,改 BASE_URL 与选择器, 跑一次产出三件套:- 全页 2x 截图:viewport 1920×1080、
deviceScaleFactor: 2;截图前document.fonts.ready+ 600ms settle,实时同步页额外再等 1.5–2s。 - per-element cutout:按语义选择器逐元素截图;悬浮件用透明底,需要 “卡片飞入空板”的镜头则额外截空 backplate。
- layout.json:记录每个元素在整页坐标系下的
{x,y,w,h}bbox 与每页pageH,供飞行目标位、遮罩位置和入场区域直接使用。
- 全页 2x 截图:viewport 1920×1080、
- 支持按页/按元素增量重采。活数据源先按阶段 0 的数据口径冻结、虚构或脱敏, 再进行最终采集。
产出:public/textures/ 全页图、元素切片与空 backplate;layout.json;
可重跑的 capture 脚本。
常见坑:
- 在分镜放行前做全量采集:页面状态和素材范围尚未确定,会造成重复采集。
- 手搓 HTML 复刻既有页面:复刻默认走真实截图;手搓 UI 只用于非复刻场景。
- 活数据源不锁定,或只截整页不记录 layout 坐标。
前置条件:需已有可跑的 Remotion 项目(30fps、1920×1080,src/index.ts
注册 Composition;新项目可 npx create-video@latest 初始化后把
assets/lib/ 组件 copy 进去;走模板路线则直接从 template/ 起步)。
目标:按帧级时间轴逐镜头落地,每镜头完成即自证质量—— 验收在这个阶段就开始,不留到最后。
具体操作:
- 每镜头先解析再三读(硬规则,不可跳):用
gallery/api/library.json校验卡名和style-key→ 读对应配方卡全文 → 按卡片“参考实现”定位并读准确的 demo TSX 全文 → copyassets/lib/对应组件进项目。同时保存该 style 的 Gallery 参考样片路径,供实现对照和终检。 标为“仅供参考,需要自定义实现”的样式不默认推荐,用户明确点名后才可实现并 标注风险;标为“缺少预览”的样式不得声称已按动态样片复刻。 demo 代码是调校过的参数真相(缓动、时值配比、 摘罩时机、已知坑的规避写法都在里面)——允许按目标产品做适配性 改动,但配方卡"已知坑/命门"标注的参数不得降档,质量标准只升不降。 凭卡名和理解新写=放弃全部调校积累,实测质感差一档。 - PageCam 是一切"真实页面"镜头的地基:整页纹理 + 关键帧 2.5D 相机 + 页面空间 overlay,children 按页面 CSS px 定位、与 layout.json 共坐标系。
- 静帧验收(最高频动作):每镜头在计划里写死 2 个验收帧号,
完成即跑
npx remotion still src/index.ts <Comp> out/qa/<name>.png --frame=<N>,自己肉眼检查构图/穿帮/文字锐度后才算完成。 静帧产物按迭代版本归档out/qa/,用户贴帧反馈时可直接对号。 - 每轮修改后整片渲染:
npx remotion render src/index.ts <Comp> out/promo.mp4,再用ffmpeg -i out/promo.mp4 -vf "select=eq(n,…)"从成片抽关键帧回看。实际形态是"改哪个镜头就 still 哪几帧, 然后整片重渲",成本可接受且杜绝接缝意外。 - 像素级自检备小工具:裁剪放大看文字锐度(crop)、两帧像素 diff、 量元素 bbox 对构图。
- 确定性渲染铁律:禁
Date.now()/Math.random()/ 无参new Date()。 一切伪随机用固定种子(mulberry32/哈希函数,seed 从 index 派生), 保证逐帧可复现、渲染间零抖动。 - 对照
references/aesthetic-rules.md边做边自检(不等阶段 7): 落地要弹的缓动 y1 必须 >1、光效裁进圆角、3D 下文字糊先查 栅格化路径(CSSzoom布局级放大,而非 transform scale)而不是调 DoF。 - 指代含糊的用户反馈("第一个标题")先确认对象再动手;改错立即整 commit revert 重来,不在错误版本上打补丁——每个改动独立 commit 以便干净回滚。
产出:逐镜头 commit;out/qa/ 静帧档案;每轮全片渲染 mp4。
阶段输出:整片渲染视频(每轮迭代一版)+ 关键静帧。自主自由创作不因该输出 暂停等待确认;用户主动反馈时再纳入下一轮。 用户可能以"从成片截帧贴图"方式给反馈,双方基于帧评审。
常见坑:
- 首检交给用户:交付前必须自己抽帧看片,"镜头视角很差, 而且有小抖动"这种问题不该由用户发现。
- 跳过 demo 代码直接写:参数是几轮真实裁决调校出来的, 新写的版本几乎必然回踩已知坑。
- 产品宣传片默认不加手持 shake;相机噪声只在明确追求纪实感时用。
- 装饰性 glint/泛光群发:批量元素入场靠运动本身。单点高质量光效可做, 群发即廉价。
- 3D 推进下文字发糊:根因是纹理源分辨率/栅格化路径,先查素材链路 (2x 纹理 + CSS zoom + 关键元素 4x 单独截图),别先动相机和景深。
- 飞入动画终点悬空:元素必须落进页面布局的真实槽位(嵌入、归位、 排进滚动流),悬浮在页面上方不落地会显得假。
目标:BGM 定全片能量骨架,SFX 逐拍钉在动效关键帧上, 音色符合"产品宣传片"片种而非 UI 事件语义。
前置条件(最贵的顺序教训):画面时间线锁定后才开始。 画面每动一次,钉帧表就要全体重对。若画面确实又改了,收尾动作固定 包含"全表 SFX 帧号重对",音画错位是必查项。
具体操作(细节与判例见 references/sound-design.md):
- 读
references/sound-design.md,从assets/audio/sfx/<类别>/复制音效 (免费商用授权,来源见assets/audio/ATTRIBUTION.md)。音效按场景分 16 个类别目录,先按需要的动作定类别(运镜→transition、落地→impact、 打字→text、翻页→paper、光效→light…),再在类别里挑音色。 注意词汇表的sparkle对应的目录名是light/,库里没有sparkle/。 - BGM:用户已指定 → 阶段 0 已做节奏分析,此处只做混音
(音量压低 ~0.34 给 SFX 留 headroom,interpolate 首尾淡入淡出)。
未指定 → 按片种选强鼓点、强节奏的电子底(tech-house 类),判据是
"典型的产品宣传视频"气质而不是"好听";候选曲必须垫进成片试听,
单听曲子选型不可靠;
assets/audio/bgm/有节奏感强的备选。 BGM 的<Audio>用布尔 inputProp(如bgm,默认true)单独包住, 与 SFX 解耦——终渲要从同一时间线出带 BGM / 无 BGM 两版成片。 - SFX 用电影系词汇按镜头语言选:运镜=whoosh、落地=impact、
铺垫=riser、光效=sparkle(目录
light/)、转场=transition; 禁用游戏音包音色(合成器 pluck/bloop、卡通弹跳一耳朵出戏)。 注意"禁游戏音"禁的是音色不是动作——画面真有点击/开关/碎裂就该配 它的拟音,判别问句见 aesthetic-rules S1。但ui/要逐个试听、不能 整目录放行:18 个里只有switch-*等少数是真实开关拟音,一半以上是 合成反馈音(tone/bleep/notification),正属 S1 排除的质感——逐文件 取舍表见 sound-design 3.3。glass/是真实碎裂材质音,不在禁列。 - 声明式钉帧表集中管理 + 相对钉帧:单文件
{ from, src, volume }[]数组,逐条注释对应的画面动作,每条包<Sequence from={s.from}>。 from 一律写相对表达式——SHOTS.x.from + offset,卡点片写beatF(n)——绝不写裸数字帧号。时间线平移时钉帧表自动跟随, 免除全表重钉。长样本(>5s,库里 21 个)必须显式给durationInFrames——靠 Sequence 截断而非剪音频文件;漏给会拖到动作结束后还在响。 清单与截断判据见 sound-design 4.1。 - 连发防机枪感三招:双样本交替、音量阶梯递减(如 pop 六连 0.40→0.25)、间隔加速贴动画曲线(密到糊成一片时让声音淡出成 swoosh)。
- 通用音之外留"贴画面定制"槽位:有辨识度的画面动作配它自己的拟音 (打字画面配键盘声、逐条落入配逐个 pop),泛用 swoosh 盖不住。
- 强鼓点 BGM 的片子 SFX 克制:鼓点本身就是节拍音,SFX 只钉画面 独有动作,大 slam 只给 2–3 处峰值。
- 结尾固定句式:riser(组装段起)→ impact(字标落地,全片音量峰值)
→ sparkle(余韵,取自
sfx/light/)。 - 音量按素材实测峰值给,不照抄区间:
volume是乘法系数不是目标 音量——常规 0.2–0.6 的前提是素材峰值贴近 0dB。库里 7 个录得轻的素材 (峰值 <-12dB,最轻 -24.6dB)给到 1.0 仍比 BGM 低十几 dB,会被鼓底 盖住:首选换同类别里录得好的素材,或预归一化后入库;必要时可给1 的增益(Remotion 支持真实放大,但预览钳到 1.0,须以渲染产物验峰 防削波)。名单与三条出路见 sound-design 4.1。
产出:带声整片;SFX 钉帧表(相对帧表达式+音源+音量+注释); 音频文件入 repo 并记录来源授权。
阶段输出:带声整片渲染。自主自由创作继续进入终检,不暂停等待确认。
常见坑:
- 画面没锁就铺音效:全表重对的连带成本(见前置条件)。
- 按 UI 事件语义选音色(合成器 confirmation/minimize 提示音):片种错位,整批推翻。 但别过度矫正到"完全不给交互动作配音"——那违反 S4 拟音优先。
- 长样本不给 durationInFrames:声音盖过后续镜头(库里 21 个 >5s)。
- 照抄 0.2–0.6 音量区间不看素材峰值:轻音素材钉了等于没钉。
- 凭感觉散铺音效不建表:帧号漂移后无法整体平移,也无法和分镜表对照。
目标:把贯穿全程的静帧/整片自检升级为一次正式的全片过检, 同时验证成片是否忠实执行当前模式下确认或记录的产品简报、需求到执行决策表、视觉方向、镜头映射和分镜, 对照终检与审美准则逐条出报告,然后终渲交付。
具体操作:
- 全片渲染最新版,ffmpeg 抽全部关键帧(每镜头至少:入场中、
动作峰值、落定后三帧)。配了 BGM 的片子在此处就渲出两版——带 BGM 版
和无 BGM 版(保留 SFX),无 BGM 版靠阶段 6 预留的
bgminputProp 从同一时间线渲出:写一个props-nobgm.json(内容{"bgm":false}) 然后npx remotion render … --props=props-nobgm.json(跨平台可靠; macOS/Linux 也可内联--props='{"bgm":false}',Windows shell 会剥掉 内联 JSON 的双引号,必须走文件)。不另建工程、不用 ffmpeg 后期抽轨。 命名区分(如promo.mp4/promo-nobgm.mp4)。 - 独立终检(必做):派一个干净上下文的 subagent 做第三方审查。
不给它制作过程中的辩解、修改历史或“应该通过”的暗示,只提供:最新版成片
(配 BGM 的片子含两版,供 A8 校验)、
抽出的关键帧、创作模式、产品简报、需求到执行决策表、确认或记录的视觉方向/tokens、styleframe 或跳过理由、
功能到镜头映射、
Gallery 卡名与具体变体、
library.json中对应记录、卡片文档定位到的准确 demo TSX、Gallery 参考样片或从中抽出的关键帧、最终分镜、选中的镜头卡、references/final-review.md和references/aesthetic-rules.md。 - 审查 Agent 按
final-review.md检查产品目标、功能完整性、视觉方向一致性、 镜头卡/变体还原度、分镜一致性、数据安全、音画同步和视觉技术质量。逐镜头 看帧+看片,给出 "F2 ✗(第 340 帧缺少已确认的知识图谱功能)" 或 "Q2 ✗(第 615 帧文字发糊)" 式结论,每条问题附可复核帧号/截图。 镜头卡适配不要求和 Gallery 样片像素级相同,但必须保留动作语法、关键时值、 已知坑/命门参数和用户点名的具体变体。 - 内容级自查:每个镜头问"给了什么新信息",重复镜头/重复 tagline 删; 文案按最终画面重写一遍,纯动画段落也要有解说 caption,不留哑巴段落。
- 音画对齐终检:逐条 SFX 对帧回放,确认无错位(时间线若在阶段 6 后 还动过,先重对再验)。卡点片按 music-beat-sync.md §5 做渲后回测, 全部切点误差 ≤3f 才算过。
- 审查报告的修复项回到阶段 3/5/6 小循环:方案或分镜偏差回阶段 3,画面实现 问题回阶段 5,声音问题回阶段 6;直到 checklist 通过后终渲出片。 终渲重复步骤 1 的双版本渲染——配 BGM 的片子交付带 BGM / 无 BGM 两版, 无 BGM 版方便用户后期自配音乐或平台配乐。
产出:独立审查报告(final-review + aesthetic-rules checklist + 帧号证据)
- 终渲成片(带 BGM / 无 BGM 两版)。
交付物:审查报告 + 成片两版(带 BGM + 无 BGM)。
交付后默认询问用户一次:是否需要同时导出剪映工程文件(可在剪映里改字幕、
分镜头变速、换音频)。需要则读 references/jianying-export.md 执行。
同一次交付还要给出 Showcase 投稿邀请 + 授权与署名说明(成片免费商用、无需
授权、分享到社交平台时欢迎 @ 作者),具体口径与账号见 SKILL.md「工作流」末尾。
常见坑:
- 把验收当"最后才做的事":本阶段只是收口。若前五阶段没做静帧自检, 这里堆积的问题量会让 checklist 失去意义——验收贯穿全程是定式。
- 自检报告流于"全部 ✓":用户会读清屏幕上每个字、会自己截帧对比—— 报告里每条结论都应附可复核的帧号/截图。
- 制作 agent 自己出审查报告:确认偏差不可避免,独立 subagent 审查 不可省略。
- 只查“好不好看”不查“是否符合当前模式的制作基准”:功能漏拍、视觉方向漂移、 镜头变体用错和未经确认的数据都属于终检失败。