短片风格:三组样稿,并列展示,不重复
工具位置: 从此技能目录中的
reels-maker文件夹(即 github.com/thativanng/reels-maker 的克隆,包含template/和tools/)运行所有命令。如果项目中还没有该文件夹,请先按照该仓库的 SETUP.md 进行设置。
为什么需要这个技能: 当 AI 代理被要求“制作一支关于 X 的短片”时,它往往会每次都回退到同一种视觉风格——要么是自己的默认设置,要么是上次被选中的风格。而如果用户在最初阶段没有看到样稿,就意味着他们第一次看到成品中的风格时,才可能说出“看起来很廉价”这样的话,然后不得不重做。三幅静帧只需几分钟;但一个错误的风格会毁掉整支短片。
1 · 动笔前先阅读
- 已签署的创意摘要: 平台、画面比例、目标观众、信息、品牌,以及用户对于“我觉得什么看起来廉价”的回答(硬性约束)。
- 样稿日志,位于用户项目中的
.reels/looks-log.md(格式参考 references/looks-log.md)。如果缺失,则创建它。 - 品牌。 如果有品牌,三组样稿会共享其配色和字体,但在骨架(媒介、布局、纹理、动效)上表现差异。如果没有品牌,则在所有方面都表现差异。
2 · 构思五组,保留三组
先写出五个一行概念,每个来源于不同的出发点:
- 主题本身的世界(供应链话题则用仓库板条箱)
- 观众应该感受到的情感
- 目标受众:满足他们的预期,或者有意打破它
- 该话题下其他所有视频的风格,反过来做
- 一种不寻常的格式(收据、倒计时、信件、单个巨大的词)
保留差异最大的三个。每个样稿必须与另外两个至少在 6 个特质中的 3 个上不同(参考 references/axes.md),并且始终要在“媒介”或“布局”上不同。至少有一个样稿要打破该话题的常规视觉风格。 两个布局形状相同的样稿视为一个。如果创意摘要指定了某种布局(例如 reel-intake 中的 F4),则所有三个都要保持该布局,并在媒介及至少另外两个特质上表现差异。
然后对照两个列表检查每个样稿:
- 要避免的默认风格(参考 references/axes.md)。工具包自身的
template/starter.html是其中之一;它只是一个骨架,永远不能作为样稿使用。 - 样稿日志。 除非用户主动要求,否则不要再次展示一个在媒介、布局和调色板上都与日志中任何样稿完全匹配的样稿。被拒绝的样稿是一个约束条件。被用户选中的样稿只有在他们主动要求时(“和上次一样”)才能以第四个选项的形式与三个新样稿一起展示。
3 · 制作三幅静帧
- 将
template/starter.html为每个样稿复制一份到短片的文件夹中(reels/<name>/look-a.html、look-b.html、look-c.html),同时将短片的reel.json放在旁边;如果是 3D 效果,则同样复制template/film.html。字体和 formats.json 从工具包根目录加载,因此复制版本可以直接使用。只需要修改样稿:CSS 变量、布局、背景、字体。每幅静帧使用相同的开场画面和相同的文字。 - 按创意摘要指定的格式,为每个样稿渲染一幅静帧,然后将其并排放置并加上名称:
node tools/stills.mjs --page reels/<name>/look-a.html --format 9:16 --out reels/<name>/out/looks/a 1.5 node tools/stills.mjs --page reels/<name>/look-b.html --format 9:16 --out reels/<name>/out/looks/b 1.5 node tools/stills.mjs --page reels/<name>/look-c.html --format 9:16 --out reels/<name>/out/looks/c 1.5 python3 tools/sheet.py reels/<name>/out/looks/sheet.jpg 3 360 --labels "A · 账本,B · 码头,C · 收据" reels/<name>/out/looks/a/t001.50.jpg reels/<name>/out/looks/b/t001.50.jpg reels/<name>/out/looks/c/t001.50.jpg - 使用探测工具检查每一幅静帧:文字必须位于安全区内(
node tools/probe.mjs --page reels/<name>/look-a.html --format 9:16 "1.5" "sel:.title,.line,.kicker,.cap" "safe"→inside: true;探测工具测量的是字母本身,因此文字超出画面边缘会被判定为失败)。 - 用名称展示拼合图,每个样稿附带一行描述,例如 A · 账本: 字体主导、浅色纸张、沉稳。添加一行关于动效能量的描述,因为静帧无法展示动感。在用户查看之前不要推荐某个样稿:推荐会先入为主。
4 · 选择与日志
- 用户选择一个,或进行混合(“A 的布局,C 的调色板”)。混合被视为一种新样稿:在正式制作前,先将其作为静帧展示。
- 将所有内容写入日志: 展示的每个样稿(其六个特质及静帧)、哪个被选中、哪些被拒绝,以及用户用他们自己的话给出的评价。
- 然后短片引擎(film-engine)使用选定的样稿制作 10 秒测试片,供用户在完整制作前确认。被选中的样稿的静帧也用作封面的初稿。
系列模式
当创意摘要指定为“系列”时,第一集选定的样稿会作为系列风格被锁定在日志中。后续集数跳过三个样稿的展示,直接沿用该风格。变化发生在其中:主题、开场图像、节拍顺序。如果用户在系列中途想要更换风格,则视为一个新系列。
当故事是一段旅程
体素行走(voxel-walk 技能)仅在创意摘要为一段旅程(职业生涯,或从开始到结束的过程)时,才能作为三个样稿之一。它永远不是默认选项,且同样遵守规则:它必须与另外两个样稿不同,并受日志约束。
诚实的限制说明
- 只有体素行走经过完整的端到端构建和验证。其他所有样稿都是从创意摘要全新构建的:采用新样稿的第一支短片需要更长时间,并且会接受完整的短片审计。
- 静帧只能展示色彩、字体和布局,无法展示节奏。动效的判断要在 10 秒测试片中进行。
致谢
“从不同路径构思五个概念,保留差异最大的,相同布局算一个”的规则改编自 HyperFrames 的提案环节(heygen-com/hyperframes, Apache-2.0)。命名默认风格并记录尝试内容的思路来自 Anthropic 的前端设计技能(paraphrased)。同一场景、不同风格、并列展示,是动态影像工作室在风格帧上的常见实践。