写卡(立绘显示档批 v1.1·grilling+godot-master 双审后执行级订正): reports/需求卡片-立绘显示档批-2026-11-01.md 新立(T0–T3 估 0.85d、零待裁点、验收 V13–V18 绑显示档高/纵横倍率/源高钉值/键集自检)+reports/复核-双审-...md 双审报告。阻断两条已补卡:①原稿目录不入 git 且 sync_worktree_assets 不同步 artwork、pixelize 缺件静默空跑 exit 0——T1 补显式主区根路径+产物计数自证=9;②素材不入 git、worktree→主区无同步通道且 standee_asset_check 不在闸清单,合回后敌侧落位无人看守——T3 补「九件落递主区再触发 CI」收口步、V13 逐件钉源高防旧降采样稿蒙混。其余订正:样张 A4 硬锁 46×48 与 96×96 方框列入解冻面、主角源明写切 2× 稿、get(key,96.0) 兜底违反自卡契约 2/6 改 push_error+V18 键集自检、灰矮人 0.76× 与地图头像 0.52× 补已接受项并点名目检、T1/T3 闸件口径时点三处互斥统一为同批、注释随动面补全(含反向引用已注销禁令的旧句)、§14 注销「核测试键登记值」空操作(gdstyle 不扫 tests)、浮点判等一律 is_equal_approx、两表对账双审结论相左故 V17 真断言+读不到走 L2 禁当红禁当绿。能力清单补行「站桩显示档与素材分辨率绑定」(写卡段义务,代表用例 _check_display_tier)。待办条目状态推进「美术设计已闭合+已写卡」。闸况:pipeline_gate PASS(9 卡)、--docs 零新增红。
This commit is contained in:
1 parent
25b2a0bd33
commit
fc30e984c6
4 files changed
+302
-8
No files matched your search
@@ -134,6 +134,7 @@ tests/
|
||||
| 地形瓦片套与格面数字可读 | HUD框架 | `TilePalette.digit_ink_mode()`/`TilePalette.normalize_floor_luma()` | `terrain_tile_sets_test.gd:_test_set_completeness`;`terrain_tile_sets_test.gd:_test_hue_domains`;`terrain_tile_sets_test.gd:_test_digit_ink_modes` |
|
||||
| 站桩敌人呈现与结算演出落点 | 战斗表现 | `BattleStageView.enemy_standee_center()`/`BattleEndOverlay.open_victory()` | `standee_fx_sweep_test.gd:_init`;`pacing_queue_test.gd:_init` |
|
||||
| 站桩呈现定值与素材绑定 | 战斗表现 | `UiKit.load_tex()`/`StandeeBody.name_line_probe()` | `standee_present_values_test.gd:_init` |
|
||||
| 站桩显示档与素材分辨率绑定 | 战斗表现 | `StandeeBody.portrait_probe()`/`StandeeMotion.PORTRAIT_DISPLAY_H` | `standee_present_values_test.gd:_check_display_tier` |
|
||||
| B 区舞台背景三关变体与连续地面层(按 board_type 选图/地面层高度读布局表/四柱光柱退役) | HUD框架 | `BattleStageView.set_board_type()` | `stage_background_test.gd:_test_background_selection`;`stage_background_test.gd:_test_ground_layer_geometry`;`stage_background_test.gd:_test_beams_retired` |
|
||||
| 战斗屏三区几何与棋盘格边长(分辨率两档×四档板型) | HUD框架 | `BoardView.set_cell_area()`(D 区可用面积 → 格边长);读面 `BoardView.cell_size` | `layout_probe.gd:_ready`;`board_gen_reward_test.gd:_smoke_layout_cell_formula` |
|
||||
| 调参测速批量模拟(逐帧步进与统计读数) | 调参测量 | `TuneSimController.run()`(调试浮窗批量模拟入口) | `tune_sim_batch_parity_test.gd:_init`(配对对拍套件,随测速循环批建) |
|
||||
@@ -176,7 +177,7 @@ tests/
|
||||
| 战斗循环 | 地图战斗资源.md | 清图奖励双份与零路径;GP 钱包/escrow/商店收口/共享池;封印与极性路由/不可逆 | 已覆盖 | — |
|
||||
| 战斗循环 | 增益状态.md | 系统间契约词表与受理口径:五配方互异/掷点标签成员性/增益布尔受理;封印与极性路由/不可逆 | 部分覆盖 | 增益叠层/衰减/清除结算链无断言;见待办清单「能力清单覆盖缺口补齐」条 |
|
||||
| 战斗循环 | 战斗结算.md | 伤害公式与掷点乘区;伤害单据编排与回放;轮内流与结算五段全序 | 已覆盖 | — |
|
||||
| 战斗循环 | 战斗表现.md | 站桩敌人呈现与结算演出落点;站桩呈现定值与素材绑定 | 部分覆盖 | 死亡灰化与减动效演出档仅探针与人工目检;见待办清单「能力清单覆盖缺口补齐」条 |
|
||||
| 战斗循环 | 战斗表现.md | 站桩敌人呈现与结算演出落点;站桩呈现定值与素材绑定;站桩显示档与素材分辨率绑定 | 部分覆盖 | 死亡灰化与减动效演出档仅探针与人工目检;见待办清单「能力清单覆盖缺口补齐」条 |
|
||||
| 战斗循环 | 敌人系统.md | 技能池数据面与回放独立;Boss 半血解锁技门控;敌人技能池跨表链接校验 | 已覆盖 | — |
|
||||
| 排雷循环 | 地形变异.md | 变异布置门控;表结构守卫:域校验/行序键/跨字段互锁/配额锚 | 已覆盖 | — |
|
||||
| 排雷循环 | 排雷玩法.md | 装板与开局免费展开(封锁格无资源、计入清图);挖/封印合法性与可辨拒绝(拒绝零副作用);封印不可逆与挖开封印格放行(兑付改判四情况) | 已覆盖 | — |
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
# 双审复核 · 立绘显示档批(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 不在面) | `tools/gdstyle_gate.py:49` | §14 改口径:测试文件不在扫描面,只核 `standee_motion.gd` 在面件 |
|
||||
| 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**(观察项):另立工程批。
|
||||
@@ -0,0 +1,244 @@
|
||||
# 需求卡片 · 立绘显示档批(v1.1)
|
||||
|
||||
> **用途**:迭代实现批的实施合同(卡①单卡批)。v1.1=双审(grilling+godot-master)后执行级订正,设计面零改动(复核记录=`reports/复核-双审-grilling与godot-master-立绘显示档批-2026-11-01.md`)。
|
||||
> **来源**:待办清单「立绘清晰度回退评估——原稿分辨率+三档显示」条目(状态=美术设计已闭合+已写卡)。
|
||||
> **唯一事实源**:`design/art/art-bible.md` §8.2「站桩立绘显示档 = 三档绝对高」条(v3.32)+ `design/art/character-design.md` §5.2/§5.5 指路行。
|
||||
> **改动面**:美术素材+游戏代码。 **估时**:≈0.85 个工作日。
|
||||
|
||||
---
|
||||
|
||||
## 1. 目标与完成定义
|
||||
|
||||
**做什么**:把 9 件站桩立绘(八敌 + 主角三态)从「原稿降采样到 48–94 再 ×2 显示」改成「原稿分辨率入包 + 显示按三档绝对高缩放」。
|
||||
|
||||
| 档 | 绝对显示高 | 归档 |
|
||||
|---|---|---|
|
||||
| 小型 | 96 | 地精 goblin、巨蜘蛛 giant_spider、灰矮人 duergar |
|
||||
| 中型 | 144 | 主角 hero、钩爪恐魔 hook_horror、熊地精 bugbear |
|
||||
| 大型 | 188 | 食人魔酋长 ogre_chief、蛛化卓尔 drider、灰矮人石君王 duergar_king |
|
||||
|
||||
宽度一律随源图比例(高定宽随),缩放过滤 NEAREST。
|
||||
|
||||
**什么状态算完**:
|
||||
|
||||
1. 9 件素材 = 原稿紧裁原样落 `game/assets/art/character/`,盘上无任何降采样痕迹;
|
||||
2. `standee_motion.gd` 硬编码 ×2 退役,显示倍率由逐件档高算出;
|
||||
3. `tools/standee_asset_check.py` 与 `tools/pixelize_candidates.py` 改按显示档与原稿高校验,全绿;
|
||||
4. 真实入口断言钉住逐件显示档高、纵横倍率恒等、两表同值;
|
||||
5. 样张脚本站桩段与探针文案随动;
|
||||
6. 代码域闸全绿 + 改前/改后并排对照图落盘 + 产出物三份齐。
|
||||
|
||||
---
|
||||
|
||||
## 2. 现状事实(代码级,开工复核)
|
||||
|
||||
| # | 事实 | 出处 |
|
||||
|---|---|---|
|
||||
| F1 | 显示倍率硬编码:`w/h = tex.get_width/height() * 2.0`、`scale = Vector2(2.0, 2.0)` | [standee_motion.gd:63](game/presentation/views/standee_motion.gd#L63) |
|
||||
| F2 | 立绘盒几何:`box := Vector2(150, 176)`;立绘盒矩形 `(0,44)-(box.x, box.y-80)` → 立绘区 150×96,高于 96 者按 `(box_h-h)*0.5` 向上溢出 | [standee_body.gd:24](game/presentation/views/standee_body.gd#L24)、[:309](game/presentation/views/standee_body.gd#L309)、[standee_motion.gd:62](game/presentation/views/standee_motion.gd#L62) |
|
||||
| F3 | 盒宽常量与盒高注入:`_STANDEE_W := 150.0`;`hero_standee.box = Vector2(_STANDEE_W, box_h)`(盒高=行高) | [battle_stage_view.gd:10](game/presentation/views/battle_stage_view.gd#L10)、[:197](game/presentation/views/battle_stage_view.gd#L197) |
|
||||
| F4 | 主角立绘装载与三态注册(含「48px 档」注释);敌侧 `_enemy_portrait_tex(enemy_id)` 查表后 `set_portrait_texture` | [battle_stage_view.gd:132-140](game/presentation/views/battle_stage_view.gd#L132)、[:252-267](game/presentation/views/battle_stage_view.gd#L252) |
|
||||
| F5 | 纹理路径常量单点在 UiKit(八敌 + 主角三态) | [ui_kit.gd:233-247](game/presentation/views/ui_kit.gd#L233) |
|
||||
| F6 | 现行入包稿尺寸:主角三态 46×48 / 48×48 / 46×48;八敌 36×36、48×38、34×46、46×58、51×62、62×74、67×90、66×94 | 盘上 `game/assets/art/character/`(素材不入 git) |
|
||||
| F7 | **现行入包稿 = 原稿降采样,逐像素相同**:`dom_block_resize(pixel-1, 74/90/94)` 与 ogre_chief/drider/duergar_king 三件 diff 框为空(2026-11-01 会话实测) | 管线 [pixelize_candidates.py:430-457](tools/pixelize_candidates.py#L430) |
|
||||
| F8 | 原稿在盘:八敌 `pixel-1.png` 高 81–189(地精 89×90/巨蜘蛛 102×81/灰矮人 93×126/钩爪 74×94/熊地精 102×123/酋长 158×189/卓尔 140×189/石君王 133×189);主角手修 2× 三态稿内容 88×92 / 92×92 / 88×92 | `artwork/remote-gen-2026-09-26/`(不入 git) |
|
||||
| F9 | 派生管线末步即降采样:`build_standee48` 紧裁 → 等比缩至 `STANDEE_TIER_H` → `dom_block_resize` | [pixelize_candidates.py:28](tools/pixelize_candidates.py#L28)、[:38-43](tools/pixelize_candidates.py#L38)、[:459-504](tools/pixelize_candidates.py#L459) |
|
||||
| F10 | 闸件按源档高校验:`DISPLAY_SCALE=2`、`SRC_W_MAX=75`、断言①档高、断言②源宽×2≤150 | [standee_asset_check.py:50-53](tools/standee_asset_check.py#L50)、[:75-98](tools/standee_asset_check.py#L75) |
|
||||
| F11 | 样张脚本站桩段硬编码「立绘盒 96px(48 源 ×2)」;另有 A4 尺寸基线硬锁 `PORTRAIT_SRC.size==(46,48)` 与战斗语境 96×96 方框 mockup(脚本自述「换代须显式解冻重校」) | [render_sample_sheet_v3.py:775-791](tools/render_sample_sheet_v3.py#L775)、[:1135-1139](tools/render_sample_sheet_v3.py#L1135)、[:1501](tools/render_sample_sheet_v3.py#L1501) |
|
||||
| F12 | 探针文案「48px 档」(判据只查 `has_tex`,非尺寸断言) | [ui_probe.gd:139-144](game/probe/ui_probe.gd#L139) |
|
||||
| F13 | 另两消费面按固定框装载同一素材:标题屏 138×144/46×96/80×96(`STRETCH_KEEP_ASPECT_CENTERED`+NEAREST);关卡地图头像定高 48、宽随源比 | [ui_assembler.gd:170](game/presentation/ui_assembler.gd#L170)、[level_map_screen.gd:176-190](game/presentation/views/level_map_screen.gd#L176) |
|
||||
| F14 | 能力清单现行行「站桩呈现定值与素材绑定」→ `standee_present_values_test.gd`(V5–V12 在此套件) | [README:136](game/tests/README.md#L136) |
|
||||
| F15 | 舞台高 252(溢出上限的物理边界) | `game/data/tables/battle_layout.tres` |
|
||||
|
||||
---
|
||||
|
||||
## 3. 设计契约(违反即返工;标 🔴 触碰=L3 停机呈报)
|
||||
|
||||
1. 🔴 **禁改形象**:9 件素材 = 原稿紧裁原样,禁重画、禁生成、禁 `dom_block_resize` 降档(art-bible §8.2 v3.32)。
|
||||
2. 🔴 **显示档定值单点** = art-bible §8.2;GDScript 侧 `PORTRAIT_DISPLAY_H` 与 Python 侧 `STANDEE_DISPLAY_H` 逐键同值、两侧各自钉死字面值,跨语言对账由 V17 承担(读不到文件走 L2,见 §8/§9);禁第三处复写,**禁查表兜底字面量**。
|
||||
3. 🔴 **纵横倍率恒等**(高定宽随),禁方框强拉(art-bible §8.2 槽位条)。
|
||||
4. 🔴 **体量顺序由显示档承载**:小 < 中 < 大;禁按强度重排(character-design §5.2)。
|
||||
5. 🔴 **已接受项不得当缺陷回炉**:①五件源高低于档高属放大显示(主角 92/钩爪 94/熊地精 123/地精 90/巨蜘蛛 81,倍率 1.07–1.57);②灰矮人 126→96 是全批唯一 <0.8 档(0.76× 抽行,NEAREST 描边约每 4 行断点),列目检①头号回退候选;③食人魔酋长显示宽 157 超桩盒 150;④关卡地图头像由 ≈1× 变 0.52× 降采样,列目检③。
|
||||
6. 🔴 显示档数值只落显示档表,绘制点与检查器一律读表,禁字面量散落(数值单点纪律)。
|
||||
7. 🔴 素材不入 git(art-bible §8.3);本批入 git 的只有代码/工具/测试/文档件,素材落盘由实现批执行并在实现报告逐件留读数。
|
||||
|
||||
---
|
||||
|
||||
## 4. 范围边界
|
||||
|
||||
**做**:9 件素材按档派生落盘;`standee_motion.gd` 显示倍率改造;`pixelize_candidates.py`/`standee_asset_check.py` 改显示档;样张脚本站桩段随动;探针与装载点注释随动;`standee_present_values_test.gd` 增显示档断言。
|
||||
|
||||
**不做(去向明示)**:
|
||||
|
||||
- 不重画、不生成任何图像(现有形象即终稿)。
|
||||
- 不动棋盘小人(`character_hero_idle/walk.png` 32×32 独立资产)——另属棋盘面。
|
||||
- 不改标题屏与关卡地图头像的框尺寸(两面只随素材分辨率自动变化;若目检判需专件,另批)。
|
||||
- 不动色板与 `#A79CB8`(保留在板、本批不消费;色板额度议题另批讨论)。
|
||||
- 不做站桩帧动画(待办清单「站桩帧动画」条)。
|
||||
- 不做主角态切换重摆(`standee_motion.gd:85-86` `apply_hero_state` 换纹理不重算 position,三态源宽 88/92/88 → 切换有约 3–6px 横跳,系现行 2px 的放大版;重摆=行为改动,禁实现批顺手加,要修另批)。
|
||||
- 不做关卡地图 48px 头像专件(新源在该面为 0.52× 降采样;目检判不可受则另批出专件)。
|
||||
- 不做桩盒宽 150 与 >150 溢出档的布局重排(食人魔超宽 8px 按已接受项走;实机若碰邻位则 L3 停机,布局另批)。
|
||||
|
||||
---
|
||||
|
||||
## 5. 关联文档同步面
|
||||
|
||||
| 文档 | 关联点(本批实现会改变它的哪条陈述) | 同步义务 |
|
||||
|---|---|---|
|
||||
| `design/art/art-bible.md` §8.2 | 显示档条与排版条 >150 举例 | **已落**(前置文档批 v3.32,本区已改)——实现批禁写 `design/`,本批零义务 |
|
||||
| `design/art/art-bible.md` §8.2 槽位条 | 「高度的整数倍档」与绝对档高+非整数倍率字面冲突 | **已落**(双审后随设计批改「高度的绝对档(档高取整数像素值)」) |
|
||||
| `design/art/art-assets-checklist.md` §0 分辨率档位行 | 旧口径「站桩源高 48/敌种逐键源档 36–94/整数倍缩放纪律」 | **已落**(改指 §8.2 显示档条) |
|
||||
| `design/art/character-design.md` §5.5 | 指路行 | 同上,已落 v3.32 配套 |
|
||||
| `design/gdd/08-Alpha版本标准.md` 覆盖行 | 出口从「重产完成」改「9 件按档落位+目检」 | 已落 v1.22;实现完成后「待做→在役」列**反哺点**呈裁 |
|
||||
| `待办清单.md` 本条 | 状态推进(已写卡→已编迭代→完成删条) | 各段按状态机推进,非实现批直改 → 列**反哺点** |
|
||||
| `design/art/art-prompts.md` §5.4 产出状态 | 「待实装批落位」→「已落位」 | 实现完成后 → 列**反哺点** |
|
||||
| `design/art/art-status-checklist.md`/`art-assets-checklist.md` 站桩行 | 「按档派生落位归本条实装批」→ ✅ 已交付 | 实现完成后 → 列**反哺点** |
|
||||
| `game/tests/README.md` 能力清单 | 新能力行「站桩显示档与素材分辨率绑定」 | **写卡段已同批补行**(本卡 §9 能力行与之一致);实现批禁写该文件 |
|
||||
| `design/gdd/术语表.md` | 「显示档」是否立条 | 列**反哺点**呈裁 |
|
||||
| `体验验证清单.md` | 实机目检项(9 件清晰度、同屏体量顺序、标题屏/地图头像消费面) | 实现批禁写 → 列**反哺点**,目检清单先落实现报告 |
|
||||
|
||||
---
|
||||
|
||||
## 6. 卡前文件结构图
|
||||
|
||||
| 文件 | 职责 | 改动性质 | 验收行 |
|
||||
|---|---|---|---|
|
||||
| `game/presentation/views/standee_motion.gd` | 显示档表 `PORTRAIT_DISPLAY_H` + `_place_portrait` 按档算倍率 | **行为改动** | V1 V2 V3 |
|
||||
| `game/presentation/views/standee_body.gd` | 探针 `portrait_probe()` 扩显示读数(几何出口单点) | **行为改动**(观测面扩展,绘制零改) | V3 V4 |
|
||||
| `game/presentation/views/battle_stage_view.gd` | 「48px 档」注释随动 | 非行为 | — |
|
||||
| `game/probe/ui_probe.gd` | 文案随动(判据不变) | 非行为 | — |
|
||||
| `game/tests/unit/presentation/standee_present_values_test.gd` | 增 V13–V16 显示档断言(复用既有套件,禁新增文件) | 新增测试 | V1–V4 |
|
||||
| `tools/pixelize_candidates.py` | `STANDEE_TIER_H` → `STANDEE_DISPLAY_H`;`build_standee48` 改紧裁不降档 | 工具(非行为) | V5 |
|
||||
| `tools/standee_asset_check.py` | 断言①改源高=原稿表+显示宽;断言②宽上限按显示宽;表名随动 | 闸件(非行为) | V5 |
|
||||
| `tools/render_sample_sheet_v3.py` | 站桩 mockup 按显示档取数 | 工具(非行为) | V7 |
|
||||
| `game/assets/art/character/`(9 件,不入 git) | 原稿紧裁落盘 | 资产 | V5 |
|
||||
| `artwork/candidates/立绘显示档批-<日期>/`(不入 git) | 改前/改后并排对照图 | 取证 | V6 |
|
||||
|
||||
---
|
||||
|
||||
## 7. 任务卡 T0..T3
|
||||
|
||||
### 7.1 T0——改前读数与基线(估时 0.1 个工作日)
|
||||
|
||||
- [ ] 跑 `python tools/standee_asset_check.py` 记录现行 9 件读数(尺寸/档高/色数/描边占比),存实现报告改前基线表。
|
||||
- [ ] 跑 `python tools/pixelize_candidates.py --standee48 --standee-out /tmp/precheck` 确认现行管线产物与盘上素材逐件同尺寸(证明 F7 降采样链在位)。
|
||||
- [ ] 跑代码域闸确认改前全绿(确切命令见 §9 末注)。
|
||||
|
||||
**取用**:无。**产出**:改前基线读数表(T3 对照用)。
|
||||
|
||||
### 7.2 T1——素材按档派生落盘+闸件同批改口径(估时 0.25 个工作日)
|
||||
|
||||
- [ ] `tools/pixelize_candidates.py`:`STANDEE_TIER_H` 改名 `STANDEE_DISPLAY_H`,值改显示档 `{goblin:96, giant_spider:96, duergar:96, hook_horror:144, bugbear:144, ogre_chief:188, drider:188, duergar_king:188}`,主角侧 `STANDEE_SLOT_H` 改 `144`;新增原稿高表 `STANDEE_SRC_H = {goblin:90, giant_spider:81, duergar:126, hook_horror:94, bugbear:123, ogre_chief:189, drider:189, duergar_king:189, hero:92}`。
|
||||
- [ ] `build_standee48` 改紧裁不降档:内容紧裁 → 底中锚 → 原样存盘;**删除 `dom_block_resize` 调用路径**(函数与 CLI 旗标改名按档派生);主角源由 `hero-ref/edit/*_1x.png` 改指 `*_2x.png`(canvas 94×112/96×112,紧裁后 88×92/92×92/88×92)。
|
||||
- [ ] **原稿输入面显式定径**:`python tools/pixelize_candidates.py D:/code/g-plan2/artwork/remote-gen-2026-09-26 --standee-out game/assets/art/character`——worktree 的 `artwork/` 不含原稿(`sync_worktree_assets.sh:26-34` 只同步 `game/assets/art` 与 `.import`),缺省根路径在本区必**静默空跑**(缺件逐键 `isfile` 跳过、exit 0)。
|
||||
- [ ] 产物计数自证:九件逐件尺寸 == `STANDEE_SRC_H` 表值,**计数 ≠ 9 即停(L3#2)**,禁回退用旧降采样稿顶替。
|
||||
- [ ] `tools/standee_asset_check.py` 同批改口径(素材与闸件同批,禁中间态报红):import 改 `STANDEE_DISPLAY_H/STANDEE_SRC_H`;断言①「源高 == 原稿表值(禁降档)」;断言②「显示宽 = round(源宽×档高/源高) ≤ 150,食人魔酋长 157 登记例外」;其余四断言(底中锚/色数≤32/alpha 二值/描边占比)不变。跑至九件全 PASS。
|
||||
- [ ] 跑 `D:\code\godot\Godot_v4.7.2-stable_win64_console.exe --headless --editor --quit --path game` 刷 `.godot` 导入缓存,确认九件 `.ctex` 在位。
|
||||
|
||||
**取用**:T0 基线表。**产出**:九件原稿分辨率素材(盘上)+ `STANDEE_DISPLAY_H`/`STANDEE_SRC_H` 两张 Python 表+新口径闸。
|
||||
|
||||
### 7.3 T2——代码显示倍率改造(估时 0.25 个工作日)
|
||||
|
||||
- [ ] `standee_motion.gd` 增常量表 `PORTRAIT_DISPLAY_H`(九键字面值钉死;**禁 `.get(key, 96.0)` 类兜底字面量**——档值第二处散落即违契约 2/6)。
|
||||
- [ ] `_place_portrait` 改:`key` 主角取 `"hero"`、敌取 `_owner.enemy_id()`;查无键 → `push_error` 并按 1× 落位(不崩、不静默兜档),由 V18 键集自检在测试期报警;命中 → `s = disp_h / 源高`、`scale = Vector2(s, s)`、`w/h = 源尺寸 × s`,`position` 式沿用 F2 居中溢出机制。
|
||||
- [ ] `standee_body.gd` `portrait_probe()` 扩两读数:`display_size`(Vector2)、`display_scale`(float)。
|
||||
- [ ] `standee_present_values_test.gd` 增私有函数 `_check_display_tier()` 承载 V13–V18(断言内写死规格值;**浮点判等一律 `is_equal_approx` 或 `absf(...)<0.01`**——0.99/1.57 档回程有 ULP 级残差,裸 `==` 会假红)。
|
||||
- [ ] 注释随动:`standee_motion.gd:38-39,59,65`(旧「盒高 96=48 源整数 2×/§8.2 禁非整数缩放」已反向引用注销条款)、`battle_stage_view.gd:134`、`ui_probe.gd:140,144`、`level_map_screen.gd:176`(「定高 48px=1×」)。
|
||||
- [ ] 跑 `standee_present_values_test.gd` 单件至 exit 0。
|
||||
|
||||
**取用**:T1 素材与 Python 表。**产出**:`PORTRAIT_DISPLAY_H`、`portrait_probe()` 两读数、V13–V18 断言。
|
||||
|
||||
### 7.4 T3——样张随动、对照取证、素材落递与批末收口(估时 0.25 个工作日)
|
||||
|
||||
- [ ] `render_sample_sheet_v3.py`:站桩段按显示档取数;A4 尺寸基线冻结断言(`:1135-1139` 锁 `PORTRAIT_SRC.size==(46,48)`)与战斗语境 96×96 方框(`:1501`)**显式解冻重校到新档**,禁放宽阈值凑绿。
|
||||
- [ ] 出改前/改后并排对照图(同屏站桩区+标题屏看台+关卡地图头像三面)落 `artwork/candidates/立绘显示档批-<日期>/`,路径写进实现报告。
|
||||
- [ ] **素材落递主工作区**:合回落地后、删区前,把九件新稿拷回 `D:/code/g-plan2/game/assets/art/character/` 并逐件复核尺寸 == 表值——素材不入 git、worktree→主区无同步通道,漏这步则主区 CI 只有 V16 一处报警、敌侧无人看守。
|
||||
- [ ] 跑代码域闸全绿(§9 末注),读数与闸况写进实现报告。
|
||||
- [ ] **产出物落位卡**:`reports/iter<N>-实现报告-<日期>.md`(各卡状态+实机目检总清单:①九件清晰度含灰矮人 0.76× 判读、②同屏体量顺序、③标题屏看台与地图头像 0.52×、④酋长超宽不碰邻位、⑤主角态切换横跳读数+遗留读数义务)/`reports/iter<N>-代拍板追认-<日期>.md`/`reports/iter<N>-反哺点-<日期>.md`(§5 每条都有落点)。
|
||||
- [ ] 独立验收审计入口与报告:`reports/iter<N>-验收审计-<日期>.md`(未过不得合并)。
|
||||
|
||||
**取用**:T1 素材+T2 表与探针。**产出**:闸全绿回执+主区素材追平+三份产出物。
|
||||
|
||||
---
|
||||
|
||||
## 8. 验证闸(改动—验收对照表)
|
||||
|
||||
| 需求点 | 改动(文件:行/行为) | 验收测试(名称+落点+尾缀) | 层级 | 真实入口 | 判据绑定面 | 能力行 |
|
||||
|---|---|---|---|---|---|---|
|
||||
| 逐件显示档高 | `standee_motion.gd` 新增 `PORTRAIT_DISPLAY_H` + `_place_portrait` | 「九键显示档实读 = 96/144/188 逐键钉值,且源高 == 原稿表值(旧降采样稿必红)」`standee_present_values_test.gd:_check_display_tier`〔立绘显示档 V13〕 | 单元 | `StandeeBody.new("enemy")` → `set_data(enemy_id)` → `set_portrait_texture(真纹理)` → `portrait_probe()` | `display_size.y` 与 `display_scale × 源高` 双读数 ≈ 档高(`is_equal_approx`);九键逐一 | 新增:站桩显示档与素材分辨率绑定 |
|
||||
| 硬编码 ×2 退役 | `standee_motion.gd:63-65` | 「`_place_portrait` 体内引用 `PORTRAIT_DISPLAY_H` 且零 `Vector2(2.0, 2.0)`」〔V14〕 | 单元(静态判据) | `FileAccess` 读 `res://presentation/views/standee_motion.gd` | 源锚正证(读表)+反证(无字面 2× 倍率) | 新增:站桩显示档与素材分辨率绑定 |
|
||||
| 纵横倍率恒等 | 同上 | 「`scale.x == scale.y` 且 `display_size.x == round(源宽×档高/源高)`」〔V15〕 | 单元 | 同 V13 入口 | 探针 `display_scale`/`display_size` 实读 | 新增:站桩显示档与素材分辨率绑定 |
|
||||
| 主角中档 144(三态) | 素材 = 手修 2× 稿;`register_hero_state` 面 | 「主角三态纹理源高 ≥92 且显示高 = 144」〔V16〕 | 单元 | `BattleStageView` 组合根装载后 `hero_standee.portrait_probe()`,再逐态 `apply_hero_state` 复读 | 探针显示高逐态实读 | 新增:站桩显示档与素材分辨率绑定 |
|
||||
| 素材不降采样 | 9 件 = 原稿紧裁;`standee_asset_check.py` 新口径 | 「源高 == 原稿表值 +显示宽 ≤150(酋长例外)+色数 ≤32+底中锚+alpha 二值+描边占比」 | 闸(工具) | `python tools/standee_asset_check.py` | 逐件源高/显示宽读数 == 表值 | 既有:站桩呈现定值与素材绑定 |
|
||||
| 两表同值不漂移 | Python `STANDEE_DISPLAY_H` ↔ GDScript `PORTRAIT_DISPLAY_H` | 「读 `../tools/pixelize_candidates.py` 源文本逐键对账」〔V17〕 | 单元(静态判据) | `FileAccess` 读仓库内 `tools/` 件(双审对此点结论相左,见复核报告 S9) | 两表逐键相等;**读不到文件 → L2 记录、退回双端字面钉值+独立审计对账,禁当红亦禁当绿** | 新增:站桩显示档与素材分辨率绑定 |
|
||||
| 显示档表键集完整 | 同上 | 「表键集 ⊇ 八敌 ∪ hero 且无多余键」〔V18〕 | 单元 | 读 `PORTRAIT_DISPLAY_H` | 键集对账(防新敌种漏登记被 `push_error` 静默) | 新增:站桩显示档与素材分辨率绑定 |
|
||||
| 样张口径随动 | `render_sample_sheet_v3.py` 站桩段 | 样张脚本自跑断言(脚本内 CHECKS 全绿)+改前改后并排图 | 工具 | `python tools/render_sample_sheet_v3.py` | 脚本内站桩档高读数 | 既有:站桩呈现定值与素材绑定 |
|
||||
| 实机观感 | 9 件显示档 + 两消费面 | 用户目检:①9 件清晰度可接受;②同屏体量顺序小<中<大;③标题屏看台与关卡地图头像无可感劣化;④酋长超宽不碰邻位 | 目检(登记不阻塞) | 实机战斗屏/标题屏/地图屏 | 目检总清单落实现报告 | 新增:站桩显示档与素材分辨率绑定 |
|
||||
|
||||
**测试削弱申报**:本批不删不改任何既有断言;`ui_probe` 只改文案(判据 `has_tex` 不变);样张脚本改取数方式,其机检项断言不减。
|
||||
**判据口径**:全批无变异类/撤销类取证;每行从真实入口进入、绑被测改动特有的可观测读数。
|
||||
**代码域闸命令(里程碑步出口跑一次全套,波内修复只做出红件最窄确认)**:`bash tools/run_all_gates.sh --code`。
|
||||
|
||||
---
|
||||
|
||||
## 9. 异常分级
|
||||
|
||||
- **L1 自救**:`.import`/`.ctex` 缺位 → 重跑 `--editor --quit` 刷缓存;对照图目录不存在 → 建目录。
|
||||
- **L2 记录继续**:样张脚本整屏读数偏移但四项机检仍绿 → 读数写实现报告,不返工;V17 读 `../tools/` 路径不通 → 记录后退回「双端字面钉值+独立审计对账」,禁判红。
|
||||
- **L3 停机写报告等用户**:
|
||||
1. V13–V16 任一断言在真实跑批中做不出(判据绑不上)→ 停卡呈报,禁放宽阈值或换下层直调;
|
||||
2. 原稿缺件(任一 `pixel-1`/手修 2× 稿不在盘)→ 停机呈报,**禁回退用旧降采样稿顶替**;
|
||||
3. 食人魔酋长实机碰邻位/压到顶部轮次指示 → 停机呈报(布局重排另批);
|
||||
4. 机检预算互斥=上游缺陷停卡退回写卡段(新增件契约与闸键冲突时禁自造第三条路)。
|
||||
|
||||
---
|
||||
|
||||
## 10. 代拍板白名单(超清单必呈报)
|
||||
|
||||
1. `portrait_probe()` 新读数键名(`display_size`/`display_scale` 之外的等价命名)。
|
||||
2. `pixelize_candidates.py` 函数与 CLI 旗标改名措辞(`--standee48` → 按档派生类命名)。
|
||||
3. 测试尾缀用词〔立绘显示档 V13〕的括注格式。
|
||||
4. 对照图目录名与文件名(保持 `artwork/candidates/立绘显示档批-<日期>/` 形态)。
|
||||
5. 主角取 key 的实现写法(`_owner.enemy_id()` 空值判 hero,或经 kind 判定),只要最终表键集为九键。
|
||||
|
||||
---
|
||||
|
||||
## 11. 待裁点
|
||||
|
||||
**零待裁点,开工门 = U0。** 三档绝对高、逐件归档、放大与超宽两项已接受,均由用户在写卡前的设计会话中裁定(凭据见 §2 与待办清单本条实况)。
|
||||
|
||||
---
|
||||
|
||||
## 12. 落位与可复用性预检
|
||||
|
||||
| 新增件 | 复用面(盘上是否已有同职责件) | 唯一面 | 分层与交互面 |
|
||||
|---|---|---|---|
|
||||
| `PORTRAIT_DISPLAY_H`(`standee_motion.gd` const) | 无同类——现行倍率是 `_place_portrait` 内字面量(F1),本表是把它从「隐式 ×2」变「显式逐件档高」;不新增文件 | 显示档在 GDScript 侧只落这一张表;绘制点只此一处读表 | 呈现层内部件,不跨层;取 key 走宿主 `StandeeBody.enemy_id()` 既有出口,禁 Core 依赖 |
|
||||
| `portrait_probe()` 两读数 | 复用既有探针出口(`standee_body.gd:283`),不新建探针件 | 显示尺寸读数唯一出口 | 测试侧只读,不反向驱动绘制 |
|
||||
| 测试 V13–V16 | **复用既有套件** `standee_present_values_test.gd`(能力=站桩呈现定值与素材绑定,先例=迭代 46 卡B 在同文件加 V10–V12)——不新增测试文件 | 一套件一能力域 | headless 无渲染面,像素采样以探针几何+源锚承载(沿该套件既有口径) |
|
||||
| `STANDEE_DISPLAY_H`/`STANDEE_SRC_H`(Python) | 改名/扩表,不新增脚本;`dom_block_resize` 保留为管线其他用途件(禁删函数本体) | Python 侧显示档只此一处,`standee_asset_check.py` 经 import 读(沿 F10 现例) | 工具侧,不进游戏运行时 |
|
||||
| 9 件素材 | 复用原稿(F8),零新增绘制 | 一素材一路径,键名不变(F5 常量单点不动) | 素材不入 git(契约 7) |
|
||||
|
||||
---
|
||||
|
||||
## 13. 禁为机检文本保留无效成员
|
||||
|
||||
本批为呈现改造,仍立条款:若 `standee_asset_check.py` 或测试的消息文本要求保留旧键名(`STANDEE_TIER_H`/`STANDEE_SLOT_H`)凑计数或凑正则,一律停卡呈报;闸键与卡片契约互斥时禁自造第三条路,禁为过闸保留无消费方的别名。
|
||||
|
||||
---
|
||||
|
||||
## 14. 实现规范预算
|
||||
|
||||
- **新件三查**:本批**无新增 .gd 文件**(§12 复用面已定),三查不适用;新增常量表 1 个、探针读数 2 个,不触公开方法/var 阈值。
|
||||
- **扫描面事实(双审核正)**:gdstyle 只扫 `game/core|data|presentation`(`tools/gdstyle_gate.py:49`),**tests 不在面**,`tools/gdstyle_baseline.txt` 内亦无该测试键——v1.0 所写「核该测试键登记值」属空操作,注销。
|
||||
- **存量触面一查(S13 键只降不升,适用在面件)**:`standee_motion.gd`(在面)——只增一个常量表并改 `_place_portrait` 换算式,branches 不变、不产新键;`standee_body.gd:portrait_probe()`(在面)——返回字典扩两键,branches 不变。
|
||||
- **测试侧纪律**:V13–V18 提私有函数 `_check_display_tier()` 承载(拆分不改语义,非凑机检);新写测试码按 test-conventions §7 带全类型标注。
|
||||
- **指标例外申报**:无。
|
||||
|
||||
---
|
||||
|
||||
## 15. 估时与切分预案
|
||||
|
||||
≈0.85 个工作日(T0 0.1/T1 0.25/T2 0.25/T3 0.25)。
|
||||
|
||||
切分预案:素材与闸件已在 T1 同批改口径(不留中间态报红窗口);若 T3 三面对照图+主区素材追平压超软盒,切分点=把 T3 的「样张随动」独立成卡②,两卡同迭代合回,不拆迭代;若实机判酋长超宽碰邻位或灰矮人 0.76× 不可受,本卡止于 L3 停机/回设计段裁档,另立新条。
|
||||
@@ -298,16 +298,15 @@
|
||||
|
||||
**状态**:已写卡+已编迭代 46
|
||||
|
||||
#### 立绘清晰度回退评估——是否改用高清图(2026-10-13 登记,来源=playnote)
|
||||
#### 立绘清晰度回退评估——原稿分辨率+三档显示(2026-10-13 登记,来源=playnote)
|
||||
|
||||
**实况**:来源=playnote 用户试玩记录「现在的立绘太丑了,像素化的粒度太低了,导致根本看不清立绘;看是否可以改回用较为高清的图片?还有一个问题是大小的问题……现在地精的图片看起来比熊地精还要大,这并不合理」。2026-10-13 用户裁定:与「第二 / 三关棋盘观感」同属**美术线更新**。**两个子问题现状不同**:子问题一=怪物大小比例不合理——**已兑现**(体量语义改生物体型〔character-design §5.2,弃强度线性映射〕+八敌逐键定档〔art-bible §8.2〕),剩余面=用户是否复核验收;子问题二=像素粒度过低/是否改回高清图——**方向已裁(2026-10-14 用户裁)**:「还是像素风格立绘,但是不需要像现在太过于像素」,定性为**精细手绘像素**(不是插画、不是 HD-2D、不回退高清图;裁决录=[美术审计-cursor会话存档](reports/美术审计-cursor会话存档-2026-10-14.md) §2.2;权威面 art-bible/character-design 口径节反哺另批),粒度问题已改派生管线(八敌源档 36–94 全过可读门槛:24 糊/32 可读/48 清楚)。[08-Alpha版本标准](design/gdd/08-Alpha版本标准.md) 未决项已随裁删除(2026-10-16 状态刷新批)。Alpha 出口裁决:Alpha 范围=主角+三个 Boss 按新口径重产,其余敌种当前可读则保留到 Beta。
|
||||
**实况**:来源=playnote 用户试玩记录「现在的立绘太丑了,像素化的粒度太低了,导致根本看不清立绘;看是否可以改回用较为高清的图片?还有一个问题是大小的问题……现在地精的图片看起来比熊地精还要大,这并不合理」。2026-10-13 用户裁定:与「第二 / 三关棋盘观感」同属**美术线更新**。**两个子问题均已定**:子问题一=怪物大小比例——体量语义改生物体型(character-design §5.2,弃强度线性映射),2026-11-01 进一步归并为三档绝对显示高;子问题二=像素粒度/是否回退高清——2026-10-14 裁不回退高清(裁决录=[美术审计-cursor会话存档](reports/美术审计-cursor会话存档-2026-10-14.md) §2.2),2026-11-01 会话查明根因=入包前 `dom_block_resize` 把原稿 189px 细节砍到 74–94(现行入包稿与原稿降采样**逐像素相同**),当日用户裁终态方案:**保留原稿分辨率、入包禁再降采样、显示按三档绝对高缩放**(小型 96=地精/巨蜘蛛/灰矮人;中型 144=主角/钩爪恐魔/熊地精;大型 188=食人魔酋长/蛛化卓尔/灰矮人石君王;宽随源比例、NEAREST)。同日裁:2026-10-14「须手绘重产」方向作废,现有形象即终稿、禁改形象。已接受项:五件源高低于档高属放大显示(主角 92/钩爪 94/熊地精 123/地精 90/巨蜘蛛 81);食人魔酋长显示宽 157 超桩盒 150。2026-10-28 为重产新增的色板额度议题(含 `#A79CB8` 去留)按用户令保留在板、另批讨论,本批不动色板。
|
||||
- 相关文档:[美术圣经](design/art/art-bible.md) §8.2 站桩立绘显示档条(v3.32,显示档定值单点)+ [角色设计](design/art/character-design.md) §5.2/§5.5 + [生图提示词卡](design/art/art-prompts.md) §5.4 按档派生工单(v2.13)+ [08-Alpha版本标准](design/gdd/08-Alpha版本标准.md) v1.22 覆盖行
|
||||
- 需求卡片:[需求卡片-立绘显示档批-2026-11-01](reports/需求卡片-立绘显示档批-2026-11-01.md)
|
||||
|
||||
**缺口**:还差立绘按「精细手绘像素」新口径重产的设计——整屏方向稿与地面/立绘密度同批锁(与战斗一屏样张批联动)后才可出重产工单。
|
||||
- 相关文档:[角色设计](design/art/character-design.md)(立绘规格与体量语义)+ [美术圣经](design/art/art-bible.md)(像素管线与档位)
|
||||
**改动面**:美术素材+游戏代码
|
||||
|
||||
**改动面**:美术素材
|
||||
|
||||
**状态**:待美术设计
|
||||
**状态**:美术设计已闭合+已写卡
|
||||
|
||||
#### 站桩帧动画——Alpha 定版闸前完成(2026-10-06 登记,来源=审计发现)
|
||||
|
||||
|
||||
Reference in new issue
Block a user