feat(ui): 小人立体感批+素材路径共识(2026-09-26 用户二裁/立约):①棋盘小人 1.5× 档(HERO_SPRITE_SCALE 1.0→1.5,明示裁决压 §8.2 一般规则——豁免注记归 art-bible 批)+脚锚落格高 75% 线(HERO_GROUND_FRAC,「脚踩格子 1/4 处·自底边量」——不完全居中+头越上格沿造立体,锚点与缩放解耦);②脚下椭圆影=Godot 组件合成(GradientTexture2D 径向渐变×黑色 modulate 压扁,挂英雄子件 z=-1 随父同步位移/翻转/弹跳,LINEAR 保渐变平滑,贴图零改动)+英雄/影补挂 use_parent_material(结算期随世界去饱和与格面同口径——基批漏挂补齐);③素材路径分工约定 design/art/asset-path-map.md 落盘(candidates=源档禁运行时引用/game-assets-art=唯一落地处/ui-icons=已入库特例/mockups=评审产物;素材流五步+禁 preload+基准朝向/锚点备查);④ui_input_probe case⑦ 期望值随脚锚公式换挡;冒烟 557/0+三探针绿

This commit is contained in:
DKChan committed 2026-09-25 06:19:22 +08:00
1 parent ce9c2c15d7
commit 6cbb3a566f
4 files changed
+85 -20

No files matched your search

+5 -6
View File
@@ -122,15 +122,14 @@ func _ready() -> void:
if not ms.is_revealed(dig_t):
_problems.append("case⑥ 核心揭格未落位(目标=%s)" % dig_t)
# ---- case⑦ 英雄精灵世界落位(棋盘小人贴图批回归闸 2026-09-26):精灵在 SubViewport 世界内,
# 落位 = 格×步距 + 居中脚底锚(禁带壳层 _svp_container.position 居中偏移——上批误用壳层
# cell_origin 实测右偏 ~7 格+偏离格心,实机截图用户报缺陷)。素材缺位树(hero==null,
# 字形「人」回退在役)跳过;断言前等 0.3s 墙钟——headless 帧率无上限,帧数等待 < 位移
# Tween 140ms 时会采到半途位置(首跑实证),必须按墙钟等到位。 ----
# 落位 = 格×步距 + 脚底锚(横=格中线/纵=格高 75% 线——2026-09-26 二裁「脚踩格子 1/4 处」;
# 禁带壳层 _svp_container.position 居中偏移——上批误用壳层 cell_origin 实测右偏 ~7 格+偏离
# 格心,实机截图用户报缺陷)。素材缺位树(hero==null,字形「人」回退在役)跳过;断言前等
# 0.3s 墙钟——headless 帧率无上限,帧数等待 < 位移 Tween 140ms 时会采到半途位置(首跑实证)。 ----
if bv._world.hero != null:
await get_tree().create_timer(0.3).timeout
var hm: float = (bv.cell_size - bv.HERO_FRAME_PX) * 0.5
var expect: Vector2 = Vector2(ms.hero_pos()) * (bv.cell_size + float(bv.SEP)) \
+ Vector2(hm + bv.HERO_FRAME_PX * 0.5, hm + bv.HERO_FRAME_PX)
+ Vector2(bv.cell_size * 0.5, bv.cell_size * bv.HERO_GROUND_FRAC)
if bv._world.hero.position.distance_to(expect) > 0.5:
_problems.append("case⑦ 英雄精灵世界落位偏移 pos=%s expect=%s" % [str(bv._world.hero.position), str(expect)])
if _problems.is_empty():