92 lines
2.6 KiB
Markdown
92 lines
2.6 KiB
Markdown
# 交付结构
|
||
|
||
为每场战役创建独立目录:
|
||
|
||
```text
|
||
战役素材/<规范战役名>/
|
||
├── 素材说明.md
|
||
├── manifest.json
|
||
├── images/
|
||
│ ├── 01-<scene-slug>.png
|
||
│ ├── 01-<scene-slug>.webp
|
||
│ └── ...
|
||
└── audio/ # 仅在确有可用音频文件时创建
|
||
└── <track-slug>.<ext>
|
||
```
|
||
|
||
## 素材说明.md
|
||
|
||
建议依次写:
|
||
|
||
1. 规范事件名、时代、日期、地点与一句话结论;
|
||
2. “60–90 秒主旁白”;
|
||
3. 分幕素材,每幕列旁白、短标题、人物标签、图片文件、画面说明、替代文本和提示词;
|
||
4. BGM 选曲、音频状态、选择理由与 cue sheet;
|
||
5. 史实依据、可视化补全和禁用元素。
|
||
|
||
避免把大量代码或页面实现写进素材说明。
|
||
|
||
## manifest.json
|
||
|
||
使用 UTF-8 和相对路径。最低字段如下:
|
||
|
||
```json
|
||
{
|
||
"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`。
|