diff --git a/reports/提案-三关色相互辨抽测方案-2026-10-29.md b/reports/提案-三关色相互辨抽测方案-2026-10-29.md new file mode 100644 index 00000000..048703ea --- /dev/null +++ b/reports/提案-三关色相互辨抽测方案-2026-10-29.md @@ -0,0 +1,150 @@ +# 提案:三关色相 × 五组微光互辨抽测方案(2026-10-29) + +> **性质**:待办清单条目「三关色相 × 五组微光互辨抽测——三关图类型色板终值冻结的前置抽测」的设计段过程稿。**本轮只做设计**:不出素材、不跑抽测、不改 `design/art/art-bible.md`(v3.22 已封提交)与其它权威文档、不改代码。 +> 上游依据:`art-bible` §6.3(三关图类型色板与终值取值程序,本抽测的登记处)、§4.2(类型微光色带五组,色相+明度双码)、§4.3(图类型四槽与不变槽)、§1.4(格子样张,终值冻结闸)、§2(明度三档带与世界底层两子带)、§4.1(色板分层、第二道门、对比硬指标)、§3.2(装饰变体与微光画法)、§6.5(视野迷雾与记忆态);实现侧在役口径 = `game/presentation/views/ui_kit.gd` 微光明度阶梯头注、`game/tests/unit/presentation/type_glow_test.gd`、`game/probe/type_glow_shot_probe.gd`、`tools/render_sample_sheet_v3.py` 的 `CHECKS` 断言写法。 +> 所引色值一律转写自 `tools/recolor_terrain_tiles.py` 的 `PALETTES` 与 `art-bible` §4.2 冻结值,**冲突时以 owner 文档/脚本为准**(本提案不复述圣经定值、也不新增色值)。 + +--- + +## 0. 三件缺口的定值结论(只读这一段也能定) + +| 缺口 | 结论 | +|---|---| +| **① 取样面** | 取样单元 = **三关格底 × 五组微光 = 15 对**;每对铺 **3 格**(素砖底/装饰变体底 A/装饰变体底 B 各一),另每关每底型 1 格无微光基准格 → 取样格 **45**,基准格 **9**,合计 **54 格**。**装饰变体底带**(两种,与 §1.4 样张清单「含至少两种装饰变体」同数),**迷雾记忆态底不带**(推导见 1.4)。 | +| **② 互辨判据** | **目检与机检并用**:目检先行、机检冻结(沿 §1.4 整屏样张闸明文闸形)。目检管「色相吞没」这条机器测不了的观感判据(四条,§2.2);机检管明度与可辨下限(四条,§2.3),阈值全部沿用在役值:**合成对比 ≥1.20**(`type_glow_test.gd`/`type_glow_shot_probe.gd` 的 `GRAY_CR_MIN`)、**三通道差不得全部 <8/255**(§4.1 第二道门量纲)、**样图读数与合成模型差 ≤±2/255**(`ui_contrast_probe.gd` 迷雾行值容差)。**不自造阈值**。 | +| **③ 产物形态** | **两者兼有**:一张并列样图(承担目检)+一份逐对读数表(承担机检冻结)。样图是本条目要出的图,落 `artwork/` 在途样张 → **本条改动面须补「美术素材」档**;出图与读数由样张脚本产 → **同时补「工具代码」档**。本轮改动面 = **文档+美术素材+工具代码**。 | + +--- + +## 1. 抽测设计:取样面 + +### 1.1 取样单元与组合数 + +- **取样单元 = 一对(当关格底 × 一组微光)**——§6.3 点名的风险就是「格底与微光同在未开格面,邻近色相有吞没风险」,风险发生在**一对之内**,故以对为单元。 ←机检: 读数表行数 = 45(3 关 × 5 组 × 3 底型),逐行可追溯到唯一一格 +- **组合数 = 3 × 5 = 15 对**:三关 = `dungeon`/`underdark`/`deep_underdark`(§4.3 词表),五组 = 通用增益芥末黄/治疗黄绿/穿刺青/魔法紫罗兰/群伤绯红(§4.2 冻结五组;绘制取值 = `ui_kit.gd` 的 `TG_GLOW_*` 五个常量,组内不细分)。 ←机检: 样图内五组色块与 `ui_kit.gd` 五个常量逐位一致 + +### 1.2 底型三版(素砖底 + 两种装饰变体底) + +- **素砖底版**:该关墙瓦片 `wall_center` 件原图铺底。 +- **装饰变体底版 A/B**:该关 `wall_center_crack`(裂纹)与 `wall_center_speckle`(碎石斑)两件原图铺底——两者即高墙瓦片词表在册的两种装饰变体件,与 §1.4 样张内容清单「含至少两种装饰变体」同数。 ←机检: 抽测脚本装载的装饰变体件名 ∈ 高墙瓦片词表 16 件名单,且两版件名互不相同 +- **为什么要带装饰变体底**:微光是画在格**内缘**的带状泛光(§4.2 v2 呈现参数:内缘带状、带宽格边÷8),装饰变体按 §3.2 纪律贴**砖缘**分布——两者同处缘部、空间重叠,装饰纹理会混进微光带的合成值。素砖底上互辨过关不等于变体底上过关,故三版都要铺。 ←方向性 +- **每对 3 格**:同一对(关 × 组)在三种底型上各铺一格,任一底型不通过即该对不通过。 + +### 1.3 排布与格数 + +- **排布**:三关各一块,竖排;每块 3 行(素砖/变体 A/变体 B)× 6 列(列 0 = 无微光基准格,列 1–5 = 五组微光,**按明度阶梯序**芥末黄→黄绿→青→紫罗兰→绯红排列)。 +- **阶梯序即相邻并列**:列 1–5 按阶梯序排,任意相邻两列即一组「两两相邻格微光并列」(§1.4 样张内容清单点名项),每关每底型 4 对,合计 3 × 3 × 4 = **36 对**,无需另铺对照列。 ←机检: 每块列 1–5 的带内合成亮度按列序单调递减 +- **列 0 基准格**:同关同底型、不画微光的一格,供目检比对「这一关的格底本身长什么样」,也是机检「同格中心素底均值」的取样源。 +- **格边长 = 45px**(D 区实比,与 §1.4 主样张板同档);每块 6 × 45 = 270px 宽、3 × 45 = 135px 高,加块标题 20px;正图段 465px 高。 +- **灰度副本段**:正图段整段去色相(§4.5「色弱模拟(去色相)」口径)另出一份,等幅面,紧接正图段下方——色弱通道的目检在副本上做,不要求评测者自己脑补去色。 ←目检: 灰度副本段内零彩色像素(R=G=B) +- **画布**:单段 620px 宽(左标注列 170 + 图 270 + 右说明列 180);两段 + 页眉 60 + 段间 30 + 图例 80 → **画布 640 × 1120**,四缘留 10px 净空(过 §1.4 A5 四缘净空断言)。本条为过程件布置,不入 §8.2。 ←机检: 样图四缘 10px 带内零内容像素 + +### 1.4 迷雾记忆态底:不带(推导) + +- **不带**。推导:类型微光只画在**未开格**(§4.2/§4.6.3「未开格类型预读」单通道);迷雾记忆态只作用于**区外已开格**(§6.5「区外已开格:暗淡记忆态」);区外**未开格**一律全黑不渲染(§6.5 二值态,零信息)。三者合起来:微光与记忆态**永不同格共存**,不构成取样面。 +- 邻格关系(记忆态已开格与带微光的未开格在灯光区边界相邻)的可辨性由 §2 明度分层(墙顶受光档 L≥0.30 对记忆态合成底 ≈0.036)与 §6.5 可辨性自查三通道承载,不属本抽测面。 ←机检: 抽测样图内零迷雾灰罩合成底格(记忆态合成底三关行值 `#4C4038`/`#3F4147`/`#3E4048` 零出现) + +### 1.5 铺底值的取法 + +- **铺底 = 该关在役墙瓦片素材原图**(`terrain_wall_*_.png`,由 `tools/recolor_terrain_tiles.py` 程序换色产;素材不入 git,本地需有现件,缺件即抽测不成立的先决阻塞)。 +- **铺底代表值 = 该关墙顶受光家族最亮槽(色表 `H2` 槽)**,用于登记与读数比对;若实测未过 §4.1 硬指标门(L≥0.30、饱和 ≤0.55、避 300°–345°),则沿同家族向更亮槽上移直到过门——仍在在役色表内,**零新增色值**。 ←机检: 三关铺底代表值逐一满足 L≥0.30 且饱和 ≤0.55 且色相 ∉ [300°,345°] +- **机检用的「格底均值」不取色表槽值,取渲染面**:该关墙瓦片在**内缘带区域**(与 `type_glow_shot_probe.gd` 同口径:`de < 格边 × 0.125`)的像素均值——微光落在缘部,判据必须比对的正是它压着的那一圈底,不是整格平均。 + +--- + +## 2. 互辨判据 + +### 2.1 两段的分工(沿 §1.4 已立闸形,不自造) + +- **闸形 = 目检先行、机检冻结**,直接沿用 §1.4 整屏样张闸明文写法(「方向稿目检先行(防『机检过闸但气质否决』式返工),目检过后机检冻结」)。本抽测是 §1.4 格子样张的前置,与同一闸形对齐。 +- **分工理由**:本次要判的风险是**色相吞没**——「这一组微光在这块格底上还看不看得出来、会不会看成另一组或看成装饰」。这是观感判据,机器测不了;本作对此已有明训(§4.1「机检≠看得清」,目视验证面 = 渲染帧取证)。机器能测的是明度与可辨下限,故机检只管它能管的那一段。 ←方向性 +- **冲突处理**:目检不通过的一对,机检即使全绿也判该对**不通过**(目检先行即否决权在前);机检不通过的一对,目检即使看得出也判**不通过**,走 §4 步骤 S5 修法后重跑。 ←机检: 读数表逐行判定 = 目检判定 ∧ 机检 B ∧ 机检 C,三者并列取严 + +### 2.2 目检判据(看什么、算过,四条) + +1. **逐对指认**:对 45 个取样格逐格报出「这一格的微光属哪一组」(五选一),与样图答案表逐位比对;**45/45 全中才通过**,指认不出或报错组即该格不通过。 ←目检: 逐格报出的组号与答案表 45/45 一致 +2. **灰度副本重复一遍**:在同一图的去色相副本上重做第 1 条(色弱通道,§1.4 验收 2「色弱玩家的类型主通道 = 微光」+ §4.5⑨),同样 45/45。 ←目检: 灰度副本上逐格报出的组号 45/45 一致 +3. **相邻并列可辨**:36 对相邻微光格(1.3 阶梯序相邻列)逐对判「两格是否可分辨」,全对可分才通过(§1.4 样张内容清单「含两两相邻格微光并列」)。 ←目检: 36 对逐对判定全为可分 +4. **装饰不抢读**:两种装饰变体底上的微光仍可指认,且装饰不构成格内第二焦点(§3.4 焦点预算:微光为底效泛光不作焦点,装饰残缺内凹自然后退)。 ←目检: 30 个变体底取样格(2 变体 × 3 关 × 5 组)内无一处装饰被判为焦点 + +### 2.3 机检判据(阈值与出处,四条) + +- **机检 A|五组明度阶梯逐关重算**(沿用 `type_glow_test.gd` ④ 与 `type_glow_shot_probe.gd` V6 在役口径,只把合成底从固定 `BRICK` 换成当关格底均值):五组按阶梯序合成后 Rec.709 亮度**单调递减**,且**任意两组合成对比 ≥1.20**(对比 = WCAG 线性域相对亮度 +0.05 偏移,判据线 `GRAY_CR_MIN = 1.20`,与 `tools/shot_checker.py` WCAG 段同公式)。三关 × 三底型各跑一遍,**30 行读数**。 ←机检: 每关每底型阶梯单调成立且最弱合成对比 ≥1.20 +- **机检 B|格底-微光可辨底线**(沿用 §4.1 第二道门量纲 8/255):每一对的「微光带内合成均值」与「同格中心素底均值」的 RGB **三通道差不得全部 <8/255**——三通道里至少一通道 ≥8/255 才过。全 <8 即肉眼不可辨,等于微光被格底吞没,直接否决。 ←机检: 45 行读数中三通道差全部 <8/255 的行数 = 0 +- **机检 C|绘制参数校准**(沿用 `ui_contrast_probe.gd` 迷雾行值 ±2/255 容差):样图带内均值与合成模型(`0.49 × 微光色值 + 0.51 × 格底均值`,`ui_kit.gd` 头注登记口径)逐对差 **≤±2/255**;超差即样图绘制参数与 §4.2 v2 冻结呈现参数(α170、带宽格边÷8、软边 0.55、圆角 2px)不符,须校准后重出图,否则后续读数全部失真。 ←机检: 45 行读数中模型差 >±2/255 的行数 = 0 +- **机检 D|格底候选值准入**(沿用 §4.1 硬指标与两道门):三关铺底代表值各过 L≥0.30、饱和 ≤0.55、避 300°–345° 禁入带、§4.2 语义检查(环境域,不占红/金/蓝/紫赤/绿语义段)、与既有任一色三通道差不得全部 <8/255。 ←机检: 三关铺底代表值五门全过,逐枚列读数 +- **说明**:机检 A 的 1.20 与机检 B 的 8/255、机检 C 的 ±2/255 三个数值**全部是本作在役值**,本轮不新拟一个数。色相吞没不设机检阈值——本作没有任何条文给出色相差门槛,自造一个数等于把观感问题伪装成可机检问题。 ←方向性 + +### 2.4 谁来判 + +- **机检 = 脚本自判**:沿用 `tools/render_sample_sheet_v3.py` 的 `CHECKS` 机制(`:113` 建表/`:117` 登记/`:1033` 汇总/`:1164` 出报告表),逐项打印 PASS/FAIL 并输出机检报告。 +- **目检 = 用户**:§1.4 闸形定气质终审为用户目检(样张 v3 先例:机检 17/17 全绿后由用户目检验收)。 + +--- + +## 3. 产物形态与改动面 + +- **产物 = 两者兼有**: + - **一张并列样图**(正图段 + 灰度副本段 + 图例,54 格,1.3 排布)——承担目检四条; + - **一份逐对读数表**——表一「逐对表」45 行(关/底型/微光组/带内合成均值/同格中心素底均值/合成对比/三通道差/模型差/色相差/判定),表二「组间表」30 行(关/底型/组对/合成对比/灰度亮度/判定),承担机检 A–D 与冻结后的回归比对。 +- **归档位**:样图落 `artwork/` 在途样张(与 §1.4 样张 v3 产物 `artwork/mockups/sample-batch-v3-final-2026-09-30.png` 同归位;图片不入 git,按 §8.3 归档纪律);读数表为过程件,随样图同批输出落 `reports/`。 +- **改动面结论(本轮)= 文档 + 美术素材 + 工具代码**: + - **美术素材**:样图是本条目要出的图,落 `artwork/` 在途样张 → 按 `doc-conventions` §12.1 划线判据(美术素材 = `artwork/` 在途样张与 `game/assets/art/` 终稿)**须补本档**; + - **工具代码**:出图与读数由 `tools/` 下样张脚本产(扩既有样张脚本或单立抽测脚本,二选一由执行批定)→ **须补本档**; + - **文档**:终值落位改 §6.3 与本待办条目 → 本档原已有; + - **不补「游戏代码」**:本轮不改 `game/`(不改探针、不改 `ui_kit` 色值)。若抽测判某组不互辨而需动微光明度档(provisional 域,见步骤 S5),那是下游修法,届时再补该档,本轮不预写。 + +--- + +## 4. 执行步骤(一步一动 + 一个可核查结果) + +- **S1 取三关铺底值**:从 `tools/recolor_terrain_tiles.py` 的 `PALETTES` 取三关墙顶受光家族最亮槽值各一枚,逐枚跑机检 D。→ **结果**:三关铺底值过门读数表(每枚列 L、饱和、色相、与既有色最小三通道差、语义检查结论)。 +- **S2 出并列样图**:跑样张脚本产样图(含灰度副本与图例),脚本同步打印机检 A/B/C 逐项结果。→ **结果**:一张 PNG(54 取样格 + 灰度副本 + 图例)+ 脚本断言打印全项 PASS/FAIL。 +- **S3 目检**:用户在样图上按 §2.2 四条逐项判,逐格/逐对记录。→ **结果**:目检判定表(90 次指认 + 36 对相邻并列,逐项 PASS/FAIL + 不通过项描述)。 +- **S4 汇总裁定**:目检四条全过 且 机检 A–D 全绿 = 抽测通过。→ **结果**:抽测结论一行(通过/不通过 + 不通过项清单)+ 逐对读数表一(45 行)与组间表二(30 行)。 +- **S5 修法(仅不通过时)**:先调该组微光的**明度档**——`ui_kit.gd` 头注已写明明度档属 provisional 域、允许域内自调(翻动色相才触 §4.2 冻结面),调明度**零新增色值**;明度档调到域边界仍不过,再换当关格底槽(同家族内换槽,仍在在役色表内,零新增)。改完重跑 S2–S4。→ **结果**:修订后样图 + 重跑读数(目标全绿)。 +- **S6 终值落位**:抽测通过后,把三关 `tile_closed` 与 `wall_ambient` 终值登记进 §6.3 三关行,并按 §4.1 分层②场景环境子板口径登记(每套 ≤32 色、过两道门)。→ **结果**:§6.3 三关行含两槽终值色值字面量,且该行现行机检断言已同步改写(见 §5 断言翻转)。 +- **S7 下游冻结**:按 §4.3 现行四槽换色规则重跑 §1.4 格子样张,过闸即砖面形态与色板冻结。→ **结果**:§1.4 样张重跑机检全绿 + 用户目检通过。 + +--- + +## 5. 终值如何落位 + +- **落哪两槽**:§4.3 四槽中的 **`tile_closed`**(未开格底)与 **`wall_ambient`**(墙雾氛围 tint)——即本条目原文点名的两槽。`tile_open` 已由 §1.4 样张 v3 冻结在世界底层档、`variant_tint` 只改色相不改纹形(归地形变异批),两槽不属本条。 +- **按什么程序**:§6.3 明文两步——**先抽测**(本条),**再按 §4.3 现行规则重跑 §1.4 格子样张冻结**,色值不代填。冻结后落 §6.3 修订。 +- **断言翻转(易漏,务必同批做)**:§6.3 现行机检断言是「本节三关行无 `tile_closed`/`wall_ambient` 终值色值字面量(终值未冻结前禁填)」。填值那一刻该断言必红,故落位同批必须把它改写为「三关行两槽终值 == 冻结值,且与 §4.1 场景环境子板登记同值」——**禁只填值不改断言**。 ←机检: §6.3 三关行两槽终值与 §4.1 环境子板登记值逐字一致,且该行机检断言已改指冻结值 +- **两槽终值从哪取(零新增)**:`tile_closed` 取该关在役墙瓦片墙顶受光档槽值;`wall_ambient` 取同关色表内带该关主题色相的槽值(dungeon 暖棕/underdark 冷蓝灰/deep_underdark 铁灰,§6.3 方向候选)。两槽取同关同槽值亦可(同属环境域,不撞 §4.2 语义段,一色两岗在环境域不违例);若要拆成两枚不同值,须走 §4.1 分层②「新增环境色」路径(不占 48 token 额度,但仍属新增),本轮不取、不预写。 +- **额度账**:两槽终值属 §4.1 分层②**场景环境子板**(环境色 = 地面/石材/背景,随场景走;每屏一套 ≤32 色,**不占 48 token 额度**)。本轮终值全部从在役色表取,**需新增色值 = 0,48 色余量仍为 0,无需压缩任何既有色**。 +- **wall_ambient 的明度口径注(本轮按此执行)**:tint 只染**色相与饱和**,不改被染面的明度档——被染面明度由该面自身层档定(棋盘墙雾面走墙顶受光档,B 区背景走世界底层档,§6.1)。推导:另一读法(tint 连带明度、把被染面拉到 L≥0.30)会同时撞 §6.1「背景明度走世界底层档」、§2 世界底层两子带(0.014–0.06/0.08–0.14)与 §1.4 整屏②项层间可分三条,是唯一会同时破三条的读法,故不取。§4.3 的 L≥0.30 在此口径下仍作**槽值登记门**(登记值取墙顶受光档槽值即满足)。另:`wall_ambient` 不与微光同面(它是背景/墙雾 tint,微光画在格面),**不进本抽测取样面**,其终值由 S7 的 §1.4 重跑闸判定。 + +--- + +## 6. 待裁点清单 + +**零待裁点。** 三件缺口全部由圣经条文与在役实现推出定值:取样面由 §4.2/§3.2/§6.5 推出(含「迷雾记忆态底不带」的推导),判据阈值全部沿用在役值(1.20/8/255/±2/255)不自造,产物形态与改动面按 `doc-conventions` §12.1 划线判据直接判档,终值取值路径零新增色值(不触 48 额度),wall_ambient 的明度口径按「唯一不破三条的读法」定值。 + +--- + +## 7. 附:读数表字段定义 + +**表一 逐对表(45 行 = 3 关 × 5 组 × 3 底型)** + +| 字段 | 口径 | +|---|---| +| 关 / 底型 / 微光组 | 取样面坐标,可追溯到样图唯一一格 | +| 带内合成均值 RGB | 该格内缘带(`de < 格边 × 0.125`)像素均值,与 `type_glow_shot_probe.gd` 同口径 | +| 同格中心素底均值 RGB | 同格中心区(内缩 20%,`CORE_PAD_FRAC`)像素均值 | +| 合成对比 | WCAG 线性域相对亮度 +0.05 偏移,供机检 A 判读 | +| 三通道差(最大/最小) | 带内合成均值 减 素底均值,供机检 B 判读(判据看最小通道是否 <8) | +| 模型差 | 带内合成均值 减 合成模型(0.49 × 微光色值 + 0.51 × 格底均值),供机检 C 判读 | +| 色相差(度) | 铺底代表值与微光组色相的差值,**只作读数不设门槛**,供目检与后续定值参考 | +| 判定 | 目检 ∧ 机检 B ∧ 机检 C,并列取严 | + +**表二 组间表(30 行 = 3 关 × 3 底型 × 10 组对)** + +| 字段 | 口径 | +|---|---| +| 关 / 底型 / 组对 | 五组两两全组合(`type_glow_shot_probe.gd` 全对比对口径) | +| 合成对比 | 同表一公式,判据 ≥1.20(机检 A) | +| 灰度合成亮度 | Rec.709 系数合成亮度,供阶梯单调判读 | +| 判定 | 合成对比 ≥1.20 且阶梯单调成立 | diff --git a/待办清单.md b/待办清单.md index 91b51142..cfe9b0f3 100644 --- a/待办清单.md +++ b/待办清单.md @@ -9,12 +9,13 @@ 关联文档清单: - 相关文档 [美术圣经](design/art/art-bible.md) v3.22(2026-10-28)——§6.3 终值取值程序登记行(本抽测的挂点)与三关方向候选行、§4.2「类型微光色带」条(五组色相 + 明度双码)、§4.3 图类型四槽与不变槽、§1.4 格子样张(终值冻结闸) - 设计轮依据:2026-10-28 战斗一屏样张目标规格设计轮 §8.1 A-3 条(该轮过程稿已按「吸收即死」删除、不入库,定值与推导沿革见 commit 50702ea5) +- 抽测方案(过程稿):reports/提案-三关色相互辨抽测方案-2026-10-29.md(2026-10-29,取样面/互辨判据/产物形态三件定值与执行步骤 S1–S7) -**缺口**:抽测怎么跑尚未设计——①取样面:三关色板 × 五组微光的逐对组合怎么铺(每对铺几格、要不要带装饰变体底与迷雾记忆态底);②互辨判据:走观感目检,还是定可机检的色差/明度差阈值,或两者并用;③抽测产物形态:一张并列样图,还是一份逐对读数表,还是两者兼有(产物形态决定本条改动面要不要补「美术素材」档)。需一次美术设计讨论定稿后本条才能执行。 +**2026-10-29 美术设计段闭合**:三件缺口全部定稿,待裁点 0 条。①取样面=3 关 × 5 组=15 对,每对铺 3 格(素砖底/装饰变体 A/装饰变体 B)=45 取样格,另每关每底型 1 格无微光基准=9 格,合计 54 格;画布 640×1120,正图段+灰度副本段;装饰变体底**带**、迷雾记忆态底**不带**(§4.2/§4.6.3/§6.5 三者合起来永不同格)。②判据=目检四条+机检四条并用,沿 §1.4 已立闸形「目检先行、机检冻结」;机检阈值全部取自本作在役值(合成对比 ≥1.20、格底-微光三通道差不得全部 <8/255、样图读数与合成模型差 ≤±2/255、铺底值准入 L≥0.30/饱和 ≤0.55/避 300°–345°),**色相通道刻意不设机检阈值**(圣经无色相差门槛条文,自造等于把观感问题伪装成可机检问题)。③产物形态=**两者兼有**(并列样图承担目检、逐对读数表承担机检与回归),故改动面须补「美术素材」与「工具代码」两档。新增色值 **0 枚**——`tile_closed`/`wall_ambient` 属 §4.1 分层②场景环境子板,**不占 48 token 额度**,故「额度用尽」不构成阻塞;三关瓦片色表已在役(`tools/recolor_terrain_tiles.py` 的 `PALETTES`,每套 23 色 ≤32),终值从墙顶受光档槽取即可。执行前提已核:三关瓦片现件(dungeon/underdark/deep_underdark 三套)在本机 `game/assets/art/board/` 齐备,可开跑。 -**改动面**:文档 +**改动面**:文档+美术素材+工具代码 -**状态**:待美术设计 +**状态**:美术设计已闭合+待执行 #### gdstyle 存量债全量清偿——216 键按病根分波整改(2026-10-26 登记,来源=会话提及,优先级=P0)