3.2 色彩 token 化:从色卡到可引用变量
色卡上的 hex 要变成代码里能引用的名字,中间要补一层分层:primitive → semantic → component。本节用《星屑旅店》的三层 token 表做引用完整性 lint、与 visual_spec.json 的同源校验,并推演改一个色卡会影响几个组件。
category
色卡上的 hex 要变成代码里能引用的名字,中间要补一层分层:primitive → semantic → component。本节用《星屑旅店》的三层 token 表做引用完整性 lint、与 visual_spec.json 的同源校验,并推演改一个色卡会影响几个组件。
把「主色、辅色、强调色」从美术口头词翻译成可复算的量:用《星屑旅店》的 8 个 token 算中性明度梯度的单调性与均匀度、5 对对比度的下限,并实测琥珀与天蓝的对比度同为 69 而 OKLab 距离 0.30,说明对比度合格不等于色相有区分度。
参考板不是一堆好看的图,而是一张可校验的表:每条参考都要有来源、授权、取色真源与用途。这一节给参考板定 schema、做整数校验,再用三个色彩维度把每条参考最近邻归到六套主题上,算出覆盖缺口与归属模糊的条目,最后用 PIL 把整板拼成一张图。
上一节把形容词变成四个整数区间,这一节把区间升级成向量:五维、每维归一化到千分比,再用加权 L1 算出六套主题两两之间的风格距离,并用 OKLab 欧氏距离单独量色彩距离。同一份规范要能在六套主题里都成立,靠的就是这张「同源可区分」的距离矩阵。
「治愈」「硬核」是形容词,不是参数。这一节把它们落成四个可测的整数区间——明度中位数、饱和度均值、对比度、色温代理——再用同一套区间判定《星屑旅店》的六个主题包,并把判定逻辑在 Python 与 TypeScript 两侧逐位对齐,给出可复算的风格分类。
卷一交出的不是一本排好版的 PDF,而是一份可点数的清单:哪些是给人读的规范文本,哪些是机器校验的静态结构,哪些是能真跑的产物。本节用一份真跑的 S 层脚本与 P 层 TS 内核校验这份清单本身是否完整——字段齐全、kind 与 status 合法、id 唯一,且交给卷二的目标必须真实存在并已完成,缺一项就 fail。
同一份 visual_spec.json 结构在 6 个主题下实例化六次,跑同一套校验器必须六次全过。本节用一份真跑的 S 层脚本与 P 层 TS 内核逐个校验六份实例的对比度下限,再给出 6×6 风格距离矩阵(整数 ×10),证明六个主题「同源但可区分」。
Art Bible 不该是一本写给人读的口号集,而是一份每章都能对上一份可跑产物的模板。本节把《星屑旅店》前十五章的规范收成 12 个必填章,用一份真跑的 S 层脚本与 P 层 TS 内核做「模板章节 ↔ 规范产物」双向覆盖校验:缺章、缺产物、孤儿产物、文件不存在四类违例都会 fail。
回滚不是「把文件覆盖回去」:一次改版牵动新增/修改/删除三态,还会沿着引用关系把没直接变的资产一起拖下水。本节把两份资产快照做三态 diff,再用反向闭包生成回滚计划,用一份真跑的 S 层脚本和 P 层 TS 内核给出逐位一致的计划与违例,并用漏掉依赖者的负例证明门禁真的会 fail。
PSD、PSB、Aseprite、MOV 这类真身动辄几十兆,塞进主库会让每次克隆都慢到无法忍受。本节给《星屑旅店》定一套「主库只放指针、真身放远端」的协作法,用一份真跑的 S 层脚本和 P 层 TS 内核做指针清单与远端清单的双向对账,并算清仓库体积账。
版本号不是「最后一次保存」的时间戳,而是可解析、可排序、可对账的整数序。本节给《星屑旅店》的资产版本定一套 v<NNN>[_<变体>] 文法,用一份真跑的 S 层脚本和 P 层 TS 内核给出逐位一致的违例集合,并用乱序、跳号、重号、同号并行分支四条负例证明门禁真的会 fail。
评审开完会,问题必须有归属、有期限、有状态,决策必须能追到后续的资产变更。本节把《星屑旅店》的走查记录写成带状态机的 schema,用 S 层脚本算闭环率、逾期率与决策可追溯率,用 P 层 TS 内核做状态机合法性校验,并用两条非法跃迁负例证明跳步会被拦下。
评审最怕「我觉得不太行」——没有数字就没有返工依据。本节把《星屑旅店》的评审做成一张评分卡:每项给整数分与整数权重算加权分,通过或打回由「加权分达阈 且 无单项否决」两条规则决定。S 层算出加权分与判定,P 层复算同一套规则并用负例证明单项否决必须打回、加权刚好达阈必须通过。
评审不能随时拉个会了事,而要排成概念、制作中、接入前三个固定节点,每个节点各拦一类错。本节把《星屑旅店》三个节点的检查项、必需角色与否决权写成一份可校验的排班矩阵,用真跑的 S 层脚本与 P 层 TS 内核给出逐位一致的缺项与缺角色违例,并用两条负例证明门禁真的会 fail。
验收不是打勾,是算账。本节把《星屑旅店》的八批交付做成评分卡(整数分 ×10,加权后过线即通过)与返工归因分类账,用一份真跑的 S 层脚本算一次通过率、返工率与各类归因占比,并用 P 层 TS 内核复算到逐位一致;再故意造两份冲突账,证明评分与结论打架、归因不在允许集里都会被拦下。
技术规格表和交付物清单是两份各自演进的数据,只数个数会漏掉一半问题。本节把《星屑旅店》的四条规格与四份交付按 id 对齐,用一份真跑的 S 层脚本算缺项、多项与字段不一致三个方向,并用 P 层 TS 内核复算到逐位一致——缺项是规格没落地,多项是交了没要的东西,两者都必须被拦下。
外包需求靠口头传达必然返工。本节把《星屑旅店》的一张家具需求变成带字段的 Brief:参考图、尺寸、风格约束、交付格式、验收口径,并用一份真跑的 S 层脚本与 P 层 TS 内核校验必填字段、枚举取值、参考图与调色板 token 的引用完整性,再用一份故意写坏的样本证明四类违例都会被拦下。
反馈要有轻重之分:本节把《星屑旅店》的反馈分成轻/中/重三级,给出每级的时长、位移像素、缩放千分比、震屏像素与颜色 token 引用,用整数判据断言相邻两级的参数差必须 ≥ 下限,并用一张故意不达标的表证明「三级可区分」真的会被门禁拦下,附 S 层脚本与 P 层 TS 内核的逐位一致复算。
动画规范要把「几帧、多少毫秒、混合多久」说死:本节把《星屑旅店》三个角色在统一 30fps 下算成整数帧账,给出帧数、对齐毫秒与残差,用状态完备性 lint 抓出缺失的死亡动画,并说明同帧率下两段动画的时间轴如何靠公共帧(帧数的最大公约数)对齐,附 S 层脚本与 P 层 TS 内核的逐位一致复算。
特效预算不是「看着炫就行」:本节把《星屑旅店》四个特效拆成爆发、持续、消散三阶段,用整数毫秒、千分比屏占比、峰值存活粒子数与叠加层数算一笔可跑的账,并按四项上限逐项判违例,给出超屏占比与超层数必须 fail 的负例,附 S 层脚本与 P 层 TS 内核的逐位一致复算。