# 制作与修订

## 1. 主题和参考

确定观众看完能理解或完成什么，按问题写证据表和自己的 treatment。短片
可围绕一个动作，长片按问题的发展分章。借用参考的视觉功能，不借用它的
产品、台词、人物或分镜次序。材料已明确时直接开展，不重复索取批准。

有参考 MP4 时记录文件哈希、帧率、尺寸、时长与颜色标记，完整解码；逐帧
建立结构/动作笔记。分开记录实际看过的图集和原尺寸细节。此前的参考研究
可以引导观察，但不能替新输出盖章。

## 2. 镜头和造型

每镜写信息目的、主体、动作、接触点、结果、阅读区、相机、转场及声响。
先做角色模型表和少量实际绘画帧，验证套色、压力线、字体和层级，再做短
运动段。发现接触错误、袖口断裂、标题遮挡或纸纹过重，先修工具和造型。

需要公众人物、国旗、品牌时在资产表登记来源与本次绘制约束。数字、示意
图和讲述共同读取一个领域状态，避免算式、道具数量与字幕各写一套。

## 3. 音频先于最终计时

按 AUDIO.md 生成/导入音频并核对。测量实际 WAV，保留自然语速。再决定
入场、停顿、声画先后与阅读尾巴。每个镜头使用整数 `[start, end)` 帧范围。
字幕、动作、音乐、音效、章节均引用这一个时钟；不可分别累加秒数造成漂移。

按 frame 参数直接计算画面，避免依赖前一帧、副作用、墙上时钟或无种子的
随机数。`lib/timeline.mjs` 分离 poseFrame 与连续 frame；`lib/print.mjs`
的套色只随姿态帧变化。乱序寻帧应得到相同画面。

## 4. 长篇与渲染

章节是完整思想单位。每章改变镜头功能和配器，同时保持角色比例、物体色、
线宽与字幕位置。加入演示、反应和阅读时间，不能只延长标题停留。

可逐章渲染缓存。键至少包含代码/配置/资产/字体的实际字节哈希、WAV 哈希、
最终计时和渲染器版本；仅用文件名或脚本标题会误复用。修改下游时间轴时
重新计算依赖。拼接后的最终 MP4 仍要完整检查章节边界、字幕和声响尾部。

每台机器使用共享 `tools/frame_review/ffmpeg_gate.py` 协作锁；它等待已经
运行的 FFmpeg，不结束其他任务。锁不能阻止不协作的软件在检查后启动。
锁路径和可执行文件路径按本机设置，不硬编码另一台机器的 Homebrew 路径。

## 5. 复核、修复、交付

先混音，再编码，然后审查实际编码文件。REVIEW.md 定义覆盖与修复方法。
一次修订保存旧版；修复发生在哪段就审看那段及前后转场，并核对其余帧是否
确实未改变。音频、字幕、时间戳或编码器变化也可能扩大复核范围。

交付 MP4、字幕、章节、可编辑源文件、依赖版本、素材许可、输出哈希和真实
的验证范围。可选 H.264/yuv420p、1080p24、BT.709 与 48 kHz AAC；具体指标
遵循发布目的。编码成功只是技术检查。公开发布与本地制作是不同动作。
