chore(禁写变更记录批): 版本历史节/日期批注全面废除——gdd_lint R4 反转禁设+三工具去豁免+48 文档删节+game/README 流水段删+代码注释 900 余行轨迹标签清偿(约束句保留)+规约/skills 五层指令面同批改指 git 沿革
This commit is contained in:
1 parent
b2327eb9ce
commit
6d601d23dc
232 files changed
+2577
-4100
No files matched your search
@@ -1,7 +1,7 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""战斗一屏样张方向稿生成脚本 v3-draft(2026-09-29,art-bible v3.0 中修案 B 首批)。
|
||||
"""战斗一屏样张方向稿生成脚本 v3-draft(art-bible v3.0 中修案 B)。
|
||||
|
||||
v3.0 口径(方向稿=目检先行闸,冻结归机检批):
|
||||
v3.0 口径(方向稿=目检先行闸,冻结归机检):
|
||||
V1 格底明度分档:已开格底压暗至世界底层档(候选 L 0.08–0.14;§8.5 注记——压暗仅方向稿示意,终稿归地板素材选型/重产)
|
||||
V2 数字亮墨直画:亮族三档(冷亮/暖白/金亮,L≥0.75),色牌降级=复杂格底(物件纹样/装饰变体)后备
|
||||
V3 装饰物件级解禁演示:小石块堆(专属装饰形状家族,圆钝三角形,零信息纪律不变)
|
||||
@@ -9,7 +9,7 @@ v3.0 口径(方向稿=目检先行闸,冻结归机检批):
|
||||
A3 断言改造:亮墨×实测已开格底 WCAG ≥4.5:1(色牌后备组维持深墨×牌 ≥4.5:1)
|
||||
基于 v2 脚本定点补丁生成(_v3_patch.py),v2 冻结产物管线不动。
|
||||
|
||||
v1 用户否决四原因(2026-09-28)全部断言化——生成即验,不过闸不出图:
|
||||
四项否决原因全部断言化——生成即验,不过闸不出图:
|
||||
F1 未开格 = 方案甲缘件 8 邻拼装(词表查表,禁整块 center 铺满)
|
||||
F2 旗仅出现于未开格
|
||||
F3 小人脚锚 = 自底边 25% 线(⚠ 纵向比例一律自底边口径)
|
||||
@@ -17,7 +17,7 @@ v1 用户否决四原因(2026-09-28)全部断言化——生成即验,不过闸
|
||||
F5 微光仅带状:接触带微光只画英雄格周界空间侧;类型微光禁整格染色;微光格零附加图形(角嵌退役)
|
||||
F6 墙格顶面/立面双明度带(否决③立体感——南向临地墙格 Δ≥18,体积感机器代理)
|
||||
F7 整板悬崖 DEPTH_PX 与 game 渲染常量同源(board_view.gd 解析——否决③立体感)
|
||||
程序化审计(§9 初级验收授权 + 迭代 2 扩展):
|
||||
程序化审计(§9 初级验收授权):
|
||||
A1 色板对表圣经冻结色板 + 禁入带(HSV 300°-345°)全图扫描
|
||||
A2 拼缝周界闭合(墙↔地边界墙侧 2px 墨线带亮度 <70)
|
||||
A3 明度对比(数字墨×色牌 WCAG ≥4.5:1;图底分离 Δ≥55——否决③,v1 实测 61.9 上调逼守)
|
||||
@@ -31,7 +31,7 @@ v1 用户否决四原因(2026-09-28)全部断言化——生成即验,不过闸
|
||||
素材不入 git——先查本仓库,缺位回退主检出(D:/code/g-plan2)。
|
||||
词表事实源 = design/research/board-tile-vocab-plan-a-2026-09-26.md;画法参数事实源 =
|
||||
design/research/画法参数四源对照表-2026-09-26.md(四源对表先行产物)。
|
||||
输出 = artwork/mockups/sample-batch-v3-final-2026-09-30.png(v3.5 冻结批产物转正——2026-09-30 批 A)
|
||||
输出 = artwork/mockups/sample-batch-v3-final-2026-09-30.png(v3.5 冻结口径的正式产物)
|
||||
+ 机检报告(中间产物,吸收即死不入 git;断言定值=A3b Δ≥30/A4 尺寸基线)。
|
||||
用法:python tools/render_sample_sheet_v3.py
|
||||
"""
|
||||
@@ -77,12 +77,12 @@ INK_L_WARM = (240, 226, 200) # 暖白 4-5 #F0E2C8(关卡屏 WARM 同族)
|
||||
INK_L_GOLD = (248, 227, 168) # 金亮 6-8 #F8E3A8
|
||||
FLOOR_DARK_GAMMA = 1.75 # 已开格底压暗曲线(方向稿示意):gamma 保纹理相对对比
|
||||
FLOOR_DARK_GAIN = 0.92
|
||||
SEAL_BLACK = (0, 0, 0) # 封印黑 #000000(旗朱→封印紫→封印黑 2026-09-28——紫与微光蓝族色相冲突退役)
|
||||
SEAL_BLACK = (0, 0, 0) # 封印黑 #000000(紫与微光蓝族色相冲突,禁回紫)
|
||||
DANGER_RED = (168, 50, 31) # 危险红 #A8321F
|
||||
REWARD_GOLD = (240, 168, 40) # 奖励金 #F0A828
|
||||
HERO_BLUE = (46, 134, 222) # 小人蓝 #2E86DE(候选,样张批冻结——对照表 §5.1)
|
||||
HERO_BLUE = (46, 134, 222) # 小人蓝 #2E86DE(候选,已冻结——对照表 §5.1)
|
||||
RED_MINE = (150, 44, 36) # 引爆雷字朱(游戏 UiKit.RED_MINE)
|
||||
# 候选(样张批冻结项——对照表 §5)
|
||||
# 候选(已冻结项——对照表 §5)
|
||||
CONTACT_GLOW = (214, 236, 255) # 接触带微光:小人蓝族浅两档(近白蓝)
|
||||
GLOW_GROUPS = { # §4.2 类型微光五组候选
|
||||
"attack": (214, 193, 58), "heal": (92, 184, 58), "pierce": (46, 158, 158),
|
||||
@@ -186,7 +186,7 @@ def hero_sprite_transparent(src):
|
||||
|
||||
|
||||
HERO = hero_sprite_transparent(HERO_SRC)
|
||||
# 裁除透明留白(v1 预筛发现:素材底部 7 行全透明——直接缩放则视觉脚浮于锚线上方 ~10px。
|
||||
# 裁除透明留白(素材底部 7 行全透明——直接缩放则视觉脚浮于锚线上方 ~10px。
|
||||
# 裁后按内容 bbox 缩放,视觉脚底 = 脚锚线。游戏内 BoardWorld.ensure_hero 用原素材同病
|
||||
# (视觉脚浮 ~10px)——呈现缺陷登记移交,本样张按设计规则出图)
|
||||
_HB = HERO.getbbox()
|
||||
@@ -266,7 +266,7 @@ def floor_variant(x, y):
|
||||
|
||||
|
||||
def apply_d_projection(board, gmap, cell):
|
||||
"""高墙感 D 投影档(2026-09-27 用户挑档;迭代 1 T2 同款参数——研究件 64px 拼版实测定比):
|
||||
"""高墙感 D 投影档(研究件 64px 拼版实测定比):
|
||||
南临空墙格 = 立面口沿高光 2px Color8(196,172,132) + 双段暗带(0.16/0.25 格边,黑罩 α0.60/0.82);
|
||||
北邻墙地面格 = 三段渐隐投影(顶带 0.22 格边,α0.28 起)。立体断言 F6/A6 的渲染承载。"""
|
||||
overlay = Image.new("RGBA", board.size, (0, 0, 0, 0))
|
||||
@@ -335,9 +335,9 @@ def parse_game_const(path_parts, pattern):
|
||||
|
||||
DEPTH_PX, DEPTH_PX_SRC = parse_game_const(
|
||||
("game", "presentation", "views", "board_view.gd"), r"const DEPTH_PX\s*:?=\s*([0-9.]+)")
|
||||
DENSITY_MIN = 4.70 # 观感密度下限(明度梯度均值)= v1 同口径实测 4.09 × 1.15(否决①总纲代理,迭代 2 白名单校准)
|
||||
DENSITY_MIN = 4.70 # 观感密度下限(明度梯度均值)= v1 同口径实测 4.09 × 1.15(否决①总纲代理,白名单校准)
|
||||
FACADE_MIN = 18.0 # 顶面/立面双明度带下限(否决③体积感机器代理)
|
||||
WALL_FLOOR_MIN = 55 # 图底分离下限(v1 断言 40→上调,v1 实测 61.9)
|
||||
WALL_FLOOR_MIN = 55 # 图底分离下限(v1 实测 61.9,上调逼守)
|
||||
|
||||
|
||||
def _gd_darkened(c, k):
|
||||
@@ -560,20 +560,20 @@ def draw_hero_on_board(board, ox, oy, cell, hx, hy, records, digit=None):
|
||||
records.append(("hero", hx, hy, fx, fy, digit))
|
||||
|
||||
|
||||
FACADE_FRAC = 0.30 # E 格墙面高度(新 v3.5:用户指令 30%)
|
||||
FACADE_FRAC = 0.30 # E 格墙面高度(v3.5 定值 30%)
|
||||
|
||||
def draw_facade(board, x0, y0, cell):
|
||||
"""v3.3 E 格墙面(用户方案:地面格南邻墙 → 南部承接墙面展示)。
|
||||
"""v3.3 E 格墙面(地面格南邻墙 → 南部承接墙面展示)。
|
||||
墙面=墙顶同款岩块材质(center 瓦片纹理直接贴,明度 ×0.85 表达垂直面),禁平涂新颜色:
|
||||
北端=墙脚阴线(与地面交界),南端=檐口亮棱(与墙顶交界,受光棱线)。"""
|
||||
d = ImageDraw.Draw(board)
|
||||
fy0 = y0 + int(cell * (1.0 - FACADE_FRAC))
|
||||
wall_top = WALLS["center"].resize((cell, cell), Image.NEAREST)
|
||||
face = wall_top.crop((0, 0, cell, cell - fy0 + y0))
|
||||
# 新 v3.5 ①:(b) 与 (c) 墙顶同色——顶面材质原亮度直贴,零暗档
|
||||
# v3.5 ①:(b) 与 (c) 墙顶同色——顶面材质原亮度直贴,零暗档
|
||||
board.paste(face, (x0, fy0))
|
||||
d.rectangle([x0, fy0, x0 + cell, fy0 + 1], fill=(52, 42, 32)) # 墙脚阴线(地面/墙面交界)
|
||||
# v3.4:墙面底缘不画任何线——墙面直接接到南侧墙顶(用户裁:白边导致两截)
|
||||
# 墙面底缘不画任何线——墙面直接接到南侧墙顶(白边会导致两截)
|
||||
|
||||
|
||||
def is_facade_cell(gmap, x, y):
|
||||
@@ -642,7 +642,7 @@ def render_main_board():
|
||||
cell = CELL_D
|
||||
records = []
|
||||
|
||||
# 类型微光(未开格,F5b——角嵌退役批 2026-09-28:微光格只留微光,零角嵌/箭头/加号附加形)
|
||||
# 类型微光(未开格,F5b——微光格只留微光,零角嵌/箭头/加号附加形)
|
||||
for (gx, gy, kind) in GLOW_CELLS:
|
||||
draw_type_glow(glow, gx * cell, gy * cell, cell, kind)
|
||||
board.alpha_composite(glow)
|
||||
@@ -769,7 +769,7 @@ def draw_standee(canvas, ox, oy, kind, name, enemy_id, order=1, armor="light",
|
||||
canvas.alpha_composite(sh, (ox, oy + 146))
|
||||
d.rectangle([ox + 18, oy + 158, ox + W - 18, oy + 170], fill=(150, 130, 100), outline=(90, 76, 58))
|
||||
d.rectangle([ox + 18, oy + 158, ox + W - 18, oy + 160], fill=(196, 172, 132))
|
||||
# 敌名行:护甲类型图标+纯名字(2026-09-26 终裁——AC 数值不展示)
|
||||
# 敌名行:护甲类型图标+纯名字(AC 数值不展示)
|
||||
if kind == "enemy":
|
||||
d.text((ox + 16, oy + 172), ARMOR_ICONS[armor], font=F_NAME, fill=ARMOR_COLORS[armor], anchor="lm")
|
||||
d.text((ox + 30, oy + 172), name, font=F_NAME, fill=(240, 226, 200), anchor="lm")
|
||||
@@ -915,7 +915,7 @@ def run_checks(board, placement, records, band, gmap, canvas_img=None):
|
||||
viol.append(((gx, gy), diff))
|
||||
check("F5b", "类型微光禁整格染色(中心 50% 区零染色像素)", not viol,
|
||||
"违例格 %s" % viol if viol else "五格中心区全净")
|
||||
# F5c 微光格零附加图形(角嵌退役批 2026-09-28)——源码自检:微光段禁 draw_inlay 调用
|
||||
# F5c 微光格零附加图形——源码自检:微光段禁 draw_inlay 调用
|
||||
# (像素层无法区分微光弥散与纹理墨线,回归防护在管线层断言;观感归批末目检)
|
||||
src = open(__file__, encoding="utf-8").read()
|
||||
seg = src[src.find("# 类型微光(未开格,F5b"):src.find("# 数字格(已开")]
|
||||
@@ -970,10 +970,10 @@ def run_checks(board, placement, records, band, gmap, canvas_img=None):
|
||||
check("A3a", "v3 亮墨×格底 WCAG≥4.5:1(直画可行性硬指标) + 色牌后备组 ≥4.5:1",
|
||||
all(r[1] >= 4.5 for r in ratios) and all(r[1] >= 4.5 for r in plate_ratios),
|
||||
"亮墨%s 格底L=%.3f;后备%s" % (ratios, floor_l, plate_ratios))
|
||||
# A3b 图底分离:v2 阈值 Δ≥55 系色牌制时代校定(当时地板 L0.036);v3 地板提亮至 L 0.08–0.14 带后
|
||||
# A3b 图底分离:色牌制时代阈值 Δ≥55 系地板 L0.036 校定;v3 地板提亮至 L 0.08–0.14 带后
|
||||
# 与墙顶亮度差数学上必缩(墙顶 ~113 封顶,Δ≥55 要求地板 ≤L0.045,与带冲突)——v3.0 验收 2 已立
|
||||
# 「墙亮/空间暗明度差为合法分类通道」。v3.5 冻结批(2026-09-30 批 A)定值 Δ≥30(方向稿实测 38,
|
||||
# 灰度一眼可分)——候选口径退役,正式阈值落锁。
|
||||
# 「墙亮/空间暗明度差为合法分类通道」。冻结定值 Δ≥30(方向稿实测 38,
|
||||
# 灰度一眼可分)。
|
||||
check("A3b", "图底分离读数(定值 Δ≥30——v3.5 冻结批落定,方向稿实测 38)",
|
||||
(wall_top - floor_px) >= 30,
|
||||
"墙顶 %.0f vs 地面 %.0f,Δ=%.0f(v2 阈值 55 系地板 L0.036 时代校定;v3.5 冻结定值 30)" % (wall_top, floor_px, wall_top - floor_px))
|
||||
@@ -1020,12 +1020,12 @@ def run_checks(board, placement, records, band, gmap, canvas_img=None):
|
||||
gmean = sum(grad) / len(grad)
|
||||
check("A6", "观感密度:明度梯度均值 ≥%.2f(v1 实测 4.09 上调 15%%——高频细节能量)" % DENSITY_MIN,
|
||||
gmean >= DENSITY_MIN, "梯度均值 %.2f(低频双峰由 A3 承载)" % gmean)
|
||||
# A5 画布缘净空(说明行/图例溢出永久断言——v1 预筛两 FATAL 同根因)
|
||||
# A5 画布缘净空(说明行/图例溢出永久断言,两处同根因)
|
||||
edge_hits = edge_content(canvas_img)
|
||||
check("A5", "画布四缘 2px 净空(零溢出)", edge_hits == 0, "缘带内容像素 %d" % edge_hits)
|
||||
# A4 混排相融:小人/立绘/状态图标=在库原件;语义色==UiKit 常量
|
||||
# A4 v3.5 冻结批(2026-09-30 批 A)尺寸基线按现行资产实态固化——立绘 46×48/棋盘小人源 32×32
|
||||
# 硬等断言落锁(资产升档批若换代须显式解冻重校,断言失败=预期闸)。
|
||||
# A4 尺寸基线按现行资产实态固化——立绘 46×48/棋盘小人源 32×32
|
||||
# 硬等断言落锁(资产升档换代须显式解冻重校,断言失败=预期闸)。
|
||||
check("A4", "混排相融(在库原件可载+UiKit 语义色对表+尺寸基线冻结:立绘 46×48/小人源 32×32)",
|
||||
PORTRAIT_SRC.size == (46, 48) and HERO_SRC.size == (32, 32),
|
||||
"小人源 %s(裁透明留白后 %s)/立绘 %s[冻结 46×48]/状态图标原件;INK/封印黑/奖励金 == ui_kit.gd"
|
||||
|
||||
Reference in new issue
Block a user