From c3206f86b28cf01f5040a35a86df6b0dff657919 Mon Sep 17 00:00:00 2001 From: DKChan <524912269@qq.com> Date: Sun, 1 Nov 2026 23:17:02 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E9=97=B8=E4=BF=AE(shot=5Fchecker=E8=89=B2?= =?UTF-8?q?=E6=95=B0=E9=98=88=E5=80=BC64=E2=86=9240=C2=B7=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E8=A3=81):=20A=E6=AE=B5=E5=94=AF=E4=B8=80=E8=89=B2?= =?UTF-8?q?=E6=95=B0=E6=94=B9=E6=AD=A3=E5=B8=B8=E5=AE=9E=E6=B5=8B=E5=9C=B0?= =?UTF-8?q?=E6=9D=BF=E4=BD=99=E9=87=8F=E5=88=B6=E2=80=94=E2=80=94=E7=8E=B0?= =?UTF-8?q?=E8=A1=8C=E4=B8=83=E5=B1=8F=E5=AE=9E=E6=B5=8B60(=E8=90=A5?= =?UTF-8?q?=E5=9C=B0=E5=9C=BA=E6=99=AF=E5=9B=BE,=E4=B8=83=E5=B1=8F?= =?UTF-8?q?=E6=9C=80=E4=BD=8E)~1579,=E9=98=88=E5=80=BC40=3D=E5=9C=B0?= =?UTF-8?q?=E6=9D=BF2/3,=E4=BD=8E=E4=BA=8E=E4=B8=80=E5=88=87=E6=AD=A3?= =?UTF-8?q?=E5=B8=B8=E5=B1=8F;=E8=A1=8C=E5=86=85=E8=AF=AD=E4=B9=89?= =?UTF-8?q?=E6=94=B9=E3=80=8C=E8=89=B2=E6=95=B0=E5=BC=82=E5=B8=B8=E5=9B=9E?= =?UTF-8?q?=E8=90=BD=E3=80=8D,camp=3D32=E7=89=B9=E5=88=A4=E9=9A=8F?= =?UTF-8?q?=E9=9B=B6=E7=89=B9=E5=88=A4=E4=BB=A4=E5=88=A0=E9=99=A4;?= =?UTF-8?q?=E5=A4=B4=E6=B3=A8=E8=A1=A5=E5=8F=8C=E5=90=8D=E5=88=86(std?= =?UTF-8?q?=E2=89=A58=3D=E5=9C=A3=E7=BB=8F=C2=A77.2=E6=96=87=E5=AD=974.5:1?= =?UTF-8?q?=E6=8E=A8=E8=AE=BA=E4=B8=8B=E7=95=8C=E4=B9=8B=E4=B8=8B+?= =?UTF-8?q?=E6=AD=A3=E5=B8=B8=E5=AE=9E=E6=B5=8B=E6=9C=80=E4=BD=8E19.3?= =?UTF-8?q?=E4=B9=8B=E4=B8=8A=E7=9A=84=E7=A9=BA=E5=B1=8F=E7=BB=8A=E7=BA=BF?= =?UTF-8?q?;=E8=89=B2=E6=95=B040=3D=E6=AD=A3=E5=B8=B8=E5=9C=B0=E6=9D=BF?= =?UTF-8?q?=E4=BD=99=E9=87=8F);art-pipeline-tools=E5=8F=A3=E5=BE=84?= =?UTF-8?q?=E8=A1=8C=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- design/art/art-pipeline-tools.md | 2 +- tools/shot_checker.py | 15 +++++++-------- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/design/art/art-pipeline-tools.md b/design/art/art-pipeline-tools.md index 2af15deb..cc52a794 100644 --- a/design/art/art-pipeline-tools.md +++ b/design/art/art-pipeline-tools.md @@ -176,7 +176,7 @@ python tools/shot_checker.py <截图目录> python tools/shot_checker.py <截图目录> shot_menu.png shot_battle.png ``` -**判据或口径**:A 屏级骨架——PNG 存在、任一边 1280、灰度 std 不低于 8、唯一色数不低于 64(camp 屏不低于 32——对齐场景环境子板每屏 ≤32 色硬上限,环境层未渲染只剩 UI 面即触红;防空白语义由 std 判据承担)。B 文字对比——战斗 C 区面板与明细带提示的 WCAG 不低于 4.5:1。C 明度三档——战斗屏信息面高于世界中,世界中高于世界底。D 文字禁压纹理——文字框背景中带灰度 std 不高于 18。F 文字在——菜单标题框内与中位灰度差大于 60 的像素占比落在 2% 到 55%。B/C/D 只在清单含 `shot_battle.png` 时跑,F 只在含 `shot_menu.png` 时跑,其余屏只跑 A。全过 0,缺参数或任一失败 1。 +**判据或口径**:A 屏级骨架——PNG 存在、任一边 1280、灰度 std 不低于 8(取值在圣经 §7.2 文字 4.5:1 推论下界之下、正常实测最低 19.3 之上)、唯一色数不低于 40(正常实测地板 60 的 2/3,低于一切正常屏;色数异常回落=画面异常信号)。B 文字对比——战斗 C 区面板与明细带提示的 WCAG 不低于 4.5:1。C 明度三档——战斗屏信息面高于世界中,世界中高于世界底。D 文字禁压纹理——文字框背景中带灰度 std 不高于 18。F 文字在——菜单标题框内与中位灰度差大于 60 的像素占比落在 2% 到 55%。B/C/D 只在清单含 `shot_battle.png` 时跑,F 只在含 `shot_menu.png` 时跑,其余屏只跑 A。全过 0,缺参数或任一失败 1。 **已知坑与适用边界**:截图必须由窗口化 `shot_probe` 产出;headless 没有渲染面,截图是空的。`shot_meta.json` 缺失时 B/C/D 直接判 meta 几何缺失,不会跳过。尺寸断言按「任一边等于 1280」放行;1920×1080 截图两边都不等于 1280,会被判非工程档,与文件头「1920 档 1.5×」说明不一致,按源码为准。焦点预算是目检项,机检不判。 diff --git a/tools/shot_checker.py b/tools/shot_checker.py index 9749778d..9fdb5735 100644 --- a/tools/shot_checker.py +++ b/tools/shot_checker.py @@ -6,9 +6,9 @@ r"""shot_checker.py — 整屏样张闸机检(B 档断言骨架扩全)。 = shot_probe 输出的控件实测几何,为文字框/明度带取样坐标源——分辨率档位自适应,禁硬编码像素)。 断言(整屏样张闸 §1.4 四项的机检可判面): - A 屏级骨架: PNG 存在/尺寸=工程档/灰度 std≥8/唯一色数≥64(渲染真实发生;camp 屏 ≥32—— - 营地场景联合色板恰 32 色=圣经 §4.1 场景环境子板每屏 ≤32 色上限值,环境层未渲染只剩 - UI 面(≈28 色)即触红,防空白语义由 std≥8 承担); + A 屏级骨架: PNG 存在/尺寸=工程档/灰度 std≥8/唯一色数≥40(渲染真实发生——std≥8 取值在 + 圣经 §7.2 文字 4.5:1 推论下界之下、正常实测最低 19.3 之上;色数 40=正常实测地板 60 + 〔营地场景图,七屏最低〕的 2/3,低于一切正常屏,色数异常回落=画面异常信号,停下人工复查); B 文字对比度: 已知文字框〔主墨/暖白 文字簇 vs 背景簇 p2/p98 极性无关〕WCAG ≥4.5:1 (战斗 C 区面板/结算明细提示等已知文字框——圣经 v3.5 §7.2 全局文字硬指标机检面); C 明度三档带: 战斗屏 信息面(C 区面板均值) > 世界中(棋盘区均值) > 世界底(舞台无光柱区均值) @@ -137,11 +137,10 @@ def main() -> int: colors = len(set(img.getdata())) if std < 8.0: failures.append("%s: 灰度 std %.1f < 8(疑似空白/纯色)" % (name, std)) - # camp 屏=场景图:阈值取场景环境子板每屏 ≤32 色上限值(营地联合色板=32)—— - # 环境层未渲染只剩 UI 面(≈28 色)即触红;其余屏沿用防占位屏 64 色。 - min_colors = 32 if name == "shot_camp.png" else 64 - if colors < min_colors: - failures.append("%s: 唯一色数 %d < %d(疑似占位屏)" % (name, colors, min_colors)) + # 唯一色数下限=正常实测地板 60(营地场景图,七屏最低)的 2/3——低于一切正常屏; + # 色数异常回落=画面异常信号,停下人工复查。 + if colors < 40: + failures.append("%s: 唯一色数 %d < 40(色数异常回落)" % (name, colors)) print("[shot_checker] %s — %s std=%.1f colors=%d" % (name, "x".join(map(str, img.size)), std, colors)) # B+C+D 断言(battle/menu 两屏为机检承载屏;camp/level 走骨架+目检清单) From 91f91744cde9adb2283c33bf2943874331005a10 Mon Sep 17 00:00:00 2001 From: DKChan <524912269@qq.com> Date: Sun, 1 Nov 2026 23:17:04 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E7=99=BB=E8=AE=B0(=E5=BE=85=E5=8A=9E?= =?UTF-8?q?=E6=B8=85=E5=8D=95=C2=B7=E7=94=A8=E6=88=B7=E4=BB=A4):=20?= =?UTF-8?q?=E6=96=B0=E6=9D=A1=E7=9B=AE=E3=80=8C=E6=AD=A3=E5=B8=B8=E5=B1=8F?= =?UTF-8?q?=E5=94=AF=E4=B8=80=E8=89=B2=E6=95=B0=E6=94=B6=E6=95=9B=E3=80=8D?= =?UTF-8?q?=E2=80=94=E2=80=94=E4=B8=83=E5=B1=8F=E5=AE=9E=E6=B5=8B60~1579?= =?UTF-8?q?=E8=89=B2=E6=95=B0=E8=BF=87=E6=9D=82=E8=AE=B0=E6=B2=BB=E7=90=86?= =?UTF-8?q?,=E5=BE=85=E7=BE=8E=E6=9C=AF=E8=AE=BE=E8=AE=A1=E8=AE=A8?= =?UTF-8?q?=E8=AE=BA(=E7=9B=AE=E6=A0=87=E4=B8=8A=E9=99=90/=E6=94=B6?= =?UTF-8?q?=E6=95=9B=E6=89=8B=E6=AE=B5/=E4=B8=8E=C2=A74.1=E4=B8=A4?= =?UTF-8?q?=E5=B1=82=E8=89=B2=E6=9D=BF=E6=9D=A1=E6=AC=BE=E5=85=B3=E7=B3=BB?= =?UTF-8?q?),=E7=8A=B6=E6=80=81=E5=BE=85=E6=96=87=E6=A1=A3=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1,=E6=94=B9=E5=8A=A8=E9=9D=A2=E6=96=87=E6=A1=A3+?= =?UTF-8?q?=E7=BE=8E=E6=9C=AF=E7=B4=A0=E6=9D=90;=E6=9C=AC=E6=89=B9?= =?UTF-8?q?=E5=8F=AA=E8=B0=83=E9=97=B8=E9=98=88=E5=80=BC=E4=B8=8D=E5=8A=A8?= =?UTF-8?q?=E8=89=B2=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 待办清单.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/待办清单.md b/待办清单.md index 9901a01d..2ae9f45e 100644 --- a/待办清单.md +++ b/待办清单.md @@ -2,6 +2,16 @@ 本清单是流水线的唯一登记处:以后才做的事在此登记一条,随流水线段推进改状态,做完整条删除(条目记进度,不是各段的开工前置);各系统文档的「待办」节只留一行指路存根,不再自建条目。条目格式(标题=登记元数据含可选优先级,正文=实况/缺口/改动面/状态四属性)与状态机以 [doc-conventions §12.1](design/engineering/doc-conventions.md) 为权威。 +#### 正常屏唯一色数收敛(2026-11-01 登记,来源=会话提及) + +**实况**:实测凭据=render_gate 七屏 shot_checker 读数(2026-11-01 会话实测,1280 档整屏唯一色数):营地 60/设置 125/生涯 736/关卡 843/状态 865/菜单 968/战斗 1579–1884;历史 QA(2026-09-30)最低 495。正常屏色数 60–1579、数量级过大=颜色过杂,用户裁记待办治理;本批只调闸机阈值(正常地板 60 的 2/3=40),不动色板。关联文档:[美术圣经](design/art/art-bible.md)(§4.1 色板分层=色板纪律 owner)。 + +**缺口**:还差一次美术设计讨论——正常屏色数的目标上限、收敛手段(色板压缩/量化纪律)、与 §4.1 两层色板条款(token 板 ≤48/环境子板每屏 ≤32)的关系。 + +**改动面**:文档+美术素材 + +**状态**:待文档设计 + #### hobgoblin 内容三件套补齐(2026-11-01 登记,来源=审计发现) **实况**:敌人表 hobgoblin 行(寻址键 (1, battle, 3))数值完整在役、战斗正常运行,但内容三件套未交付——立绘、敌种语义模板、敌人系统.md 敌种表行均缺,呈现面因语义模板未成文无定义可依。登记凭据=[敌人系统](design/gdd/systems/战斗循环/敌人系统.md) v1.1「hobgoblin 缺口登记」节(2026-10-13 迭代 24 反哺④)。