# pipeline/ —— 3ds Max 侧协作契约(工程侧规格,用户主场) > 架构依据:`docs/architecture/2026-10-19-F-architecture.md` §7.3 | 撰写:程基岩(W1) > **边界纪律**:本目录是**契约**不是实现——`batch_render.ms` / `asset_manifest.csv` 由用户(3ds Max 侧)实现;工程侧只消费资产不碰 Max。Max 侧交片后不回炉(除造型错误);所有调色动作只在 Godot 侧(ADR-1 / 架构 §9.1 C2)。 ## 1. 命名约定(与 `data/sheets/generators.csv` 的 `sprite_row` 对齐) ``` _<朝向>_<帧>.png ``` - `` = `generators.csv` 的 `id` 列(如 `gen_01_youhun`)——**新单位先在 CSV 加行,再出图**(ADR-3:新资产 = 加行); - `<朝向>`:`l`(面左)/ `r`(面右)——军列向右推进时用 `r`,殿王战主角提刀用 `l`; - `<帧>`:`0`(站立)/ `1`(行军起伏)——MVP 每朝向 2 帧(架构 §5.1); - 示例:`gen_01_youhun_r_0.png`、`gen_03_guizu_l_1.png`; - 交付位置:`assets/sprites/units/`(本仓库);图集打包在 W2+ 由 `tools/` 侧脚本合 `units_atlas.png` + UV manifest。 ## 2. 规格(每片必守) | 项 | 规格 | 依据 | |---|---|---| | 世界尺度 | 统一身高尺度:单位 256px 画布 ≈ 统一世界高度(十殿单位同尺度) | 架构 §5.1 | | 轴心 | 统一**脚底轴心**(bottom-center) | 架构 §5.1 | | 尺寸档 | 单位 256×256 / 殿王·套件 512×512 / 商店 hero 1024×1024 | 架构 §5.1 | | 格式 | PNG 32-bit **直通 alpha**(不做预乘、不烘背景) | 架构 §5.1 | | 上色 | Ink'n'Paint **3 阶平色** + 墨黑 `#1A1614` 描边**一带**(粗细一致 ±1px @256) | 架构 §9.1 冻结评审 #6 | | 描边写入 | 描边烘焙进 sprite(主方案);P2 探针复核 alpha 边缘 halo | 架构 §11 P2 | | 面数/灯光 | primitive 摆件 + 三灯即可;不追求写实 | 管线报告 §1.2 | | 剪影 | 可读剪影优先(评审 #3);刑典母题走剪影 + 文字暗示(GDD §0.3 IP 红线) | GDD §0.3 | ## 3. look-dev 三件套(W1-2 生死门,架构 §10.1) 1. **一单位**:游魂 `gen_01_youhun`,2 朝向 × 2 帧,256×256; 2. **一背景**:第 1 殿秦广王 band(远景水墨 shader 层 + 中景剪影套件 3-5 件 + 近景地面)——背景层为**程序化 shader**(架构 §5.3),Max 侧只出剪影套件; 3. **一殿王**:秦广王 512×512。 完整 shader 堆栈在线后走 §10.1 十项冻结评审(签字 + 参数快照 + 截图入 `docs/engineering/`)。 ## 4. `asset_manifest.csv`(用户侧维护,建议列) `id, name, variant, size, has_left, has_right, frames, notes` —— 与 `generators.csv` 同 ID 口径; batch_render.ms 从本清单读批量出图。 ## 5. W1 状态 - [x] 契约文档(本文件); - [ ] `batch_render.ms`(用户,2-4h 一次性投入); - [ ] `asset_manifest.csv`(用户,随首单位建立); - [ ] look-dev 首单位 `gen_01_youhun` 初版(用户)+ 导入 Godot 可见(工程侧验收:sprite_row 路径即)。