docs: 立绘定档批交接说明(状态快照+合并姿势+A 段命令+两坑+三项未决;供接手 agent 续跑)

This commit is contained in:
DKChan committed 2026-10-07 17:36:45 +08:00
1 parent 9556539a1f
commit 14c9e59073
1 file changed
+105
@@ -0,0 +1,105 @@
# 交接说明:立绘定档与站桩重排实装批(美术线自立批)
> **用途**:本批由 2026-10-07 会话推进到「立项完成 + P1–P3 全裁 + U0 可发令」状态后交接。接手 agent 请先读本文件,再读 `任务书-立绘定档与站桩重排实装批-2026-10-07.md`(本目录)。
> **交接时点**:2026-10-07 17:35 · 主仓 `master` 已推进到 `3e9360d`(台账到 395)。
---
## 1. 这批在做什么(一句话)
把八敌站桩立绘从「全敌共用 48 档」换成**按生物体型逐键定档(源高 36–94、显示 ×2 整数 = 72–188)**,并把 B 区站桩排版换成**方案二**(演出区占 1/3 屏、立绘落台、血条+状态/名字行落底排全场一线)。它修的是 playnote 里的两条实机批评:**像素粒度过低看不清 / 怪物大小比例不合理**。
## 2. 批次归属口径(用户 2026-10-07 明确,务必遵守)
- **迭代(roadmap 迭代位)只装「代码实现」类批次。**
- **美术素材生成 + 文档修改不进迭代**,走自立批 / 自由批次(不排队、不占 roadmap 迭代序列)。
- **推进顺序 = 先产图、后改代码**(素材尺寸是实测值,容器依实测定)。
- 实现类改动一律走 worktree;主工作区只读(豁免仅 `active.md` 与 `.zcode/`)。
## 3. 已完成(全部在分支 `art-standee-20261006`)
| 提交 | 内容 |
|---|---|
| `0aa85dd` | 讨论批 9 文件主提交(art-bible v3.7/v3.11、character-design v1.8/v1.9、battle.md 区表与组件、`pixelize_candidates.py` 新增 `STANDEE_TIER_H`、06 四条、asset-path-map、art-status-checklist、两份生图单) |
| `5953af3` | 分支内并入 master 80 提交,解 `06-待办清单` 冲突一处 |
| `c688670` | active.md 快照 + 台账(后并入 master 时改登 **386**,因 385 被并行会话占用) |
| → `4359445` | **主区 `merge --no-ff`**(以上三件已进 master;台账 386 在案) |
| `1e42e6e` | **立项任务书 v0.1**(四段 A/B/C/D + T0 十项考证 + 三笔待算账 + P1–P3 全列备选案) |
| `9556539` | **P1–P3 全裁归档** + 光柱区表述解耦 + 06 新登「战斗区背景图替换」 |
## 4. 当前磁盘状态(重要)
- **worktree**:`D:/code/g-plan2-standee-tier`,分支 `art-standee-20261006`,**工作区干净**(无未提交改动)。
- **未并入 master**:`1e42e6e` 与 `9556539` 两个提交**尚未合并**。master 此时已推进 53 个提交到 `3e9360d`。
- **合并姿势(接手者做,别直动主区)**:
1. 在 worktree 内 `git merge master`(**先**在分支里解冲突);
2. 预期冲突点 = `active.md`(并行会话台账已到 395,**本批的 386 会撞号 → 按先例改登下一个空号**,先例见台账 374/383)、可能 `06-待办清单.md`;
3. 解完再在主区 `git merge --no-ff art-standee-20261006`;
4. **不要**动主区在飞的脏件(`.gitignore` / `.zcode/config.json` / `playnote.md` / `project.godot`)。
## 5. 待办(按优先级)
### P0 · A 段产图(U0 已具备,可直接开工)
| 卡 | 动作 |
|---|---|
| A0 | 记录八敌现役 48 档尺寸/色数基线 |
| A1 | 按 `STANDEE_TIER_H` 重产八敌(**命令见 §7**) |
| A2 | 出「九人对照总图」(八敌 + 主角,真实相对体量) |
| A3 | 拷回主区 `game/assets/art/character/` + 同步 `.import` + **旧 48 档归档** |
### P1 · B 段工具闸(建议提到 A3 之前跑通,理由见 §6)
B1 `standee_asset_check` 硬闸升级(逐键档高 / 色数 ≤32 / 非整数倍痕迹 / 描边亮度)· B2 色板检查器 · B3 路径核对器。
### P2 · C 段引擎实装
C0 **盒高账**(见下) → C1 区高 252→270 / 548→530 → C2 底锚落台 → C3 血条落底 → C4 探顶溢出 + 意图徽标 → C5 探针断言族。
### P3 · D 段样张人闸
整屏样张 + 目检清单 + 追认单 + 出口报告(人闸归用户)。
## 6. 关键事实速查(别再重查)
- `ui_assembler.gd:22` B 区 **252**;`:26` C/D **548**(文档已改 270/530,**代码未动**)。
- `standee_body.gd:29` `box = Vector2(150,176)`;`:231-234` 立绘盒净高 = 176−44−36 = **96px**;`:237` scale 2.0 NEAREST;`:238` **盒内居中**(方案二要改底锚);`:27` `STANDEE_FOOT_MARGIN=12`;`:475` 意图徽标 y=86;`:194-197` `_intent_scale` 峰值 **1.6**。
- `battle_stage_view.gd:44` 舞台 `custom_minimum_size=(0,252)`;`:55-63` 顶光柱氛围层(四柱 x 110/900/1055/1210@1280,层序 bg < 光柱 < 世界);`:66-72` `_svp_container` FULL_RECT + `stretch=true` + **无 clip** ⇒ 立绘画到盒顶之上照样渲染。
- `ui_struct_probe.gd:235-256` ⑥standee 断言族:内容矩形 ⊆ **252px** 舞台(内缩 8px)+ 底缘 ≥8px(改 270 须随改)。
- **C0 三笔待算账**:① 188px 立绘 vs 96px 盒净高 vs 270 区高 vs 24/84 明细带;② `BattleLogView` 24/84 与 176 盒如何共存(252−176=76 装不下 84);③ 探顶溢出上限 **N**(受顶部中央轮次指示横向约束,暂按 ≤32px 量级,需真图复算)。
### 已裁决(P1–P3 全裁甲案,2026-10-07)
- **P1 探顶 = 甲**:盒按最高档抬,**允许向上溢出盒顶 N px,不裁切**。判定**与光柱/背景解耦**(光柱是临时氛围层,正式 `stage/stage_bg.png` 到位后退役,判定不变)。乙(真 clip)淘汰:会切掉石君王王冠;丙(降倍率 ×1.5)淘汰:非整数倍。
- **P2 结算期 84px 明细带 = 甲**:改**覆盖层**,不挤压站桩盒。乙(压缩盒)淘汰:站桩跳动违反减动效。
- **P3 棋盘小人 = 甲**:不随本批,保持 32×32。
### ⚠ 两个必知的坑
1. **`.gitignore:50` 忽略整个 `artwork/`** ⇒ **worktree 里没有 `artwork/`**。产图脚本在 worktree 直接跑会**静默产出 0 张**。必须传主区绝对路径。
2. **素材不入 git** ⇒ 无版本历史、不能 git 回滚 ⇒ **替换前必须归档旧档**,且 **B 段机检是唯一防线**(不是可选项)。
## 7. A 段执行命令(已验证可直接跑)
```bash
# 解释器(Pillow 12.3.0 已装)
PY=D:/dev/python/envs/gamedev/Scripts/python.exe
# A1 重产八敌 + 主角(源用主区绝对路径,输出先落 worktree 临时目录)
cd D:/code/g-plan2-standee-tier
$PY tools/pixelize_candidates.py \
D:/code/g-plan2/artwork/remote-gen-2026-09-26 \
--standee48 --standee-out ./_tmp_standee_new
```
源在盘状态(已核实,2026-10-07):八敌 `pixel-1.png` 齐全;`hero-ref/edit/{normal,attack,hit}_1x.png` 齐全。
输出名 = `character_enemy_<键>.png` / `character_hero_portrait.png` / `character_hero_{attack,hit}.png`。
档高表 `STANDEE_TIER_H`:goblin 36 / giant_spider 38 / duergar 46 / hook_horror 58 / bugbear 62 / ogre_chief 74 / drider 90 / **duergar_king 94**;主角 48。
## 8. 三项未决(等用户拍板,接手者先别自行决定)
1. **旧 48 档归档位置**:建议 `archive/art/standee-48-legacy-20261007/`(用户若另有素材管理体系则按其路径)。
2. **B 段是否提前到 A3 之前**(我的建议是提前:素材无 git 保护,机检应在入包前跑通)。
3. **`artwork/` 独立 git 子仓库**:用户提议(不想素材影响文档/程序实现)。已给方案 = 就地 `git init` 成独立仓库(**不用 submodule**,会污染主仓历史),只入定稿/源(124M 里立绘源仅 2.7M;`ui-reuse-2026-09-23/` 49M 草稿先经 P2-1 dry-run 整理再定)。**待办第一步 = 出 dry-run 入库/排除清单,不动任何文件、不建仓库。**
## 9. 关联登记
- 任务书:`design/research/任务书-立绘定档与站桩重排实装批-2026-10-07.md`
- 06 新登五条:站桩帧动画(Alpha 定版闸前)/ 主角描边素材侧复核 / 3349 草稿 dry-run 整理 / 口号型条款机检化 / **战斗区背景图替换(B 区舞台插画 + 临时光柱退役)**
- art-status-checklist 已对账至 ✅4 / ◐8 / ⬜3(共 15 条)
- 台账:active.md **386**(合并时若撞号按先例改登)