Files
gplan-2/reports/复核-双审-grilling与godot-master-立绘显示档批-2026-11-01.md

6.2 KiB
Raw Permalink Blame History

双审复核 · 立绘显示档批(grilling + godot-master,2026-11-01)

性质:卡片 v1.0 的独立复核产出物(req-card 纪律「grilling 复核门」+迭代 47 双审先例)。两个未参与撰写的会话各自只读复核,本报告记发现与处置去向。 被审对象:reports/需求卡片-立绘显示档批-2026-11-01.md v1.0。 总判:方案本体成立(引擎语义、乙类条款、闸纪律全部咬合),卡片改后可开工——两条阻断均为「补执行步骤」级,不动设计。


一、阻断(两条,双审同指)

# 发现 证据 处置
B1 原稿输入面在实现 worktree 必然缺位,且管线对缺件静默零产出:artwork/ 整目录不入 git,sync_worktree_assets.sh 只同步 game/assets/art+.import,不同步 artwork;pixelize_candidates.py 缺件走 isfile 跳过,exit 0、零文件、零报错 tools/sync_worktree_assets.sh:26-34;tools/pixelize_candidates.py:474-478,507-508 卡 v1.1 T1 补「显式传主区原稿根路径」+「产物计数自证 = 9 件,不足即停」
B2 素材落递主工作区无收口步,合回后验收有洞:素材不入 git、worktree 合回即删;本地 CI 在主区跑,主区仍是旧 46×48 稿,只有 V16「主角源高 ≥92」会报警,敌侧「原稿分辨率落位」在册闸件 standee_asset_check 不在闸清单,等于无人看守 game/tests/run_all.gd:191;tools/run_all_gates.sh(grep 无 standee_asset_check);盘上主区素材实测 卡 v1.1 ①V13 逐件加钉源高=原稿表值(旧降采样稿必红);②T3 补「9 件落递主区再触发 CI」收口步

二、建议(已并入卡 v1.1)

# 发现 出处 卡片处置
S1 样张脚本 A4 硬锁 PORTRAIT_SRC.size==(46,48),T1 换代必红;另有 :1501 强制 96×96 方框 mockup tools/render_sample_sheet_v3.py:1135-1139,1501 列入 F11 现状与 T3 随动步(显式解冻重校)
S2 T1 未明写主角源从 *_1x.png 切 *_2x.png tools/pixelize_candidates.py:476,481 T1 补独立步
S3 PORTRAIT_DISPLAY_H.get(key, 96.0) 兜底字面量 = 档值第二处散落,与契约 2/6 自相矛盾 卡 v1.0 §7.3 改「查表必中+键集覆盖自检」,禁静默兜底
S4 灰矮人 126→96 是全批唯一 <0.8 档(0.76× 真降档,NEAREST 抽行约每 4 行断 1px 描边),不在已接受清单 双审同指 补进契约 5 已接受项+目检①点名(头号回退候选)
S5 关卡地图头像由 ≈1× 变 0.52× 降采样,是全消费面降级最狠一处 level_map_screen.gd:176-190 §4 不做面点名+目检③专列
S6 主角三态宽度不一(88/92/88)且 apply_hero_state 换纹理不重摆,态切换有约 3–6px 横跳(现行 2px 的放大版) standee_motion.gd:85-86 §4 明列不做(重摆=行为改动,禁实现批顺手加)+目检清单登记
S7 T1/T3 闸件口径切换时点三处互斥(T1 说「T2 未就绪允许红」、闸件排在 T3、§15 说已提前到 T1) 卡 v1.0 §7.2/§7.4/§15 统一:闸件口径改造并入 T1(素材与闸件同批),删矛盾句
S8 注释随动面漏 standee_motion.gd:38-39,59,65(反向引用已不存在的「禁非整数缩放」禁令)与 level_map_screen.gd:176 双审同指 T2 补点名
S9 「两表同值」观测面局限申报说重了:grilling 判 Godot editor 版 FileAccess 可读 ../tools/,godot-master 判无稳定通路——两审相左 双审 §6/§O5 卡 v1.1 改「尝试真断言(读 ../tools/pixelize_candidates.py 逐键对账),读不到走 L2 记录退回双端字面钉值+审计对账」,禁把争议当定论
S10 §14 所核 gdstyle_baseline.txt 无该测试键,且 gdstyle 扫描面只含 `game/core data presentation`(tests 不在面)
S11 卡片头行引用待办状态「待写卡」已过时;§7 交叉引用「见 §9 行 V1–V4」应为 §8 卡 v1.0 就地修正

三、观察(不改卡,记录在案)

  • 几何实测:立绘落位只在换纹理拍执行、按缺省盒高 96 算——大档顶 y=−2、中档 20、小档 44;溢出 2px < VBox 间距 4px,恒不碰顶部轮次指示(卡 L3#3 的「碰邻位」实际难触发,仍留作停机条款);立绘链上无 ClipControl,不被裁;意图徽标 y=86 在中/大档为「压胸」,符合圣经③;大档脚底越盒底由明细带面板遮住(现行卓尔/石君王已如此,本批食人魔加深 40px)。
  • 1920 档:三档是 1280 基准壳坐标绝对高,stretch=canvas_items+aspect keep 下整壳 ×1.35 等比,构图恒等,无需新条款。附带发现:project.godot 未显式声明 window/stretch/aspect,依赖引擎缺省——与本批无关,建议另立工程批钉死。
  • 未登记 enemy_id(如 hobgoblin 缺口行)无立绘 → load_tex 返回 null → 字形回退,不进 _place_portrait,显示档不涉,非待裁点。
  • 素材侧健康度:九件原稿色数 30–32、alpha 二值、底缘不透明、敌侧暖白描边 68.4–98.9%(阈值 40% 全过)——T3「其余四断言不变」可保绿。
  • 事实核对:F1–F15 逐条复核通过(F3 的 :197 实为 :198、F10 断言②止于 :100,属微差);F7 降采样等值由 grilling 独立重跑四件字节级复现。
  • 浮点判据:0.99/1.57 档回程有 ULP 级残差,V13/V15 须 is_equal_approx,禁裸 ==。

四、呈用户裁决项(卡片不动,等发令)

  1. 是否把 standee_asset_check 编进代码域闸(run_all_gates.sh 闸件增减属工程改动,另批走)。
  2. 灰矮人 0.76× 与关卡地图头像 0.52× 两处降采样:本卡按「已接受+目检」处理;若实机判不可受,回退路径只有「灰矮人改归中档」或「地图头像出 48 专件」,均须另裁。
  3. 主角态切换横跳(S6):本卡不做重摆;若要修,另立小批。
  4. project.godot 显式声明 stretch/aspect(观察项):另立工程批。