Imported from zenstory-ai/drama-skills (
skills/short-drama-edit/SKILL.md) via skills.sh. Install upstream withnpx skills add zenstory-ai/drama-skills --skill short-drama-edit. Copyright stays with the author (MIT).
短剧剪辑与成片
把 剧集/<EP>/制作成果/ 里的逐镜素材装配成一条成片,取舍写进 剧集/<EP>/剪辑单.md。
每段使用二级标题 ## CUT-...,各自绑定一个来源 ID 和一个真实媒体文件:视频段是 MOTION-...,
静态漫剧的关键帧段是 SHOT-... 或 IMG-...。
Quick Start
用 $short-drama-edit 把 EP001 已生产的镜头剪成成片
入口与边界
- 前置条件:
剧集/<EP>/制作成果/中存在可读的视频文件(静态漫剧为已接受的关键帧与配音文件),且ffmpeg/ffprobe在 PATH 上(缺失时edit_tool.py直接报错退出,不近似或伪造通过)。内置渲染直接拼接分段,输入素材的画幅与帧率须一致;不一致时先用外部工具统一并记录裁切或留边。 - 只取舍、不改写:镜序与镜头职责继承自
分镜.md与视频提示词.md,对白、VO、OS 与[画面文字]继承自剧本.md。本阶段可删减、缩短或重排片段,但不得改写台词、镜头职责或起终状态,也不自行增补解说。 - 跨阶段路由:需补拍、重出或换参考图回
$short-drama-produce;改提示词回$short-drama-video-prompts或$short-drama-image-prompts;改台词或叙事回$short-drama-write;成片质量判断交$short-drama-review或创作者(不把渲染成功或时长匹配写成质量结论)。
工作流
- 标定可用带:从头到尾播放每段素材,记录可用时间区间及区间外的缺陷(起势静止、结尾漂移、发白、回弹、重复表演),见 生成素材的可用带。
- 定位发声与入出点:有台词的镜头先定位完整字音与停顿;在可用带内按动作、反应或停顿选入点,在信息完成且缺陷出现前选出点,逐段写清理由,见 入出点与镜序。
- 排镜序与接镜校正:检查相邻镜头的动作、空间与揭示连贯性;
render默认在同场景内自动接镜,需手动覆盖或关闭的段写画面,见 接镜与色彩一致性。 - 处理声音、字幕与叠层:配置
音效、配音、环境声、字幕与画面文字(见 声音、字幕与音乐 與 静帧段)。 - 落盘、渲染与验收:先写出或更新
剧集/<EP>/剪辑单.md(保留未受影响的CUT-...ID),再运行check、render、verify,按 交付与验收 抽帧回听后交付。
剪辑单要求
- 开头交付规格:写明
成片目标时长、画幅与帧率(含静帧段时必填)、交付响度、字幕(可选加接镜匹配:无、颗粒:<0–20|无>)。未进入成片的镜头写- 未采用镜头:<MOTION-...或SHOT-...>(理由:文件缺失|质量不可用|叙事取舍——说明),多项用;连接(下落规则见 静帧段)。 - 分段条目:每段一个
## CUT-<EP>-<序号> · <中文名称>,同一MOTION-...拆成多段时源时间区间不得重叠(确需闪回或强调重复时须写明第二次的作用;同一静帧可复用):-
- 来源:<MOTION-...> · <项目相对路径>(对应视频提示词.md),或静帧段- 来源:<SHOT-...或IMG-...> · <图片路径>(png/jpg/jpeg/webp,入点0.00,出点等于时长且≥ 0.50秒)。 -
- 入点:<秒>/- 出点:<秒>/- 时长:<秒>:两位小数秒数(不写时间码或帧号),满足出点 - 入点 == 时长。 -
- 取舍:入点=<理由>;出点=<理由>:写明入出点处的具体画面变化与叙事作用,不写空泛的「节奏需要」。 -
- 声音:<处理说明>:记录保留原声或外部混音方案(此行仅作记录,不驱动render混音)。 -
- 画面:<接镜校正|无|不校>:无使用默认自动接镜,不校跳过自动接镜,或写手动校正项(参数范围见 接镜与色彩一致性)。 -
- 字幕:<逐字台词原文|无>:逐字照抄剧本.md台词与标点(转写仅用于定位时间)。一镜多句时用连续编号并带相对本段入点的时间(不重叠,止可跨切点):- 字幕 1:0.20-1.50 请进。句末可加(重点:<词>|<词>)标黄;字色由工具按剧本角色自动区分(对白白、[VO] 系统:青、其余[VO]浅青)。 -
- 画面文字 N:<起>-<止> <样式> <项>|<项>…:每一项须在剧本.md的[画面文字]行中有原文(面板自带的【系统提示】【新任务】进度不写进剪辑单;单条可不编号;同位置不得重叠):样式 各项结构 卡片每项一行:首词名称、末词数值、中间为单位(如 本月 订单 128|退货 3)系统面板首项为打字机状态行,其余为奖励行 任务面板标题、目标(打字机); <数> / <数>项为进度,其余为奖励标签角标右上角单行标签(相邻两段写同一角标且首尾相接时不重新入场) 奖励项末可标
(传说)(史诗)(稀有)(默认稀有,不参与原文核对)。任务面板与角标末可加(倒计时:<秒>)或(倒计时:接续)。 -
- 音效 N:<起>-<止> <项目相对路径>(起点:<秒>;增益:<dB>):落在本段内,增益-40到+6,括号项可省。 -
- 运镜:<固定|推近 n%|推近 r%/秒|…>:仅用于静帧段,方向含推近、拉远、左移、右移、上移、下移(幅度n为1–30,速度r为0.1–10),见 静帧段。 -
- 配音 N:<起> <项目相对路径>(起点:<秒>;增益:<dB>):起可为负,声音可跨切点,见 静帧段。 -
- 环境声:[<起>] <项目相对路径>(起点:<秒>;增益:<dB>)或- 环境声:[<起>] 无:循环铺底直至下一条环境声,见 静帧段。
-
命令
命令由 edit_tool.py 提供:
python3 <本技能目录>/scripts/edit_tool.py check <剧集/EP001> --project-root <project>
python3 <本技能目录>/scripts/edit_tool.py render <剧集/EP001> --project-root <project> [--no-subtitles] [--subtitles ffmpeg|remotion] [--remotion-concurrency N]
python3 <本技能目录>/scripts/edit_tool.py verify <剧集/EP001> --project-root <project>
check:核对素材时间戳是否比剪辑单新、区间自洽、来源 ID 与每镜下落、文件存在、区间不越界(需ffprobe)、同源不重叠、字幕与画面文字原文匹配、倒计时接续合法、音效落在本段内、字幕与配音不越过片尾且同轨不重叠(配音需ffmpeg;缺工具时显式报「未测」)。render:切段、静帧运镜、同场景自动接镜、拼接、混入音效/配音/环境声、烧录字幕与画面文字、统一响度,输出至剧集/<EP>/制作成果/成片/并保留中间文件。字幕默认走ffmpeg(libass);--subtitles remotion或含画面文字时需使用 Remotion 叠层(默认并发 2)。verify:测量成片时长、响度、真峰,并列出画面文字/音效/配音成片起止秒、切点亮度变化、切点音量变化与疑似坏帧供抽帧和回听。
按需知识与维护
除上文「工作流」与「剪辑单要求」已链接的专项指南外,可按需读取:阶段契约(阶段边界与 EDT-* 规则表)、剪辑单样例。安装、升级或排障时运行 python3 {技能目录}/scripts/selftest.py。
