美术圣经去数值化批(用户裁 2026-11-07 两准则: 有落点补指针/无落点建脚本承载): art-bible v3.43→v3.44 全文定值剥离——头注定值单点纪律(数量面唯一事实源=执行件, 例外=WCAG 标准引用名与数据索引)+§8 头注两张表制退役+§4.1 主色板全 hex 清零(语义岗句+ui_kit 指针)+§4.2 五组微光/呈现参数/禁入带+§2 能量档改八拍序(数字退役)+世界底层两子带区间数值迁执行件+§3.2 封印/高墙 px 群+§6.1/6.2 舞台与营地坐标群+§6.5 迷雾定值群+§7.2/7.4/7.6 UI token/字号/控件态+§8.1/8.2/8.4 档位与帧数+换色合并沿革压缩归 git 史+六对欠账迁出; 执行件三件落地——glow_discrimination_sheet 增机检 E 门(世界底层两子带: 背景侧上沿+结构间隔, 地板侧归 tile_palette 归一化目标 0.10 渲染面, --no-sheet 全绿 exit=0)+新套件 animation_frame_spec_test(帧数档 4/6/2 规格表落码+现役单帧形制锚定, 经 UiKit.load_tex 装载链)+新套件 palette_token_pairwise_test(ui_kit Color 常量面两两互查, 存量 36 对在册豁免账含〔欠账〕四对, 账外零新增); run_all manifest 65→86 全量单元位次不变+能力清单帧数行入册+互查套件挂主题行; oracle 锚注记换代六件(seal/type_glow/standee/theme_projection/terrain/ui_contrast_probe——定值面=本测试措辞); art-pipeline-tools 升格执行件门值登记面(14 行定值落点索引)+边界句换代; 下游复写换代七件(术语表/08-Alpha/camp/battle/character-design/两清单); 待办清单去数值化条目推进文档设计已闭合+欠账条目新立。凭据: 圣经 hex 字面量 0+七触碰套件单跑 all green(exit=0)+熵增闸 PASS(--docs 内)+流水线闸 PASS(34 条目)+能力审计红 0(110 行·86 套·链断 0)+doc_term 零命中(销账/随批/收口/若干四词自清扫)+--docs 域闸【验收通过】exit=0

This commit is contained in:
DKChan committed 2026-11-07 04:31:39 +08:00
1 parent 77c1d360f6
commit 85abe37cf5
22 files changed
+342 -130

No files matched your search

+37 -1
View File
@@ -49,6 +49,10 @@ FLOOR_L = 0.30 # 未开格底相对亮度地板(线性域)
CEIL_SAT = 0.55 # 饱和度上限
BANNED_HUE = (300.0, 345.0) # 禁入色相带(Boss 紫赤独占)
NEAR_EPS = 8 # 近色容差(三通道差全 <此值 即近色)
# 世界底层两子带门值(art-bible §2 只述「底层分两子带、间隔不小于门值」,数值归本件)──
BAND_LOW_TOP = 0.06 # 底层下沿带上沿(背景/舞台底件不得越界侵入上沿带)
BAND_HIGH = (0.08, 0.14) # 底层上沿带(已开格底——渲染面由 tile_palette 归一化目标 0.10 落带承载)
BAND_GAP = 0.02 # 两子带最小间隔
B_MIN_CH_DIFF = 8 # 机检 B|格底-微光可辨底线(三通道至少一通道 ≥此值)
C_MODEL_TOL = 2 # 机检 C|样图与合成模型容差(±此值 /255)
BOARD_TYPES = ["dungeon", "underdark", "deep_underdark"]
@@ -237,6 +241,36 @@ def gate_d(tiles):
return all_pass, rows
# ── 机检 E:世界底层两子带(资产侧门;下沿带成员=三关背景件,上沿带成员=已开格底,
# 其渲染面由 tile_palette.gd 归一化目标常量 0.10 承载、对比判据由 ui_contrast_probe 兜——
# 原图瓦片亮度≠渲染面〔装载归一化路径〕,不作本门判据)──
def gate_e():
rows = []
all_pass = True
# 结构自检:两子带不重叠且间隔达门值(常量自身恒真——防改常量时破结构)
check("E-struct", "下沿带上沿+间隔 ≤ 上沿带下沿(两子带不重叠)",
BAND_LOW_TOP + BAND_GAP <= BAND_HIGH[0],
"下沿带上沿 %.2f 间隔 %.2f 上沿带 %s" % (BAND_LOW_TOP, BAND_GAP, BAND_HIGH))
# 三关背景件 → 下沿带(只判上沿不越界;逐件读数落 stdout 供观感对照)
scene_dir = os.path.join(REPO, "game", "assets", "art", "scene")
for bt in BOARD_TYPES:
fn = "scene_stage_bg_%s.png" % bt
path = os.path.join(scene_dir, fn)
if not os.path.exists(path):
print("[阻塞] 素材缺位:%s" % path, file=sys.stderr)
sys.exit(2)
img = Image.open(path).convert("RGB")
pts = [(x, y) for x in range(img.width) for y in range(img.height)]
rgb = mean_rgb(img.load(), pts)
lin = rel_lum(rgb)
ok = lin <= BAND_LOW_TOP
all_pass = all_pass and ok
rows.append(("bg", bt, lin, ok))
check("E-bg-%s" % bt, "背景件 L ≤ 下沿带上沿 %.2f(不侵入上沿带)" % BAND_LOW_TOP,
ok, "RGB=%s L=%.4f%s" % (rgb, lin, "" if ok else " [越界红]"))
return all_pass, rows
# ── 样图绘制 ──
PAGE_W, PAGE_H = 640, 1120
MARGIN, HEAD, BLOCK_TITLE, GAP, LEGEND = 10, 60, 20, 30, 80
@@ -447,8 +481,10 @@ def main():
tiles = load_tiles()
print("== S1 机检 D:三关铺底代表值 ==")
d_ok, d_rows = gate_d(tiles)
print("== S1b 机检 E:世界底层两子带 ==")
e_ok, _e_rows = gate_e()
if args.no_sheet:
return 0 if d_ok else 1
return 0 if (d_ok and e_ok) else 1
os.makedirs(args.art, exist_ok=True)
out = os.path.join(args.art, "glow-discrimination-sheet-2026-11-05.png")
print("== S2 出并列样图 ==")