2.6 KiB
2.6 KiB
交付结构
为每场战役创建独立目录:
战役素材/<规范战役名>/
├── 素材说明.md
├── manifest.json
├── images/
│ ├── 01-<scene-slug>.png
│ ├── 01-<scene-slug>.webp
│ └── ...
└── audio/ # 仅在确有可用音频文件时创建
└── <track-slug>.<ext>
素材说明.md
建议依次写:
- 规范事件名、时代、日期、地点与一句话结论;
- “60–90 秒主旁白”;
- 分幕素材,每幕列旁白、短标题、人物标签、图片文件、画面说明、替代文本和提示词;
- BGM 选曲、音频状态、选择理由与 cue sheet;
- 史实依据、可视化补全和禁用元素。
避免把大量代码或页面实现写进素材说明。
manifest.json
使用 UTF-8 和相对路径。最低字段如下:
{
"event": {
"canonicalName": "规范战役名",
"aliases": ["用户原称"],
"era": "时代",
"date": "日期",
"place": "地点",
"summary": "一句话结论"
},
"narration": {
"language": "zh-CN",
"estimatedSeconds": 75,
"fullText": "可连续口播的主旁白"
},
"scenes": [
{
"id": "01",
"title": "幕标题",
"timePlace": "本幕时间地点",
"purpose": "本幕叙事作用",
"narration": "本幕旁白",
"overlay": {
"heading": "短标题",
"line": "一句短文案"
},
"people": [
{ "name": "人物", "office": "当时身份", "action": "动作或结局" }
],
"image": {
"original": "images/01-scene.png",
"delivery": "images/01-scene.webp",
"alt": "准确替代文本",
"prompt": "最终成图提示词",
"visualInference": "不属于史料明文的气氛或构图补全"
},
"sources": ["史料及卷次"]
}
],
"bgm": {
"catalogId": "项目曲目 ID",
"title": "曲名",
"version": "版本",
"status": "attached | playable-url | pending-export | unavailable",
"pathOrUrl": "有实际音频时填写,否则为空",
"usage": "伴奏、去人声或原曲使用方式",
"reason": "为何适合这场战役",
"cues": [
{ "from": "00:00", "to": "00:12", "scene": "01", "direction": "剪辑和情绪说明" }
]
},
"sources": [
{ "claim": "覆盖的事实", "citation": "来源" }
],
"blacklist": ["禁止画入或写成事实的内容"]
}
status 必须反映真实状态。只有文件已复制进 audio/ 才使用 attached;只有可访问的项目自有音频地址才使用 playable-url。