复盘 · 《镜像自我·人生预演》36h 极限开发(BW 展台互动影游)
入档:2026-07-09 性质:项目级复盘(非获奖图复盘)。按 复盘事实先行原则 与 aigc-postmortem skill 规范撰写。 来源仓库:
mirror-life-rehearsal(私有)· 86 commits · 4 份阶段报告 + 测试报告 + 返工单
事实记录(不可修改区)
- 作品名称:《镜像自我·人生预演》—— BILIBILI WORLD 展位互动影游 v2(纯前端 + RTX 本地 AI,全程可断网)
- 比赛/项目:BW 2026 展台交付(展台技术叙事:RTX 本地 AI)
- 提交时间:2026-07-06 18:07 首 commit → 2026-07-09 02:02 封版 v1.0 → 07-09 21:16 最后一条素材修正入库
- 最终结果:已封版待上展(截至 2026-07-09,BW 未开幕,现场效果尚未验证)
- 验收状态:主导方全部验收通过(2026-07-09 主导口头确认);已知遗留=真人彩排调参未做、女生 b/f 两幕年龄感待连看
- 团队:主导(总体设计/定案/实机测试) + Claude(全栈实现/文档/部署) + 内容/QA 同事 + 素材同事
- 数据来源:git log(86 commits 带时间戳) / 4 份阶段报告 / QA 测试报告(21 项) / 素材返工单01 / 主导 2026-07-09 确认
口径说明:“36h 极限开发”指主体在前 36 小时建成(07-06 晚→07-08 早:叙事引擎+五结局+五迷你游戏+AI报告+海报);其后约 1.5 天为素材整合、安全加固、封版与部署预案。
作品回顾
创作思路:观众 3-5 分钟”预演一次人生”——擦亮镜面 → 8 个人生抉择 → 金色人生曲线游过分支图 → 五扇职业门(军人/画家/赛车手/音乐人/宇航员) → 20s 迷你游戏 → 本地 AI 逐字生成人生报告 → 分享海报带走(扫码手机页)。
执行节奏(git 时间线实证):
| 时段 | 交付 |
|---|---|
| D1 晚(4.5h) | v2 从零建成 + 迭代一内核扩容(节点5→8/回响台词/隐藏结局/称号池) + 迭代二美术轮 + 迭代三五结局架构 |
| D2 上午 | 两轮实测 bug 修复(含”看得见点不到”重大缺陷),P0/P1/P2 内容清零,内测站上线 |
| D2 下午→深夜 | 19 张 MJ 剧照落位,QA 21 项,游戏资产整合,二维码离线自生成,动态剧照 13 条,双版式打印 |
| D3(主导外出参会,自动化维护) | 四阶段:安全加固 14 项 → 分性别素材 13 组 → 分享卡个性化 → 全流程运行时回归 |
| D3 深夜→D4 | 素材修正两轮+返工单终审结案 → 封版 v1.0 + deploy-kiosk → 大陆可达链路(香港服务器 /mlr/ 镜像) |
最终输出:可断网运行的展台 kiosk 包 + 内测预览站 + 大陆直连镜像(蛛网之上「可玩」区上架)。
结果分析
严格区分:“验收通过”是主导方对交付物的判断,不是现场观众的判断——后者要等 BW 开幕后补录(本区预留勘误位)。
成立的部分(有实证):
- 素材与代码解耦的插槽架构:素材位按命名约定(
{id}_{m|f}等)+ 缺失自动回退,13 组分性别素材、20 张海报变体、BGM 全部”放文件即生效”,封版后两轮素材修正零代码改动。 - 管线红线前置检查:Seedance/外部产出 12/13 条是 HEVC(大量手机播不出),统一转码关卡(H.264/1080p30/去音轨/faststart)拦住;封版后新素材又拦下 1 条带 AAC+24fps——同一道闸口两轮起效。
- 诚实包装策略:时间不够做真本地化制作管线时,不造假——RTX 遥测 HUD 用真实数据,离线态明确标注”离线预演档案”,分享卡 AI 溯源行”不编数字”。主导验收通过,对外叙事与事实一致。
代价与未验证项(同样是事实):
- 评级线为纸面值+单点实测,真人彩排没做——普通玩家能否触发二段高潮演出,上展前是最大不确定性。
- 两轮素材返工反馈(脏衣服、年龄感)本质是同一类 prompt 缺陷(见方法论 1),第一轮修复时没有做属性全面自检,第二轮才暴露。
- BGM 拖到素材清单最后一位,靠架构兜底(无文件则静默)而非按期交付。
方法论沉淀
1. MJ 关键属性三重锁定 ⭐⭐ 二次验证
核心:关键属性只靠一个弱信号词(单个形容词/数字)必然漂移;要”正锚+负排除+环境参照”三重锁定。
来源:worn 被理解成脏污(返工反馈一),7-year-old 数字年龄被无视出成少年(返工反馈二)——同一结构,两轮学费。
→ 已抽成原子档 MJ关键属性三重锁定律_v1,细则见彼处。
2. 素材插槽约定即接口 ⚠️ 首次发现(单项目内多点应验)
核心:素材与代码用”命名约定 + 自动回退占位”解耦,素材永远可以后到、随时可换,不改一行代码。
来源:剧照/动态剧照/分性别变体/海报/BGM 五类素材位全部这样接,素材侧三轮返工零代码成本。
操作规则:① 每类素材定命名规约并写进交付文档;② 加载器按约定探测,缺失回退占位(占位也要有观感);③ 新变体=放文件,禁止代码里写死清单。
反例/边界:素材名就是接口——交付方漏写 _f/_m 后缀曾直接导致误判返工(07-09 勘误重整合),规约必须随交付模板下发,不能只存在于代码侧。
3. 外部素材统一转码闸口 ⭐⭐ 二次验证
核心:一切外部产出的视频素材(Seedance/可灵/同事交付)入库前强制过同一条 ffmpeg 命令,不看”应该没问题”。
来源:第一批 12/13 条 HEVC 手机播不出;封版后追加素材又拦下 AAC 音轨+24fps。
操作规则:固定命令入文档(-an -vf "scale='min(1920,iw)':-2,fps=30" -c:v libx264 -crf 24 -pix_fmt yuv420p -movflags +faststart);验收看 ffprobe 输出不看播放器;中文/空格文件名先复制成纯英文短名再处理。
反例/边界:非展台/非移动端受众场景,HEVC 体积优势可能反而该保留。
4. 修正工作要有终审闸门 ⚠️ 首次发现
核心:素材返工必须有一次”主导终审结案”:逐条判入库/拒收留旧版,并明文宣布”修正工作到此为止”,否则返工无限循环吃掉封版时间。 来源:返工单01 终审(2 条入库/3 条拒收留旧版,主导定);“原图未选 HD 模式偏软”被主导拍板可接受不返工。 操作规则:① 返工单逐条编号+实证定性;② 每条只有三种结局:入库/拒收留旧版/降级接受;③ 结案语写进 commit。 反例/边界:需求方明确要求返工的条目不适用”拍板接受”,必须修(本项目两轮返工均重出)。
5. 展台机易失环境自恢复 ⚠️ 首次发现(预案当周应验)
核心:网吧式还原机上,不在仓库里的一切(盘上工具/node_modules/git 身份/全局配置)都会消失;预案=依赖入仓+一键恢复脚本。 来源:封版三天内 H 盘被清,便携 Node/ffmpeg/node_modules/git identity 全没;仓库里预置的恢复脚本当场救回。 → 已抽成原子档 展台机易失环境自恢复预案_v1。
6. 对外 UI 的 emoji 字形版本兼容 ⚠️ 首次发现
核心:近年新增的 emoji(如 🪞 U13.0)在旧系统渲染成方框;对外 UI 选 Unicode 老版本字形。 来源:小站游戏卡片 🪞 在用户机上变豆腐块,换 🎭(U6.0)即愈。 → 已抽成原子档 emoji字形版本兼容律_v1。
下次改进
- prompt 关键属性 checklist 前置:出图前把”年龄/衣着状态/朝向/身份”逐项过三重锁定,不等下一轮返工再逐个补(本项目为此付了两轮返工)。
- 第一轮返工反馈后做全属性自检:反馈暴露的是 prompt 写法缺陷,同类缺陷大概率不止一处——修脏衣服那轮如果顺手查年龄锚,第二轮返工可免。
- 真人彩排纳入封版门槛:数值校准不能只有纸面值,评级线没被真人打过就不算收口。
- 素材命名规约写进交付模板,交付名错一个后缀就是一轮误判返工。
- BGM 这类”唯一外部依赖”素材最先催,架构兜底是保险不是替代。
- BW 开幕后补录现场结果到本档”结果分析”区(勘误方式追加,不覆盖)。
关联文档
- 复盘事实先行原则 —— 本档写作依据
- 2026-07-14_镜像自我_镜中特写AI读心_迭代复盘 —— 迭代续篇:AI 读心板块从占位稿到 gpt-5.5 云端个性化
- MJ关键属性三重锁定律_v1 · 展台机易失环境自恢复预案_v1 · emoji字形版本兼容律_v1 —— 本次抽出的原子律
- 知识库网站免备案上线_香港轻量服务器方案 —— 大陆可达链路(/mlr/ 镜像)复用该档基建
- Claude完成报告核查心法 —— D3 无人值守四阶段维护的验收姿态