用故事板做 coding 视频
条件参考
- 只有当用户实际输入
/goal来启动或恢复一个目标时,才完整读取references/goal-director.md并按其中的导演约束执行。 - 普通镜头制作、修改、预览、渲染,以及仅仅讨论
/goal时,不读取该文件,也不得为了“更稳妥”而提前加载。
先规划,未确认前不写代码
- 看完
.media/storyboard/的全部帧,按“同一主体连续存在或形变”分组。 - 在
STORYBOARD.md写分组、镜头依赖和素材清单;素材必须标明画面显示尺寸。 - 对内部连续形变的镜头,在
RENDER_STRATEGY.md比较可行方案并锁定实现方式 →references/render-strategy.md。 - 把分组表和素材清单给用户看,等待确认。
timeline.json 是镜号、起止时间和总时长的唯一规划来源;不要在多个 Markdown 文件重复维护时间表。
制作主干
- 同组镜头先建立一套共享主体渲染器、CameraRig、资产加载器和场景状态;镜头文件只保留状态与时间参数。
- 先静态复现故事板关键帧,合成一张简洁接触表给用户验收;端点未通过,不做插值和缓动。
- 静态通过后制作动画,只交付可拖动预览并等待验收。
- 后续镜头从上一镜通过的尾帧继续演化:延续、变形、新增或消失,不重画或覆盖已存在主体 →
references/scene-continuity.md。 - 所有镜头通过后接入唯一总时间线,检查接缝、总时长和一次完整播放;用户确认后再渲染成片。
已通过的镜头、主体和素材均为锁定项。若问题来自尺寸、位置、裁切、摄影机或特效,只改对应参数;除非用户明确否定素材本身,不得重新生成素材。
按依赖并行,不按镜号排队
- 同一主体的连续形变或必须继承上一镜尾帧的部分,按依赖顺序制作。
- 独立场景、背景、透明素材和不依赖前镜构图的完整镜头可并行制作。
- 共享母场景接口稳定后,不同镜头的状态、覆盖层和内部动画可并行。
- 并行分支只能写自己的目录,不改总时间线、共享母场景源文件和已通过镜头;输出只需接触表或预览。
- 后镜若只依赖入场衔接,可先完成主体场景与动画,最后再接上一镜尾帧参数。
最短执行路径与提示词约束
- 每个执行提示词只围绕用户当前要看的一个交付物展开,写清允许写入范围、最少步骤、明确停止点和本轮不做事项;不要把阶段预览扩张成最终验收。
- 用户要“预览”时,默认路径只有:完成必要编辑或挂载 → 确认页面可加载 → 启动 Studio → 返回链接。不得先用
check、批量快照、接触表、逐帧接缝表、哈希或完整播放阻塞预览。 - 临时组合、部分镜头串联和调试入口都不是总片整合。只负责让用户看到连续画面;逐接缝验收、总时长复核和完整播放留到所有镜头通过后的唯一最终整合阶段。
- 验证必须能直接回答当前的具体问题。没有报错或明确视觉问题时,不得追加诊断脚本、版本探测、回归矩阵、反向 seek、重复截图或“以防万一”的检查。
- 同一会话不要并行或串行堆叠多个浏览器、Studio、
check、snapshot、render进程。一次只运行当前交付所必需的一个前台进程;已有可用结果时立即交付。 - 非渲染验证若数分钟没有新输出或明显超出正常耗时,立即停止并检查最直接的阻塞点;不得无反馈等待几十分钟,也不得原样重跑或继续追加验证。
- 给执行会话的提示词默认使用“做完即停”:达到用户当前要求后返回结果,不自行进入下一阶段,不因技术检查通过而继续扩展工作。
表示与运动规则
- 复杂静态道具用高质量透明贴图;结构几何和规则图形用 Canvas/SVG;粒子、碎片、烟雾和光点用 Canvas。
- 连续增长、侵占和包裹必须分开几何层、纹理层、动画层。扩张的是几何,不是纹理像素。
- 单张二维贴图不能生成原图没有的顶面、侧面和遮挡;需要真透视时改用多角度素材或 3D,并先说明近似边界。
- 摄像机后移、场景拉远和物体缩小不是一回事 →
references/camera-motion.md。 - 同一位置或排版问题连续三轮仍未校准,再做最小 tune 面板 →
references/tune-panel.md。
素材与确定性
- 源图边长不超过画面显示尺寸的 2 倍;优先 WebP q85;单场景图片不超过 3MB →
references/asset-budget.md。 - 渲染时零网络:不使用 CDN 脚本或在线字体。
- 自有代码不得使用
Math.random、Date.now或轮询;首次绘制前执行await img.decode()。
入口与状态
/index.html:唯一总时间线和最终渲染入口,始终从 0 秒初始化。/compositions/NN-name.html:分组或单镜调试入口,必须可独立初始化。- 总时间线必须是真组合,不用 iframe 或页面切换拼接。
HANDOFF.md只保存当前有效状态、锁定项、当前文件、短句式否决项和下一步;保持精简,不保存过程记录、长提示词或历史报告。
最小验收与交付
- 静态阶段:一张故事板关键帧接触表 + “等待验收”。
- 动画阶段:一个可拖动预览 + “等待验收”。
- 临时串联预览:页面可加载 + Studio 链接;不生成接触表,不逐帧核对接缝,不运行正式
check。 - 修正阶段:修正后的帧或预览 + 一句话说明。
- 最终阶段:总预览或视频 + 时长和输出路径。
- 日常检查只确认页面可加载、素材可见、关键帧正确;正式
check仅在动画定稿、最终整合或具体运行问题需要时运行一次。不要重复 lint、check、批量快照或逐帧回归。
默认不得生成审计脚本、验证 JSON、清单、交付说明、身份/Mesh/粒子报告、逐帧哈希、像素差异、重复渲染、反向拖动验证或多版本接触表。出现具体问题时,只检查相关代码、错误或一张问题帧,修复后展示结果;只有用户明确要求,才生成正式诊断报告。