合并(营地场景重排接线批): 落表——十层新矩形(围墙 (0,220,1280,200)、大门 240×138 底压墙底 (520,282)、告示板 (845,241)、其余六件按 2026-11-05 裁定)+围墙件换代(1280×164 补尖+墙脚入土, 12 色零新增)+视图 expand_mode 修(门扇 138 高矩形生效)+单测 5 条钉值断言+设计文档三件(camp-scene-prompts v1.9/art-bible v3.48/camp.md)+需求卡片成立(两轮独立复核 24 发现全处置)+实现报告/反哺点两件;待办条目随实现完成整条删除。凭据: 营地单测 exit=0、冒烟 PASS、ui_struct_probe PASS、色板零新增、path_check 0、流水线闸 PASS;冲突续提交路径钩子不触发——前置检查手动补跑、推送手动补做(本仓在册坑)
ci / gates (push) Failing after 8m2s

This commit is contained in:
DKChan committed 2026-11-07 18:52:44 +08:00
commit 5f233bac9a
11 files changed
+237 -35

No files matched your search

+4 -3
View File
@@ -1,6 +1,6 @@
# 美术圣经(Art Bible)— Dungeon Sweeper
> 项目:Dungeon Sweeper(扫雷 × 自动战斗 闯关 Roguelike)· 状态:**第 1–9 节定稿**;现行为 v3.47,历次修订明细见 git 提交史
> 项目:Dungeon Sweeper(扫雷 × 自动战斗 闯关 Roguelike)· 状态:**第 1–9 节定稿**;现行为 v3.48,历次修订明细见 git 提交史
>
> **Art Director Sign-Off(AD-ART-BIBLE)**:历次批均未签核——此为 Lean/Solo 模式(非 PHASE-GATE)下的现行治理状态;full 门禁签核时机待用户表态。
> 风格基调:地牢题材但**非暗黑风**——轻快明亮的幻想冒险风,全年龄;像素风;角色 2~3 头身。
@@ -392,13 +392,14 @@
- **情绪与色域**:承载 §2.8——全作最暖:烛光黄 `#F6C667` × 木色 `#8A5A34`(§7.2),中等饱和,无棋盘式高对比。
- **场景构成**:一张可点击的营地场景图(1280×800,与工程档同幅面)。远景=天空与远山;中景=**独立成层的木围墙**(密排竖木桩、桩顶削尖、不透缝无横木)与**半开的营地大门**;近景=中央篝火、左侧锻炉铁砧、右侧帐篷与宝箱、帐篷旁的笔记本,另有木桩与挂在围墙上的布告板。**中景带自底部往上约 2/3 处起**;**近景物件可覆盖围墙,唯一例外=中间门洞必须留空、不被任何物件遮挡**。七个可点物件的功能绑定归 `camp.md`,本节只定画法。
- **图层拆分(10 张)**:场景按「远景/中景/近景要素各自成层」拆——`scene_camp_bg` 背景层(z0,不透明全幅)=天空+远山+整片地面+门洞内一条通向远处的小路;`scene_camp_wall` 围墙层(z1,透明底)=横贯全宽密排木桩墙(左右两段)+两根略高的门柱,**门洞处留透明缺口**透出背景层的小路;`scene_camp_board` 布告板(z2)、`scene_camp_gate` 门扇(z3)、`scene_camp_dummy` 木桩/`scene_camp_forge` 锻炉/`scene_camp_tent` 帐篷(z4)、`scene_camp_chest` 宝箱/`scene_camp_notebook` 笔记本(z5)、`scene_camp_campfire` 篝火(z6,最前)=八个物件层,各透明底单件一张。**帐篷**为承载件、不可点。围墙独立成层的好处:桩高可单独锁死、门洞做透明缺口、背景层不混入暖木色。提示词与坐标 = `camp-scene-prompts.md`,消费常量 = `asset-path-map`。
- **交付形态**:**背景层 1 张(不透明全幅)+ 围墙层 1 张 + 八个物件层 = 10 张**,其中 9 张透明底、1 张不透明全幅 + 一份坐标表(贴图矩形/命中矩形/z 序)。背景层由**远景片 `bg_far`(2560×734)与地面片 `bg_floor`(2560×866)两片出图、按 y734 拼成一张**——整张一次出图时模型把远山挤到画面下半部,被围墙挡住后完全消失(实测三张里两张山体上缘落在墙顶以下)。接缝整条落在围墙背后,画面无接缝。**篝火例外**:命中矩形只取下半(火堆),上半(火焰)只作特效展示。围墙层落盘按细条裁,不做全幅(全幅约 3.9 MB 显存,细条约 0.35 MB);**实装落盘矩形 `(0, 203, 1280, 164)`、底锚 y367**(桩身 150px、门柱 164px 终稿锁定值,落带内〔围墙带 (0,203,1280,164)〕)。
- **交付形态**:**背景层 1 张(不透明全幅)+ 围墙层 1 张 + 八个物件层 = 10 张**,其中 9 张透明底、1 张不透明全幅 + 一份坐标表(贴图矩形/命中矩形/z 序)。背景层由**远景片 `bg_far`(2560×734)与地面片 `bg_floor`(2560×866)两片出图、按 y734 拼成一张**——整张一次出图时模型把远山挤到画面下半部,被围墙挡住后完全消失(实测三张里两张山体上缘落在墙顶以下)。接缝整条落在围墙背后,画面无接缝。**篝火例外**:命中矩形只取下半(火堆),上半(火焰)只作特效展示。围墙层落盘按细条裁,不做全幅(全幅约 3.9 MB 显存,细条约 0.35 MB);**实装落盘矩形 `(0, 220, 1280, 200)`、底锚 y420**(2026-11-07 用户裁:墙高 200、顶 y220;素材 1280×164 按 200 高显示拉伸,桩身/门柱比例随缩放;围墙带 (0,220,1280,200))。
- **墙脚入土线(2026-11-07 用户裁)**:围墙不与地面以直线相接——墙底按 1–7px 低频起伏裁成透明缺口,透出背景层地面纹理,读作桩子插入土中。像素级判据:墙底不存在贯通全宽的直线边界,缺口透出的像素与背景层同列地面纹理同源。参考图指针=[camp-scene-prompts](camp-scene-prompts.md) §5 第 12 条。验收:目检〈墙底无贯通直线、桩脚有入土感〉
- **色彩与氛围依据**:营地的暖由晒白的地面、木色物件与烛光黄承载,安全温馨,与冒险中的地下城形成对比;远景=正午强日照——天空淡晴蓝(高明度低饱和的清蓝)、远山一整片连续的淡蓝灰山体(禁层叠轮廓带与阴影台阶)、草地与土路晒白,整体淡而退后,近景暖调为主。现行口径 = 本文件 §2.8「全作最暖」(管菜单容器与元进度,不约束背景天空)与本节「情绪与色域」条。本节不复述色值;新增环境色按 §4.1 场景环境子板条款登记(背景层自板 ≤32 色、营地屏双板制并集 ≤64,过 §4.2 语义检查与 RGB 三通道差 ≥8/255 两道门)。
- **背景层环境色与自板(2026-11-07 录入登记)**:背景层单张走自板 ≤32 色,环境色五族=淡晴蓝天空、淡蓝灰一整片远山、晒白浅黄绿草地、暖米白土路、泛白米黄营地地面;新增色过 §4.1 两道门,近色走换色合并(本次 4 对:九件板 `#D7B281`→`#D1B27F`;全局色板基线 `#B3C8D3`→`#BAC1D2`、`#DCEDF5`→`#D8ECF0`、`#E7E5D2`→`#EBE8CE`)。像素级判据:机检〈单张像素域唯一色 ≤32;palette_check 对九件主色板基线与全局色板基线(`game/tests/golden/palette_baseline/`)均零近色红〉;目检判读句=[camp-scene-prompts](camp-scene-prompts.md) §4 远景片两条(淡晴蓝/一整片山体)。参考图指针=[asset-path-map](asset-path-map.md) §3 scene/ 行(`scene_camp_bg`)。验收:机检〈单张 ≤32 且 palette_check 零红〉+目检〈天空淡蓝不深饱和、山体一整片无层叠带〉
- **交互四态(零新素材,全部程序化)**:悬停=**轮廓亮边 + 浮动**(浮动须整像素吸附);按下=位移 1px;**禁用/未解锁=降明度 + 去饱和**(§2 已缩窄至情绪域,状态表达不受限),**仅锻炉(锻造工坊)与宝箱(秘宝匣)两件会有此态**;已解锁=常态。
- **钥石余额**:常驻画面顶部的一行小 HUD 栏(高 48px,**浮层覆盖,不挤压画面**)。栏体底=`CAMP_HEADER_BAND` `#6E4526`(§7.2 五 token 对齐表在册色)× 不透明度 0.80;栏内只钥石徽章一件、右位顶格,左位不放件。呈现定值的唯一事实源=[camp](../ux/camp.md) §顶栏,本节不复述判据。验收:目检〈顶栏成一条可辨窄带,徽章落在带内〉
- **事实源边界**:解锁条件/价格/存档写入归元进度 GDD 与 `MetaProgression`;素材命名与路径归 `asset-path-map`;清单登记归 `art-assets-checklist` §3.5。
- **已裁(2026-11-01 用户裁)**:① **营地环境子板色值**——不前置拍板:量化场景实际用色后按 §4.1 场景环境子板条款登记(背景层自板 ≤32 色、营地屏双板制并集 ≤64,过 §4.2 语义检查与 RGB 三通道差 ≥8/255 两道门);② **门扇与门洞的高宽比例**——门扇贴图 240×138(锁定 240×147),随门洞 y283–367 压扁重画,坐标按门洞 x520–760 对齐;③ **帐篷的落地尺寸**——251×170 落位 (982, 335),上端遮住围墙下部。
- **已裁(2026-11-01 用户裁)**:① **营地环境子板色值**——不前置拍板:量化场景实际用色后按 §4.1 场景环境子板条款登记(背景层自板 ≤32 色、营地屏双板制并集 ≤64,过 §4.2 语义检查与 RGB 三通道差 ≥8/255 两道门);② **门扇与门洞的高宽比例**——显示矩形 240×147(贴图可见高 138),门扇件沿用 240×211 由运行时压扁(2026-11-07 用户裁「不动美术素材」),坐标按门洞 x520–760 对齐、底压墙底 y420;③ **帐篷的落地尺寸**——251×170 落位 (982, 335),上端遮住围墙下部。
### 6.3 三关图类型色板候选(board_type 换挡方向)
+13 -12
View File
@@ -1,4 +1,4 @@
# 营地场景 · 分层生图提示词卡 v1.8
# 营地场景 · 分层生图提示词卡 v1.9
> **性质**:营地场景图(1280×800,一张可点击场景图 + 十张分层:背景层 1 + 围墙层 1 + 八个物件层)的出图执行侧文件。**场景级资产,与角色级 [art-prompts](art-prompts.md) 并列,两文件互不覆盖**。
> **依据**:色彩与氛围 = [art-bible](art-bible.md) §2.8 与 §6.2(营地的暖由晒白的地面、木色与烛光件承载;远景走正午强日照、天空淡晴蓝,与冒险中的地下城形成对比;本卡不复述色值);坐标与层序 = 本卡 §2.3(运行期单一事实源 = `game/data/tables/camp_scene_layout.tres`);物件命名与消费链 = [asset-path-map](asset-path-map.md);画法与交付形态 = [art-bible](art-bible.md) §6.2。画法与用色冲突时以 art-bible 为准。
@@ -85,11 +85,11 @@ Pixel art style. True pixel art game ground texture, chunky square pixels, stric
2. 按 y367 上下拼接成 1280×800
3. 量化到背景层自板(≤32 色;营地屏双板制、屏并集 ≤64,见 art-bible §4.1 营地行)
4. 需要 2× 档时整数倍放大到 2560×1600
5. 接缝不做过渡处理——它整条落在围墙(203–367)背后
5. 接缝不做过渡处理——它整条落在围墙(220–420)背后
### 2.2 围墙层(`scene_camp_wall`,不可点,透明底)
**出图画布**:2560×1600(与背景层同画布,门洞 x 坐标直接对齐);墙横贯画在出图 y406–734 这条带内(桩身 y434–734,门柱 y406–734),其余为纯色底 `#F2F2F2`。落盘由 S4 后处理裁成终稿外接矩形 `(0, 203, 1280, 164)` / 出图 `(0, 406, 2560, 328)` 的细条,**不做全幅 1280×800 落盘**(全幅约 3.9 MB 显存,细条约 0.35 MB)。
**出图画布**:2560×1600(与背景层同画布,门洞 x 坐标直接对齐);墙横贯画在出图 y406–734 这条带内(桩身 y434–734,门柱 y406–734),其余为纯色底 `#F2F2F2`。落盘由 S4 后处理裁成素材细条 `1280×164`(出图 `(0, 406, 2560, 328)`),**不做全幅 1280×800 落盘**(全幅约 3.9 MB 显存,细条约 0.35 MB);**显示矩形 `(0, 220, 1280, 200)`(2026-11-07 裁,运行时按 200 高拉伸)**。
**画什么**:横贯全宽的密排竖木桩墙(左右两段,桩身终稿 150 高)+ 两根略高的门柱(终稿 164 高),门洞处完全透明
**不画什么**:天空、远山、地面、小路、门扇、七个物件、角色;门洞内不画任何东西,透出背景层的小路
@@ -104,14 +104,14 @@ Pixel art style. True pixel art game layer drawn with chunky square pixels, stri
| 顶栏 HUD 保留带 | y ≤ 48 | **y ≤ 96**(保持空旷) |
| 远景片 `bg_far` | y 0–367(高 367) | y 0–734(高 734,3.5:1) |
| 地面片 `bg_floor` | y 367–800(高 433) | y 734–1600(高 866,3:1) |
| 两片接缝 | **y 367**(落在围墙 203–367 背后) | **y 734**(落在围墙 406–734 背后) |
| 两片接缝 | **y 367**(落在围墙 220–420 背后) | **y 734**(落在围墙 406–734 背后) |
| 地平线(山脚/草地起点) | y 与两片接缝重合,墙背后不可见 | 同左 |
| 远山带 | y 51–202(画面 14%–55%,山体 41%) | y 103–403 |
| 草地带 | y 202–367 | y 403–734 |
| 围墙层外接矩形 | y 203–367(高 164) | y 406–734(高 328) |
| 围墙带(wall 层桩身) | y 217–367(**高 150px**) | y 434–734(**高 300px**) |
| 门柱(wall 层,略高) | y 203–367(高 164);x 500–520 / 760–780 | y 406–734;x 1000–1040 / 1520–1560 |
| 门洞(wall 层透明缺口) | y 283–367(高 84);x 520–760 | y 566–734(高 168);x 1040–1520 |
| 围墙层外接矩形 | y 220–420(高 200,2026-11-07 裁) | y 406–734(高 328,素材画布不变) |
| 围墙带(wall 层桩身) | 素材桩身 150 按 200/164 显示拉伸(显示约高 183) | y 434–734(**高 300px**) |
| 门柱(wall 层,略高) | 显示 y 220–420(高 200);x 500–520 / 760–780 | y 406–734;x 1000–1040 / 1520–1560 |
| 门洞(wall 层透明缺口) | 墙件缺口全高 y 220–420;门扇可见 y 282–420(高 138);x 520–760 | y 566–734(高 168);x 1040–1520 |
| 门洞内小路(画在远景片草地内) | x 520–760 穿门洞,自接缝 y367 向上收窄,到山脚 y202 消失 | x 1040–1520,自 y734 向上收窄,到 y403 消失 |
---
@@ -147,7 +147,7 @@ Do not add any of the following: realistic, photorealistic or 3D rendering; pain
| 笔记本 | 5 | 100×80 | 200×160 | §3.7 |
| 篝火 | 6 | 160×160 | 320×320 | §3.8 |
**落位尺寸(2026-11-05 用户裁地平线 y367 重排后)**:布告板 130×121/门扇 240×138/木桩 120×180/锻炉 240×193/帐篷 251×170/宝箱 106×90/笔记本 100×66/篝火 160×149——贴图锚定=底中心(帐篷/锻炉/宝箱/篝火/笔记本)+顶锚(门扇悬挂/布告板挂墙);命中矩形按锁定值。八件只改落位,门扇另随门洞压扁重画(原 240×211 → 240×138),其余七件沿用现有终稿。
**落位尺寸(2026-11-05 用户裁地平线 y367 重排后)**:布告板 130×121/门扇 240×138/木桩 120×180/锻炉 240×193/帐篷 251×170/宝箱 106×90/笔记本 100×66/篝火 160×149——贴图锚定=底中心(帐篷/锻炉/宝箱/篝火/笔记本)+顶锚(门扇悬挂/布告板挂墙);命中矩形按锁定值。八件只改落位,门扇另随门洞压扁重画(原 240×211 → 240×138),其余七件沿用现有终稿。**2026-11-07 追加**:布告板 `(845, 241)`、门扇 `(520, 282)`、围墙显示矩形与墙脚入土见 §5 第 12 条。
**3.1 布告板(→ 图鉴)**
```
@@ -213,7 +213,7 @@ A campfire made of a ring of grey stones around crossed stacked logs with a warm
- 目检:细节由大像素块构成、块尺寸与远景片同一档,读作拖拽脚印/碎石/踩踏斑块;禁 1–2px 碎点噪声、禁迷彩式闭合斑块
**整图(两片拼接后)**
- 接缝 y367 落在围墙 203–367 背后,**画面里看不见接缝**
- 接缝 y367 落在围墙 220–420 背后,**画面里看不见接缝**
- 单张 ≤32 色(量化后)
- 全幅无任何独立物件/图标/徽章/标记
@@ -238,12 +238,13 @@ A campfire made of a ring of grey stones around crossed stacked logs with a warm
1. **地平线与整体分带**:地平线定在终稿 y367(出图 y734);地面 433px、可见远景 217px(27%);围墙、门、布告板随之上调
2. **围墙高度**:桩身 150(出图 300)、门柱 164(出图 328)、门洞 84(出图 168);墙高须大于门洞高
3. **门扇尺寸**:贴图 240×138(锁定 240×147),随门洞压扁重画,坐标按门洞 x520–760 对齐
3. **门扇尺寸**:显示矩形 240×147(贴图可见高 138),门扇件沿用现 240×211 由运行时压扁(2026-11-07 用户裁「不动美术素材」),x 对齐门洞 520–760、底压墙底 → (520, 282)
4. **帐篷**:251×170 沿用现终稿,落位 (982, 335),遮住墙下部 32px(覆盖围墙可接受)
5. **笔记本**:随帐篷跟随,落在帐篷左下方外侧、两者不重叠——`x = 帐篷 x − 112`、`y = 帐篷底 + 10`
6. **宝箱离底**:贴图底 y744,距画面底 56px;其余物件同步上移 46px
7. **地面分两区**:营地外(y734 以上)=晒白的浅黄绿草地+一条向远山收窄的暖米白土路;营地内(y734 至画面底)=正午太阳下晒到泛白的踩实米黄土地、与草地异色相、无草无路无车辙;两区分界被围墙层完全遮住
8. **背景层分两片出图**:远景片 `bg_far`(2560×734,天空 14%/远山 41%/草地 45%+小路)+ 地面片 `bg_floor`(2560×866 踩实裸土),后处理按 y734 拼成一张 2560×1600;接缝落在围墙 406–734 背后。分片理由=整张出图时模型把山挤到画面下半部,实测三张里两张山体整段被围墙遮没
9. **布告板位置**:(845, 224, 130, 140),底 345 落在墙内,不再悬空
9. **布告板位置**:(845, 241, 130, 121)(2026-11-07 随墙顶),底 362 落在墙内(墙 220–420);命中 130×140
10. **描边颜色**:奶油色追认——去底脚本「奶油描边膨胀 3px 当屏障」的技术前提随现值锁定(§1 注记同源);改深灰褐须换去底方案全量重出,不裁
11. **营地环境子板色值**:不前置拍板——量化场景实际用色后按 art-bible §4.1 两道门登记(语义检查+RGB 三通道差 ≥8/255),本卡仍不复述色值
12. **围墙显示几何与墙脚入土(2026-11-07 用户裁)**:围墙显示矩形 `(0, 220, 1280, 200)`(顶 y220、高 200、底锚 y420);大门 240×138 尺寸不变、底压墙底 → `(520, 282)`;告示板 130×121 尺寸不变、随墙顶下移 17px → `(845, 241)`;墙脚按 1–7px 低频起伏裁透明缺口透出地面纹理(入土线,判据归 art-bible §6.2)
+1 -1
View File
@@ -26,7 +26,7 @@
**场景按要素分层(10 张)**:远景天空/远山/整片地面/门洞内的小路合成 `scene_camp_bg` 背景层(z0,不透明全幅);中景木围墙独立成 `scene_camp_wall` 围墙层(z1,透明底,门洞处留透明缺口);其余八个物件层各一张、由上往下叠。门洞是围墙层的透明缺口,透出背景层画的**一条通向远处的小路**,不可填死。
**地平线在终稿 y367**(自画面底部往上约 46%),其上是天空与远山、其下整片地面;**中景围墙带 y203–367**,桩身 150、门柱 164;近景物件允许压住围墙(围墙不可点,z 序在近景物件之下),**唯一例外=中间门洞必须留空、不被任何物件遮挡**。围墙形态、门扇比例与帐篷尺寸的现行口径归 [art-bible](../art/art-bible.md) §6.2,本 spec 不再复述。
**地平线在终稿 y367**(自画面底部往上约 46%),其上是天空与远山、其下整片地面;**中景围墙带 y220–420(高 200)**,素材 1280×164 按 200 高显示拉伸(桩身/门柱比例随缩放);**墙脚压入地面纹理(入土线,2026-11-07)**;近景物件允许压住围墙(围墙不可点,z 序在近景物件之下),**唯一例外=中间门洞必须留空、不被任何物件遮挡**。围墙形态、门扇比例与帐篷尺寸的现行口径归 [art-bible](../art/art-bible.md) §6.2,本 spec 不再复述。
坐标草案与分层验收判据见 [camp-scene-prompts](../art/camp-scene-prompts.md) §2.3/§4(10 张口径现行事实源);2026-10-22 美术方案讨论沿革查 git 提交史。