Files
Popiai-skill/video-creation/mv-creator/phases/04-script.md
T

61 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 脚本生成
## 目标
根据歌词拆解的段落结构,为每个段落生成详细的分幕脚本。
## 重点
- 脚本的时间段可以对歌词段落进行拆分或合并,**不需要**与 lyric.md 一一对应
- 各阶段产物相互独立:修改脚本不需要回改歌词,修改分镜不需要回改脚本,以此类推
- **场景拆分后必须重新编号**:若某幕时长超过 15s 需要拆分成多幕,拆分后**必须**将所有场景从第一幕开始重新连续编号(第一幕、第二幕、……第 N 幕),**禁止**使用 `a/b` 后缀(如"第九幕b")。连续编号确保下游分镜图文件命名(scene_01.jpg、scene_02.jpg...)与数组索引严格一致
- 脚本格式**必须**严格遵循模板 `references/script-example.md`(非中文用户参考 `references/script-example-en.md`),否则 HTML 预览解析器无法正确渲染
- **场景描述必须写具体动态**:脚本的场景描述是后续视频提示词的核心输入,描述越具体、动态越丰富,生成的视频动作越自然。**禁止笼统静态描述**(如"旅人站在路边"),必须写清:
- **角色动作**:具体的肢体动作和运动轨迹(走、跑、转身、抬手、低头等)
- **表情/情绪**:面部表情变化(微笑渐收、皱眉凝视等)
- **物件交互**:角色与道具/环境的互动(抚摸琴弦、推开车门、拾起信物等)
- **镜头运动**:明确的镜头语言(从脚部缓缓上摇、跟随角色横移、推近面部特写等)
- **环境动态**:风吹发丝、水面倒影晃动、光影变化等非静态元素
## 格式模板
完整格式示例见 `references/script-example.md`(非中文用户参考 `references/script-example-en.md`)。关键要点:
- 二级标题 `##` 用于每幕场景标题(如 `## 第一幕:黎明启程`
- 时间码行格式:`* M:SS - M:SS (Xs)`
- 不加粗、不标注段落类型(Verse/Chorus 等)
- 括号内为时长(秒),必须为 **415 秒的整数**
- 歌词引用以 `> ` 开头,纯音乐幕无歌词引用
- 每幕必须包含三个字段:`**场景描述:**``**视觉风格:**``**转场:**`
- 可选字段 `**关键物件:**`:列出该幕出现的重要非人物视觉元素,格式为物件名 + 简短外观描述(括号内),多个物件逗号分隔
- 示例:`**关键物件:** 旧皮卡(深蓝色、锈迹斑驳、车顶行李架)、吉他(原木色民谣吉他、琴身有贴纸)`
- 场景之间用 `---` 分隔
## 文件存储
```
./.mv/{song_name}/{theme}/script.md # 脚本文件
```
## 格式校验
脚本写入 `script.md` 后,**必须**运行校验脚本:
```bash
python3 .opencode/skills/mv-creator/scripts/validate_script.py .mv/{song_name}/{theme}/script.md
```
校验规则:场景标题格式、时间码格式(含时长标签)、时长范围(4~15s 整数)、时间段连续性、必填字段完整性、与 lyric.md 交叉校验。
- **通过** → 调用 MCP 工具 `preview_and_collect_feedback` 启动预览:
- **script**: `.opencode/skills/mv-creator/scripts/render_preview.py`
- **args**: `[".mv/{song_name}/{theme}/script.md", "--type", "script", "--lang", "{lang}"]`
- **feedback_path**: `.mv/{song_name}/{theme}/feedback.md`
预览页面以时间线卡片形式展示各幕,用户可点击场景卡片的 `@` 按钮引用到反馈框中。
工具返回反馈内容后:
- `LGTM` → 进入下一阶段
- 其他 → 按建议修改后重新校验和预览
- **未通过** → 由 LLM 根据校验错误信息自动修正 `script.md`,修复后重新校验。
若连续 3 次自动修复仍未通过,通过 `AskUserQuestion` 询问用户处理方式