papercut-storyboard 是一个编写 papercut 脚本分镜的 AI 技能,定位是在进入代码实现之前先完成分镜规划。资料说明,分镜是每个场景构建的依据,它为每个场景规定镜头运动和剪辑方式,防止场景代理自行发明镜头,导致每场都是平推或手搓缩放、工具包中的镜头运动被闲置。
用途:为 papercut 风格讲解视频产出结构化分镜文档,包含全局规则、Camera / Cut 表、逐场景分镜块和音效计划,并作为后续 papercut-build 的输入。
前置条件:安装采用 Minimal 即可;如使用库,需查看 library/papercut/CATALOG.md 中 paper/camera.tsx 与 paper/transitions.tsx 两节,了解各镜头运动的参数与适用时机。若该文件缺失或过期,运行 python3 $PAPERCUT_LIB/tools/catalog.py。$PAPERCUT_LIB 依次从环境变量、~/.config/papercut-explainer/config.env 中的 PAPERCUT_LIB= 行解析,否则询问一次。还需要 narration/script.json,以及含 HOOK 块和排布表(每行的横幅、布景、道具、UI 时刻、吉祥物、笑点)的 papercut/STORYBOARD.md;缺失则先运行 papercut-hook 和 papercut-script。选择布景可参考 library/papercut/public/bg/backdrops/_sheet.jpg。
主要能力:
- 全局规则:在 STORYBOARD.md 顶部 HOOK 块下写明调色板(按角色,背景色按布景轮换,见 style-guide.md 第 5 节)、字体(第 6 节)、画布与分区(第 4 节),适合单一延伸隐喻的功能解锁可用第 12 节。规格为 1080x1920、30 fps;横幅位于 14-21% 高度,字幕带 68-80%(逐场景移动以避开人脸),底部 20% 留空;光源来自左上,饱和度只用于角色、字幕和信号。
- Camera / Cut 表:每个场景一行,置于场景块之前,每行指明工具包 paper/camera.tsx 中的组件与进入该场景的 CutSeries 类型(来自 paper/transitions.tsx)。镜头选项包括 OrbitCamera + Depth、SnapZoom、Crane、CrabTrack、DollyZoom、RackFocus、ForegroundPass、DutchTilt、FocusPulse、FreezeFrame、PullBack、PovMask、TimeRamp、TiltShift、FocusHunt、Handheld,以及 paper/kit.tsx 中的 CameraPush。剪辑选项包括 hard、whip、zoomThrough、pageTurn、tearAway、tapePull、stampCut、infiniteZoom、popUpBook、keyhole、burnAway。普通 CameraPush 最多用于三分之一场景。每行镜头写入对应场景块头部,剪辑列写入 episode.json 的 cuts 字段(无条目即硬切),由 papercut-build 填充。
- 场景块:每场一个块,1.5-5 秒,在句子边界处切割。块内包含场景编号与节拍、时长与帧数、横幅文字、地点与背景色、镜头与参数、进入剪辑、角色与配饰、字幕带位置、逐词事件表(VO 重读词、帧偏移、事件、运动规格)、环境动效、Boil 效果(横幅与标签每 2 帧 ±1.5 px)、音效。每个排布表行展开为帧级事件,每个重读词一个(每 0.4-0.8 秒),环境动效常开;帧为相对于该词的偏移,后续用 cueOf(ID)(word, n) 读取。产品 UI 为纸显示器或笔记本上的粗略重建,配假交互(光标点击、打字、进度、波形、列表滚动)。每卷一次真实截图证明:源页面浏览器截图(library/tools/capture.mjs,非重绘)贴在纸卡上,红色马克笔圆圈自动画出关键行,其余保持纸片粗略重建。CTA 前回扣一次早前布景。
- 镜头与转场规则:每场一个运动,慢推为基线;照亮布景加视差环绕以增深度,数字和笑点用重读词上的推近或急推,前景掠过(模糊纸物横过镜头)或移焦,拉远揭示尺度,挣扎吉祥物节拍用定格加标签。横幅变化多用硬切;2-3 个话题变化用带运动模糊的甩镜;进入屏幕、门或镜中时用穿越缩放;每卷最多一次翻页或撕开(用于抓点或前后对比);进入 CTA 用胶带拉(普通牛皮纸条,可加标签印字)。悬念钩子的切出需带运动贯穿,对 S01 和 S02 应用 papercut-hook 的规则。转场 6-12 帧,各配音效(甩、缩放、翻页、撕、撕胶带)。库项目中用工具包的转场系列串联场景,使每个场景起点保持在其 plan.json 帧上以同步语音。
- 音效计划:气声类音效(whoosh、slide、whip、zoom)合计每 2.5 秒最多一个,cues.py 超出会打印提示;入场用接触音(pop、thud、stamp)或静音,音频渲染前在 tools/cues.json 计数;每个块 SFX 行按 library/audio/CATALOG.md 命名;选择床音预设(episode.json 的 bed),并让 cutSfx 与剪辑类型匹配:tearAway 对应 rip,tapePull 对应 tape-peel。
使用方式:按上述步骤依次执行,先写全局规则与 Camera / Cut 表,再逐场写分镜块与音效计划,最后通过检查关口。检查关口要求:每场都有镜头与进入剪辑,普通 CameraPush 不超过三分之一;每个重读词都有事件,环境动效已列出;有一次证明节拍、一次回扣、进入 CTA 的胶带拉或甩镜;最多一次翻页或撕开,气声音效在预算内。场景块的事件表中需命名预期动作与一个夸张节拍;12 项动画原理与工具包组件的映射见 ../papercut-explainer/references/motion-principles.md。
适用场景:适合用 papercut 工具链制作纸片剪贴风讲解视频,需要事先规划镜头、转场与音效节奏的创作流程。
限制:资料未提供收费、价格、平台支持等信息;该技能依赖 papercut-explainer 工具链及若干前置文件与库文件,缺失时需先运行相应步骤或工具。完成后的下一步是 papercut-build,它读取 STORYBOARD.md 与 narration/script.json,搭建项目并把 Camera / Cut 表和场景边界转为 episode.json;STORYBOARD.md 的 Timing 部分在语音完成后才生成,此处应留空。