3.1 导入设置与 .meta 语义
导入是美术管线上的第一道闸门,而闸门的判据几乎全在侧车文件 .meta 里。本节给出一条可判定的判据——删掉后无法从源文件字节重算出来的才是契约字段,其余都是派生冗余——再用一份真跑的 Python 审计脚本与 TS 内核,在 9 条《星屑旅店》导入记录上报出 2 处契约缺失与 5 处派生漂移,两侧问题集合逐位一致。
tag
导入是美术管线上的第一道闸门,而闸门的判据几乎全在侧车文件 .meta 里。本节给出一条可判定的判据——删掉后无法从源文件字节重算出来的才是契约字段,其余都是派生冗余——再用一份真跑的 Python 审计脚本与 TS 内核,在 9 条《星屑旅店》导入记录上报出 2 处契约缺失与 5 处派生漂移,两侧问题集合逐位一致。
本机没有任何 DCC,真打开、真导出、真渲染都不可能复现——但「不可复现」不该是留白。本节把这件事写成方法:用一份导出清单承载真环境的声明值,用 schema 静态校验管结构与跨字段一致性,用数值对齐账把声明值与管线账预测值逐条对上,并把「无 DCC 环境不得声明可命令行复现」编码成一条会失败的门禁。
单位和轴向看着只是导出面板上的两个下拉框,写错了就是落地灯十七米高、角色躺在地上。本节把单位换算、Y-up/Z-up 轴向置换、左手系/右手系镜像拆成三个正交问题,用一份可跑的整数账算出六种 DCC 约定各自的置换矩阵、行列式与镜像标志,并给出厘米→米与坐标置换的对齐结果。
资产从画师手里走到屏幕上要穿过四个阶段:DCC 制作、导出、导入、运行时。本节讲清每个阶段谁负责、产出什么、边界上要交接哪些字段,再用一份可跑的整数账把同一批《星屑旅店》资产在四阶段的顶点数与字节量算出来:顶点因 UV 缝与硬边膨胀多少千分比,运行时字节为什么几乎全由纹理决定。
16.2 证明了一条链能被同一套判据反复跑,但「跑得通」不等于「交得出去」。本节给卷二收尾:把全卷产出列成一张交付物清单,点名哪几批交给卷三《风格与品类美术实战》,并用一段 S 层脚本与一份 P 层 TS 内核校验清单完整性——字段齐全、kind/status 合法、id 唯一、接手目标存在且已 done。
16.1 把管线串成一条链,但那条链只在默认主题上验过。本节做回放:同一份 visual_spec.json 换 6 个主题包,跑同一套四道闸门的管线 6 遍,六次全过;再算 6×6 风格距离矩阵(整数 ×10)证明「同源但可区分」,并复述跨语言纪律:整数逐位一致、色彩派生量容差内一致。
前十五章各写了一段管线,却没人说清谁先谁后、谁的输出喂给谁。本节把它们串成一条有向链,给出一张能跑的装配检查表:每个阶段标注它由本卷哪一节提供可跑脚本与档位,再用一份 S 层脚本与 P 层 TS 内核做四类对账——出处节是否真实、链路是否首尾相接、阶段号是否连续、首尾类型是否匹配。
采纳率和维护成本最容易被写成口号。本节把它们变成可算的整数账:采纳率 = 活跃用户×1000 // 目标用户,节省人天×100 = 活跃用户×次数×分钟×100 // 一人天分钟数,工具有效率 = 节省人天×100×1000 // 维护人天×100,两轴各带下限落在四象限里,给出 promote / keep / observe / retire 四类决策,并用负例证明只看一个轴一定会误砍。
工具链最大的隐性债是分层被悄悄破坏:低层反向依赖高层、同层互相耦合、单消费方的工具被塞进共享层。本节把依赖方向与复用判据写成可断言的整数账,并用负例证明环检测会放行反向依赖——分层判据必须是「单向向下」而不是「无环」,共享收益也按消费方数逐位算,过共享的工具必须下沉回本地。
「受影响项目多」不等于「该中台化」。本节把中台判据写成一笔整数账:年节省人天×100、回本月数×100、是否值得做,除法一律地板除;再用两条负例证明单轴判定会误收只影响一个项目的问题。TS 侧独立复算 Python 落盘的 JSON,整数逐位一致,digest 对拍。
「TA 要跟所有人沟通」是一句无法验收的话。本节把 TA 与美术、程序、策划之间的往返写成一份接口矩阵:每条接口有发起方、接收方、交付物、触发频率、门禁分级与失败模式,并给出一个可断言的 TypeScript 校验器与两条负例,把「接口」从散文变成能跑的判据。
把「TA 要会什么」写成一份带权重的能力矩阵,是本节的全部工作。难点不在列清单,而在怎么算「够不够」:平均分够不等于达标,只要有一项低于职级要求,这一项就整块不计入加权覆盖率。本节给出一份可断言的 TypeScript 能力矩阵内核与两条负例,并与 Python 侧逐位对齐。
技术美术常被当成「会写脚本的美术」或「懂美术的程序」,两种说法都没说清 TA 到底交付什么。本节把 TA 的工作拆成工具、管线、性能三类,落成一份有序归属规则表与一份投入账:为什么「性能分析工具」必须判成性能类,为什么千分比与回本轮数只能用整数地板除,以及一条可跑的 TypeScript 路由器如何与 Python 侧逐位对齐。
《游戏美术与技术美术》卷一《美术制作与视觉规范》附录:全书公式与参数索引、sp<章号>_ 工具链命名约定、六层可运行性口径与逐层复现命令,并给出可跑的 S 层清点脚本与 P 层索引校验内核,两者对同一份工作区算出的清单与摘要逐位一致,并附一键复现与排错顺序。
同一颗按钮在正常、悬停、按下、禁用、选中五态下长什么样,是规范里最容易被漏掉的一层。本节把《星屑旅店》的五态参数写进一份 JSON 配置,用 S 层 Python 算每态前景/背景的对比度 ×10、做状态完备性与反馈时长两条 lint,用 P 层 TS 内核跨语言逐位对照,并断言低于对比度下限的配色必须被判失败。
把一张 48×48 的小图切成 3×3,四角保尺寸、四边单轴拉伸、中心双轴拉伸,就得到任意尺寸都不变形的按钮与面板。本节用整数公式算切片与落位矩形、用 PIL 生成拉伸示意图、用无头浏览器断言四角像素与源角块逐位相同,并给出面积账与取舍;切分参数一改,三层立刻复验。
栅格、间距与安全区是 UI 规范里最先被写死、也最容易被分辨率打脸的一层。本节把《星屑旅店》的基准分辨率、12 列栅格、8px 间距阶与刘海屏安全区写成一份可跑的整数规范,用 S 层 Python 与 P 层 TS 内核算出每个元素落在哪一格,并对四条边做越界断言。
包体预算不能只有一个总数,必须按类别拆成「预算 / 实际 / 余量」三列,才能一眼看出是哪一类超了。本节把《星屑旅店》的 20 个打包条目按纹理/音频/字体/数据/其它五类汇总成一张整包预算表,用一份真跑的 S 层脚本和 P 层 TS 内核给出逐位一致的违例集合,并用类别超支与总包超支两条负例断言证明门禁真的会 fail。
压缩格式不是画质参数,是显存账的乘数。本节把 BC1/BC3/BC7/ASTC 4x4/6x6/ETC2 的块大小与块字节固化成 D 层规格表,再用一份真跑的 S 层脚本把 1024×1024 的底级与整条 mip 链算成整数个字节,给出相对未压缩 RGBA8 的千分比与一份可执行的选型取舍表。
纹理显存不是一个数字,而是一条从底级到 1×1 的 mip 链。本节用一份真跑的 S 层脚本,读共享真源复现 1024×1024 RGBA 全链基线 5592404 字节,再按贴图集逐张算整链字节与千分比,并用 P 层 TS 内核做跨语言逐位对照与漏算 1×1 的负例断言。