14.1 品类与美术预算的关系
同一支团队做休闲和做重度,能出的资产量差一倍。本节把品类写成一笔可复算的整数账:四分品类(休闲/中度/重度/独立)各给一个迭代的团队规模与资产需求,产能口径与卷二 14.1 同源(有效系数 595‰),算出利用率 781/1058/1092/966‰ 与吞吐 134/120/85/95,并给出档位加权几何预算 52500~123000 面。
tag
同一支团队做休闲和做重度,能出的资产量差一倍。本节把品类写成一笔可复算的整数账:四分品类(休闲/中度/重度/独立)各给一个迭代的团队规模与资产需求,产能口径与卷二 14.1 同源(有效系数 595‰),算出利用率 781/1058/1092/966‰ 与吞吐 134/120/85/95,并给出档位加权几何预算 52500~123000 面。
规范一旦铺到多个场景,一致性就不再靠人记:每个场景的 8 个 token 都要与主题逐通道比较,任何一通道偏移都判漂移;同时复算每场景 5 对对比度的最小值,低于下限即判违例。本节用 Python 真跑四个场景的一致性审计,再用 TypeScript 校验器与 Python 落盘的 JSON 对拍,证明两侧的整数类违例集合与摘要逐位一致。
清新治愈的形状语言同样可以整数化:圆角取阶梯且不超短边一半、柔边宽取阶梯、过渡带数必须整除柔边宽(每带等宽整数像素)、模糊半径取阶梯、柔和风格禁粗描边。本节用 Python 真跑六块 UI 资产的规范审计并生成圆角样本 PNG,再用 TypeScript 校验器与 Python 落盘的 JSON 对拍。
清新治愈的「高明度低饱和」不是形容词,而是可校验的整数:背景族明度有下限、中性角色饱和度有上限、强调色有数量上限。本节把三条约束写进 cozy-clean 主题,用 Python 真跑候选色审计并生成色卡 PNG,再用 TypeScript 校验器与 Python 落盘的 JSON 对拍,证明两侧的整数类违例集合与摘要逐位一致。
距离矩阵回答「哪两套最像」,但项目要选的是「最合约束的那套」。本节把风格选择写成一笔可算的账:四道硬门槛(对比度 / 可区分 / 细节上限 / 明度下限)先过滤,过关者再按与项目目标向量的加权 L1 距离排序,预算内取最近者。结果是 cozy-clean,拟合度 969,比第二名近 136。
1.1 给了六个主题的五维向量,本节把它铺成一张 6×6 的风格距离矩阵:用声明权重 [2,2,1,3,3] 的加权 L1 整数均值再 ×10,判据是下限 800。15 对全部高于下限,最近一对 lowpoly/cozy-clean 是 1002;摘要指纹与卷二 16.2 独立复算逐位相同,这就是「同源但可区分」。
风格能不能被量成几个数?本节把第一卷的五维风格向量拆回人话——色彩(明度中位数 / 饱和度均值 / 色相跨度)、形状(描边占比)、细节(细节密度)三个可测维度,并做一次消融对照:只用色彩三维时最近一对会掉到可区分下限以下,补上形状与细节才恢复,这正是「三个维度一个都不能少」的整数证据。
《游戏美术与技术美术》卷二《技术美术与管线工程》附录:全卷管线规则与公式索引、ta<章号>_ 工具链命名约定、六层可运行性口径与逐层复现命令,并给出可跑的 S 层清点脚本与 P 层索引校验内核,两者对同一份工作区算出的清单与摘要逐位一致,并附一键复现与排错顺序。
前两节把片段绑到状态、定了过渡与混合,本节管动画时间轴上的事件标记:帧号、类型、参数。六条资产侧校验把 8 个事件判出 4 类违例各 1 条——帧越界、同帧同类型重复、事件未按帧排序、vfx 引用不存在,两侧 digest 逐位一致,逻辑侧只需照单消费。
9.1 把片段绑到了状态,本节定状态之间怎么过渡、连续参数怎么在几个片段间混合。2D 四角样本的双线性权重全程整数地板除,Python 与 TS 逐位一致;7 条过渡判出悬空 1、超预算 1,非整除查询点的权重之和是 998 而非 1000,规范只承诺确定、不承诺归一。
本节把动画片段名文法定成 <char>_<action>[_<dir>][_v<N>],用片段族把方向与版本变体收成一个可绑定的单位,再校验三类绑定缺陷:悬空绑定、孤儿片段族、方向缺档。11 个片段判出坏名 1、悬空 1、孤儿 1、缺档 1,两侧 digest 逐位一致。
本节不是内容而是边界:第 8 章只讲骨骼数、调色板上限与蒙皮数据字节账,蒙皮矩阵数学、硬件 uniform 上限成因、骨骼贴图显存机制一律外链。把「什么归本章讲」编码成一张可断言的路由表——external 在前、this-book 在后,首个命中胜出;三条外链路径两两不同且全部在 public/ 产物中存在。
蒙皮数据分两块:顶点上的蒙皮属性(4 索引 + 4 权重)与骨骼调色板(骨骼矩阵)。本节把两块都算成整数字节,并让索引位宽决定合法性:4 位最多 16 骨、8 位 256 骨。同一批角色用 idx8_w8 共 203616 字节、调色板只占 75‰,换 16 位索引加浮点权重则涨到 579936 字节。
调色板是「一次绘制能送进顶点着色器的骨骼矩阵集合」。本节把它的上限从 uniform vec4 预算推导成整数公式,再逐个角色核对两条独立约束:档位骨骼预算与调色板上限。6 个角色里 1 个超预算、2 个因超过 64 根上限被迫拆成两个蒙皮段——预算合格不等于装得下。
LOD 切换那一帧的跳变不是玄学。同一段相机轨迹下,单阈值选级在阈值附近抖了 17 次,双阈值迟滞只切 1 次;相邻级的误差跳变里,LOD2 到 LOD3 的 75 千分比超过 60 的上限,被门禁判违例。本节把「切几次」与「跳多大」都变成整数账。
屏幕占比是一屏三角预算的分配依据。本节用整数针孔相机把距离换算成占比千分比,按阈值表逐实例选级,把一屏 12 件家具的三角数合计到 1072,与 1200 的帧预算对账;并算出「全部拉到 LOD0」的最坏视角会爆到 3024,说明预算必须按最坏视角算。
LOD 不是「离远了换低模」一句话,而是一张分级表加一个能算的误差指标。本节把家具轮廓归一化到规范轮廓,用整数 shoelace 逐级算面积损失千分比,给出 4 级 LOD 链的误差账,并由 P 层 TS 内核复算,两侧逐位一致,全程整数可复现。
本节不是内容而是边界:第 6 章只讲参数表与默认值、参数对齐与打包,着色器编译、变体爆炸、渲染管线原理一律外链给 graphics 专题。把「什么归本章讲」编码成一张可断言的路由表——external 规则在前、this-book 在后,首个命中胜出;三条外链路径两两不同、全部在 public/ 产物中存在,越界与漏网都被断言挡住。
参数对齐不是玄学:一个常量寄存器是 16 字节 = float4,参数必须整块落在某个寄存器内、不许跨边界,放不下就顺延、余量作废。本节用《星屑旅店》的 10 个参数把「按逻辑顺序声明」与「按寄存器边界重排」各算一遍,给出可复现的整数账——naive 占 5 个寄存器、packed 占 4 个,S 层与 P 层逐位一致。
材质参数表不是美术的内部草稿,而是美术与程序之间的契约:每个参数都要写明类型、取值范围、单位、默认值与是否暴露给美术。本节用《星屑旅店》三套材质做一份可跑的表校验,并让「默认值被改动」这件事在构建期就被摘要检测到,S 层与 P 层结果逐位一致。