资产台账
本文件由tools/asset_manifest.py自动生成,请勿手改。 改资产后重跑:python tools/asset_manifest.py
总览
| 指标 | 值 |
|---|---|
| 资产总数 | 73 |
| 程序化原型 | 18 |
| AI 生成(混元文生3D) | 55 |
| 三角面合计 | 389,077 |
| 磁盘占用合计 | 86.2 MB |
| 超出面数预算 | 52 个 |
面数预算取自《3D资产生产体系-总体建设方案》6.2 的 clash-style 预设。
建筑(bld_,预算 2000 三角面)
| 文件 | 尺寸 宽×高×深 | 三角面 | 贴图 | 材质路线 | 来源 |
|---|---|---|---|---|---|
bld_caishi_01.glb | 5.60×3.92×5.29 | 7183 ⚠ | 3 (0.7 MB) | PBR 贴图 | AI |
bld_cangjingge_01.glb | 6.09×8.12×6.15 | 8222 ⚠ | 3 (1.3 MB) | PBR 贴图 | AI |
bld_cangku_01.glb | 6.66×4.49×6.45 | 20000 ⚠ | 3 (1.7 MB) | PBR 贴图 | AI |
bld_dadian_01.glb | 8.00×6.46×5.79 | 8012 ⚠ | 3 (1.3 MB) | PBR 贴图 | AI |
bld_danfang_01.glb | 6.03×3.93×5.37 | 20000 ⚠ | 3 (1.4 MB) | PBR 贴图 | AI |
bld_dizijusuo_01.glb | 6.66×2.81×2.70 | 20000 ⚠ | 3 (1.1 MB) | PBR 贴图 | AI |
bld_famu_01.glb | 5.60×3.67×5.06 | 20000 ⚠ | 3 (1.6 MB) | PBR 贴图 | AI |
bld_liangongfang_01.glb | 5.27×5.60×4.79 | 8120 ⚠ | 3 (1.1 MB) | PBR 贴图 | AI |
bld_liaowangta_01.glb | 3.95×6.80×3.92 | 20000 ⚠ | 3 (1.2 MB) | PBR 贴图 | AI |
bld_nongtian_01.glb | 5.60×2.10×7.26 | 20000 ⚠ | 3 (1.3 MB) | PBR 贴图 | AI |
bld_shanmen_01.glb | 9.20×6.46×3.89 | 8002 ⚠ | 3 (1.4 MB) | PBR 贴图 | AI |
bld_tiekeng_01.glb | 5.20×3.88×7.25 | 19999 ⚠ | 3 (1.6 MB) | PBR 贴图 | AI |
bld_weiqiang_01.glb | 6.50×3.42×2.57 | 8000 ⚠ | 3 (1.5 MB) | PBR 贴图 | AI |
bld_wuqipu_01.glb | 5.00×4.28×3.69 | 20000 ⚠ | 3 (2.0 MB) | PBR 贴图 | AI |
bld_yanwuchang_01.glb | 8.00×3.96×8.24 | 20000 ⚠ | 3 (1.7 MB) | PBR 贴图 | AI |
bld_yaofang_01.glb | 6.20×2.91×3.44 | 6026 ⚠ | 3 (0.7 MB) | PBR 贴图 | AI |
bld_yaoyuan_01.glb | 5.75×1.40×5.64 | 7776 ⚠ | 3 (0.8 MB) | PBR 贴图 | AI |
bld_yishiting_01.glb | 7.20×7.20×4.95 | 20000 ⚠ | 3 (1.6 MB) | PBR 贴图 | AI |
bld_zhangfang_01.glb | 6.91×4.60×4.50 | 20000 ⚠ | 3 (1.7 MB) | PBR 贴图 | AI |
角色(chr_,预算 2500 三角面)
| 文件 | 尺寸 宽×高×深 | 三角面 | 贴图 | 材质路线 | 来源 |
|---|---|---|---|---|---|
chr_anqi_01.glb | 1.66×1.85×0.84 | 7998 ⚠ | 3 (0.9 MB) | PBR 贴图 | AI |
chr_bandit_01.glb | 1.02×1.81×0.45 | 7998 ⚠ | 3 (1.1 MB) | PBR 贴图 | AI |
chr_daoke_01.glb | 1.98×1.95×1.21 | 7999 ⚠ | 3 (1.0 MB) | PBR 贴图 | AI |
chr_disciple_01.glb | 0.69×1.88×0.59 | 7998 ⚠ | 3 (1.2 MB) | PBR 贴图 | AI |
chr_elder_01.glb | 1.05×2.04×0.66 | 7998 ⚠ | 3 (1.2 MB) | PBR 贴图 | AI |
chr_gongshou_01.glb | 0.91×2.17×0.60 | 474 | — | 顶点色 | 程序化 |
chr_jianke_01.glb | 0.87×1.96×0.51 | 456 | — | 顶点色 | 程序化 |
chr_jiuke_01.glb | 0.97×1.81×0.64 | 464 | — | 顶点色 | 程序化 |
chr_master_01.glb | 1.09×2.20×0.86 | 8000 ⚠ | 3 (1.1 MB) | PBR 贴图 | AI |
chr_servant_01.glb | 1.42×1.70×0.69 | 8000 ⚠ | 3 (1.3 MB) | PBR 贴图 | AI |
chr_shuoshu_01.glb | 1.06×2.05×0.55 | 432 | — | 顶点色 | 程序化 |
chr_soldier_01.glb | 1.15×2.06×0.62 | 8000 ⚠ | 3 (1.1 MB) | PBR 贴图 | AI |
道具(prp_,预算 400 三角面)
| 文件 | 尺寸 宽×高×深 | 三角面 | 贴图 | 材质路线 | 来源 |
|---|---|---|---|---|---|
prp_canche_01.glb | 1.92×1.40×1.22 | 2867 ⚠ | 3 (0.8 MB) | PBR 贴图 | AI |
prp_duanjian_01.glb | 2.35×1.00×2.07 | 1498 ⚠ | 3 (0.9 MB) | PBR 贴图 | AI |
prp_pai_bian_01.glb | 4.66×2.60×1.21 | 1198 ⚠ | 3 (1.7 MB) | PBR 贴图 | AI |
prp_qifan_01.glb | 0.47×3.00×1.05 | 599 ⚠ | 3 (0.9 MB) | PBR 贴图 | AI |
prp_qijia_01.glb | 1.63×0.60×2.20 | 1988 ⚠ | 3 (0.9 MB) | PBR 贴图 | AI |
prp_shizi_01.glb | 0.85×1.60×1.91 | 2399 ⚠ | 3 (1.4 MB) | PBR 贴图 | AI |
prp_xianglu_01.glb | 0.83×0.89×0.83 | 599 ⚠ | 3 (0.9 MB) | PBR 贴图 | AI |
prp_zhanma_01.glb | 1.83×1.00×3.43 | 3273 ⚠ | 3 (1.2 MB) | PBR 贴图 | AI |
装饰(dec_,预算 600 三角面)
| 文件 | 尺寸 宽×高×深 | 三角面 | 贴图 | 材质路线 | 来源 |
|---|---|---|---|---|---|
dec_baishu_01.glb | 4.12×6.50×3.62 | 600 | 3 (1.2 MB) | PBR 贴图 | AI |
dec_denglong_01.glb | 0.72×1.09×0.68 | 1500 ⚠ | 3 (1.5 MB) | PBR 贴图 | AI |
dec_fengshu_01.glb | 1.21×1.38×0.99 | 124 | — | 顶点色 | 程序化 |
dec_huacao_01.glb | 1.10×0.68×1.10 | 152 | — | 顶点色 | 程序化 |
dec_jiashan_01.glb | 1.08×1.20×1.19 | 900 ⚠ | 3 (1.0 MB) | PBR 贴图 | AI |
dec_jushi_01.glb | 0.58×1.40×0.61 | 900 ⚠ | 3 (1.3 MB) | PBR 贴图 | AI |
dec_kushu_01.glb | 4.99×5.00×3.28 | 898 ⚠ | 3 (1.1 MB) | PBR 贴图 | AI |
dec_liushu_01.glb | 3.90×5.00×3.50 | 599 | 3 (1.2 MB) | PBR 贴图 | AI |
dec_luwei_01.glb | 1.24×1.40×0.89 | 1188 ⚠ | 3 (1.4 MB) | PBR 贴图 | AI |
dec_shideng_01.glb | 0.64×1.40×0.66 | 900 ⚠ | 3 (0.9 MB) | PBR 贴图 | AI |
dec_shitou_01.glb | 1.00×0.51×1.01 | 900 ⚠ | 3 (1.1 MB) | PBR 贴图 | AI |
dec_shuijing_01.glb | 0.97×1.00×0.97 | 900 ⚠ | 3 (1.1 MB) | PBR 贴图 | AI |
dec_songshu_01.glb | 3.44×5.50×2.45 | 899 ⚠ | 3 (1.2 MB) | PBR 贴图 | AI |
dec_suishi_01.glb | 1.00×0.44×0.96 | 899 ⚠ | 3 (1.1 MB) | PBR 贴图 | AI |
dec_taixian_01.glb | 0.60×0.54×0.60 | 900 ⚠ | 3 (1.7 MB) | PBR 贴图 | AI |
dec_taoshu_01.glb | 1.28×1.39×1.02 | 244 | — | 顶点色 | 程序化 |
dec_tengman_01.glb | 1.00×0.97×0.51 | 900 ⚠ | 3 (1.0 MB) | PBR 贴图 | AI |
dec_yabi_01.glb | 8.15×2.40×8.30 | 600 | 3 (1.3 MB) | PBR 贴图 | AI |
dec_yecao_01.glb | 0.60×0.36×0.60 | 1742 ⚠ | 3 (1.1 MB) | PBR 贴图 | AI |
dec_yuanshan_01.glb | 2.85×0.58×1.26 | 900 ⚠ | 3 (1.2 MB) | PBR 贴图 | AI |
dec_zhuzi_01.glb | 2.63×6.00×2.76 | 900 ⚠ | 3 (1.0 MB) | PBR 贴图 | AI |
地块(env_,预算 2000 三角面)
| 文件 | 尺寸 宽×高×深 | 三角面 | 贴图 | 材质路线 | 来源 |
|---|---|---|---|---|---|
env_caodi_01.glb | 0.83×0.18×0.83 | 1200 | 3 (1.1 MB) | PBR 贴图 | AI |
env_hean_01.glb | 1.00×0.34×1.00 | 108 | — | 顶点色 | 程序化 |
env_hedao_01.glb | 4.00×0.24×4.00 | 660 | — | 顶点色 | 程序化 |
env_hekou_01.glb | 1.00×0.20×1.00 | 108 | — | 顶点色 | 程序化 |
env_hewan_01.glb | 1.00×0.20×1.00 | 132 | — | 顶点色 | 程序化 |
env_qiantan_01.glb | 0.83×0.33×0.82 | 2999 ⚠ | 3 (1.5 MB) | PBR 贴图 | AI |
env_shibanlu_01.glb | 3.00×0.16×3.00 | 96 | — | 顶点色 | 程序化 |
env_shibanlu_02.glb | 3.00×0.16×3.00 | 84 | — | 顶点色 | 程序化 |
env_shibanlu_03.glb | 3.00×0.16×3.00 | 96 | — | 顶点色 | 程序化 |
env_shiqiao_01.glb | 4.00×0.66×4.00 | 3995 ⚠ | 3 (1.2 MB) | PBR 贴图 | 程序化 |
env_shuimian_01.glb | 1.00×0.08×1.00 | 46 | — | 顶点色 | 程序化 |
env_taijie_01.glb | 9.00×0.53×3.00 | 384 | — | 顶点色 | 程序化 |
env_tianlong_01.glb | 1.00×0.12×1.00 | 46 | — | 顶点色 | 程序化 |
AI 资产尺度配置
配置源:game/data/ai_slim_plan.json(重建工具 tools/rebuild_ai_assets.py)
| 文件 | 建筑 | 归一化轴 | 目标值 | 实测 | 说明 |
|---|---|---|---|---|---|
bld_caishi_01.glb | 采石场 | 宽度 | 5.60 m | 5.60 m | 🔴🔴 2026-09-21 重做(老大:「当前的采石场太高了,采石场应该显示一个石山包,里面有一个洞口,旁边有采石的工具,而不是一个崖壁」)。 |
【换源】hunyuan47 → hunyuan115(文生3D / LowPoly / Model=3.0)。 【旧模型的真面目】实测是一块竖立的厚石板(Blender 贴图渲染见 _shots/caishi_v2/cmp_3way.png 第 1 行):崖面上雕着楼梯、工具台与石料垛,平面感极强 —— 正是老大说的「崖壁」。
🔴 根因是两条叠加,缺一不可: 1 资产描述写的就是「崖」 —— assets.description 原文「门派采石场。青灰石崖下一处阶梯状采石面…」。L2 描述是 2D 出图唯一的内容来源,出图模型照着画 ⇒ 出图是崖、混元照图重建还是崖。已在 tools/regen_caishi.py 里改成「低矮宽扁的青灰石山包 + 方形洞口 + 采石工具」,换源之前必须先改它,否则重跑还是崖。 2 AI 直出高比宽还大 —— 旧源直出 0.663×0.690×0.726(高/宽 1.04),而 axis:"width" 按宽归一,高就被顶到 5.83m。对照同批:良田 0.375、药园 0.244、伐木场 0.654、铁矿场 0.747 ⇒ 采石场是全场唯一「高 > 宽」的资源建筑。
【新源实测】1.900 × 1.330 × 1.795 ⇒ 高/宽 = 0.700,按宽 5.6 归一后 高 3.92m(旧 5.83 ⇒ 降 33%)。axis/target 刻意保持不动:其余资源建筑都是 5.2~5.6m 宽,改宽会让它在一排里掉队;且洞口约占模型全高 45%⇒ 归一后洞高 ≈1.7m,正好是门人走进去的高度(比例是对的)。
⚠️ 本轮两条路都跑了(tools/regen_caishi.py 支持 --route text|image|both):文生3D 与图生3D 各出一个候选。取文生3D 这个 —— 图生3D 那个(hunyuan116)形状偏尖、仍偏崖,且带进了设计图里一块多余的红布。
📌 新源是 LowPoly 直出 7,188 面(旧源 499,832 面)⇒ 远低于 20000 预算,减面那一段实质是空转;tris 保持 20000 不动,与同批条目一致。2026-09-21 换源 hunyuan115(文生3D 石山包);源本身 242 块(散石/石料垛/工具各自独立构件),与产出同阶 ⇒ 源自带 | | bld_cangjingge_01.glb | 藏经阁 | 高度 | 8.12 m | 8.12 m | 源已是 8000 面旧版。重檐楼阁,竖向地标,全批最瘦高 → 按高 8.12。2026-09-20 复核:早已修复、本次补锁(多块者经 --with-src 判定为源自带构件,非病灶) | | bld_cangku_01.glb | 仓库 | 宽度 | 6.66 m | 6.66 m | 原型 6.656×3.400×4.626(按宽偏离 24.2%)🔴 2026-09-20 碎块批次修复:修复前 1698 块(最大块 8.7%)。重跑后 1 块 ✅。 | | bld_dadian_01.glb | 大殿 | 宽度 | 8.00 m | 8.00 m | 源已是 8000 面旧版。目标 8.0 取自 asset_pipeline.json(原型 9.15 归一后占地过大,收到 8.0)。2026-09-20 复核:早已修复、本次补锁(多块者经 --with-src 判定为源自带构件,非病灶) | | bld_danfang_01.glb | 丹房 | 宽度 | 6.03 m | 6.03 m | 原型 6.032×4.010×4.992。AI 比例好(按宽偏离 2.0%)🔴 2026-09-20 碎块批次修复:修复前 1793 块(最大块 4.6%)。重跑后 3 块,与源同阶(hunyuan27 源本就 3 块)⇒ 源自带。 | | bld_dizijusuo_01.glb | 弟子居所 | 宽度 | 6.66 m | 6.66 m | 原型 6.656×3.300×3.536(按宽偏离 14.8%)。2026-09-20 复核:早已修复、本次补锁(多块者经 --with-src 判定为源自带构件,非病灶) | | bld_famu_01.glb | 伐木场 | 宽度 | 5.60 m | 5.60 m | 原型无(新增生产建筑)。与良田同宽以便西侧田庄区两座对齐成排。槽位 (-8,-4);西侧只有它一座,东侧 12.7m 才到仓库。🔴 2026-09-20 碎块批次修复:修复前 1324 块(最大块 3.5%)。重跑后 1 块 ✅。 | | bld_liangongfang_01.glb | 练功房 | 高度 | 5.60 m | 5.60 m | 源已是 8000 面旧版。原型宽高比 0.94(近乎正方)注定'要么矮小要么高胖';院落要扁平开阔 → 按高 5.6(见 asset_pipeline.json 原病灶记录)。2026-09-20 复核:早已修复、本次补锁(多块者经 --with-src 判定为源自带构件,非病灶) | | bld_liaowangta_01.glb | 瞭望塔 | 宽度 | 3.95 m | 3.95 m | 原型 3.952×8.540×3.952。按宽偏离 20.4% < 按高 25%,按宽🔴 2026-09-20 碎块批次修复:修复前 2377 块(最大块 5.2%)。重跑后 1 块 ✅。 | | bld_nongtian_01.glb | 良田 | 宽度 | 5.60 m | 5.60 m | 原型无(新增生产建筑)。AI 直出 0.756×0.283×0.980 —— 极扁的方形地块(高仅宽的 37%)。田的视觉主角是地块铺展而非高度,故按宽归一 5.6m → 高 2.10 / 深 7.26,读起来是一片田而不是一座屋。槽位 (-8,3) 西侧田庄区,最近邻瞭望塔 6.7m,不撞。🔴 2026-09-20 碎块批次修复:修复前 877 块(最大块 17.1%)。重跑后 1 块 ✅。 | | bld_shanmen_01.glb | 山门(压贴图) | 宽度 | 9.20 m | 9.20 m | 几何已是 8002 面,但贴图 33.5MB 原样带出 ⇒ 文件 33.8MB。减面设 8002 = 空操作,只走第 2 步压贴图把 33.5MB 压到 ~1MB。2026-09-20 复核:早已修复、本次补锁(多块者经 --with-src 判定为源自带构件,非病灶) | | bld_tiekeng_01.glb | 铁矿场 | 宽度 | 5.20 m | 5.20 m | 原型无(新增生产建筑)。AI 直出 0.676×0.505×0.943 —— 纵深最大(深是宽的 1.4 倍,矿车木轨沿纵深铺)。按宽 5.2 归一 → 高 3.88 / 深 7.25。槽位 (8,-4) 东侧工坊区。🔴 2026-09-20 碎块批次修复:修复前 1726 块(最大块 14.9%)。重跑后 3 块,与源同阶(hunyuan46 源本就 3 块)⇒ 源自带。 | | bld_weiqiang_01.glb | 围墙 | 宽度 | 6.50 m | 6.50 m | 🆕 2026-09-26 换源 hunyuan66 → hunyuan140(老大验收候选2:内壁云龙浮雕完整、瓦当清晰、无尖刺 ⇒ 准用)。新源 1.028×0.541×0.407m / 499,988 面(旧源 1.008×0.548×0.403m / 500,002 面,比例几乎一致)⇒ target 6.5 / tris 8000 / 归一化轴全部沿用不变,只是换了一张更完整的几何。
2026-09-19 换源 hunyuan37→hunyuan66(老大新导的墙段)。长度是主角 → 按宽归一。
🔴🔴 2026-09-20 老大反馈「城墙的模型也有破损」—— 根因是 tris 4000 太低。渲染对照(tools/render_glb.py,_shots/qiang_check/):4000 面时内墙的云龙浮雕整片塌陷成碎面、卷云纹与柱头纹样糊掉、瓦当退化成锯齿、右端面有尖刺扎出。这正是老大从门派内部看到的那一面(玩家看的是北墙的南侧内墙)。 ⚠️ 注意不是碎块:diag_fragments_all --with-src 实测 产出 1 块 / 源 1 块 / 主块 100% ✅;也不是归一化空转(k = 6.5/1.0075 = 6.45,正常工作)。纯属面数不够。
【拐点实测】同一源跑 4 档 COLLAPSE 后同机位渲染:8000 / 16000 / 32000 三档肉眼几乎无差,而 4000 明显破损 ⇒ 8000 是拐点,取 8000。PLANAR(--dissolve-angle)路线淘汰:浮雕是曲面、共面度低,溶解只能降到 20~32 万面,性能不可接受。
【性能账】37 段 × 8000 = 29.6 万面/帧(4000 时 14.8 万)。InstancedMesh 共享同一份几何 ⇒ 显存只占一份(约 0.7MB),代价只在绘制。远低于当初担心的「2 万面 × 37 = 74 万面」两倍量级。
⚠️ 直拷 inbox 原始 GLB 到作品库会绕过本流水线(尺度 1.0m/50 万面直接进场景)——换模型必须走这里。 🔴 本条影响面最大 —— scene.WALL_MODEL = bld_weiqiang_01.glb,整圈城墙 37 段都用它(build_wall() 的 InstancedMesh 合批),所以这一处破损就是「一圈城墙全是破的」。改完必须重看城墙斜视截图。
🔴 纠一处台账旧错:下面曾写「原型 6.5×3.9×0.9(薄墙段)」—— 这是别处的旧记录,不是本资产的实测。实测源 hunyuan66 = 1.0075(X) × 0.5478(Y) × 0.4033(Z),长厚比 2.5 : 1(不是 7.2 : 1);等比归一后实际是 6.50 × 3.54 × 2.60,是厚实的城墙段造型,不是薄围墙。(同匾额 pai_bian 那次的坑:note 抄了设计意图而非实测值。) | | bld_wuqipu_01.glb | 武器铺 | 宽度 | 5.00 m | 5.00 m | 原型无(新增功能建筑)。整批最小的 5.0m —— 它是后轴收尾的作坊,体量压过大殿就喧宾夺主了。槽位 (0,-7) 中轴末端,前后各留 15m 空场。🔴 2026-09-20 碎块批次修复(老大报香炉,体检发现 10 座建筑同病):修复前 3140 块(最大块仅 3.7%)—— 源 hunyuan49 有 83767 个完全重合顶点。重跑 --publish 后 1 块 ✅。 | | bld_yanwuchang_01.glb | 演武场 | 宽度 | 8.00 m | 8.00 m | 🆕 2026-09-26 换源 hunyuan29 → hunyuan141(老大验收候选2:看台/兵器架/幡旗齐全、台面平整 ⇒ 准用)。新源 0.809×0.401×0.833m / 496,628 面(旧源是已被归一化过的 8.000×3.837×8.098,属于历史遗留;新源是混元原始尺度,由本流水线正常归一)。
原型 8×2.6×8(超扁广场)。AI 版带旗杆兵器架,高 3.84 比原型高但合理;演武场宽度是视觉主角(容纳比武),按宽🔴 2026-09-20 碎块批次修复:修复前 2541 块(最大块 2.1%)。重跑后 9 块,与源同阶(hunyuan29 源本就 9 块)⇒ 余下的是源自带的独立构件(看台/器械架一类),非病灶。 | | bld_yaofang_01.glb | 药房 | 宽度 | 6.20 m | 6.20 m | 2026-09-20 新增(补「模型制作中」缺口)。混元图生3D LowPoly 直出 1.90×0.89×1.05m;规格目标 6.2×4.5×4.7m。按width归一(备选偏差 68.0%,本方案 62.4%)→ 6.2×2.906×3.435m。 | | bld_yaoyuan_01.glb | 药园 | 高度 | 1.40 m | 1.40 m | 2026-09-20 新增(补「模型制作中」缺口)。混元图生3D LowPoly 直出 1.90×0.46×1.86m;规格目标 5.6×1.4×5.6m。按height归一(备选偏差 4.4%,本方案 3.4%)→ 5.748×1.4×5.641m。 | | bld_yishiting_01.glb | 议事厅 | 宽度 | 7.20 m | 7.20 m | 🔴🔴 2026-09-26 老大:「议事厅的模型还需要重新做」。本资产(src=hunyuan101,Model 3.0 + LowPoly 直出)与当日候选 hunyuan142 都不合格 —— 檐下匾板整片塌陷穿洞、梁柱之间露黑、栏板错位(对照图 _shots/asset_check_20260926/cand_yishiting_sheet.png 第 1 行)。 【当日重出】同一批设计图改走 Normal 3.1(与已验收的围墙 140 / 演武场 141 同模式):hunyuan144(design93_01)、hunyuan146(design93_02),两个都干净无破洞(同图第 2/3 行)。 ✅ 已入库(2026-09-26 上午):老大「混元 3D 积分不足了,就用生成好的模型开始替换吧」⇒ 两个候选里定 hunyuan144(design93_01):朱红廊柱 + 三面开敞 + 米白挂落带云纹 + 灰瓦赭金正脊 + 矮石栏 + 厅内长案/竹简/香炉 —— 与规格逐条对上;hunyuan146(design93_02)是木柱金栏配色、挂落无云纹,留备选不采用。 ⚠️ 结论:LowPoly 3.0 直出对复杂中式屋顶不可靠 —— 议事厅/账房两例同病(旧 src=hunyuan101/104),围墙/演武场走 Normal 3.1 则完好(本次两处换代都印证了这条)。
2026-09-20 新增(补齐 27 座建筑里缺模型的 9 座之一)。走【文生图 design93 → 混元图生3D】新链路,源头就用 Model=3.0 + GenerateType=LowPoly + quadrilateral,所以直出仅 9319 面 / 22MB —— 对比旧批次 40~56MB / 50万面,从源头省掉一次重度减面。AI 原生 W1.864 H1.898 D1.306(近正方);规格目标 W7.2 H5.4 D5.6。按【宽】对齐(高偏离 +35.8%、深偏离 -10.0%),比按高对齐(宽偏离 -26.4%、深偏离 -33.7%)更协调。⚠️ 议事厅是 core 级(仅次于大殿),高 7.33m 略高于大殿 6.45m,属可接受范围。无折纸原型(新建筑)。 | | bld_zhangfang_01.glb | 账房 | 高度 | 4.60 m | 4.60 m | 🔴🔴 2026-09-26 老大:「账房的模型还需要重新做」。本资产(src=hunyuan104,LowPoly 直出)与当日候选 hunyuan139 都不合格 —— 屋面被掀开露黑、墙面大片褶皱穿洞(对照图 _shots/asset_check_20260926/cand_zhangfang_sheet.png 第 1 行)。 【当日重出】改走 Normal 3.1:hunyuan143(design96_01)、hunyuan147(design96_02),两个都干净完整(同图第 2/3 行;147 多两方匾额 + 壁上兵器/竹枝 + 阶前云纹,与设计图 02 一致)。 ✅ 已入库(2026-09-26 上午):两个候选里定 hunyuan143(design96_01):造型端正对称 / 密排方窗 / 青灰石勒脚 / 门前四级踏步 / 案陈算盘账册 —— 与规格逐条对上;hunyuan147(design96_02)多出双匾额与壁上兵器竹枝(规格里没有这些),留备选不采用。
2026-09-20 新增(补「模型制作中」缺口)。混元图生3D LowPoly 直出 1.90×1.22×1.27m;规格目标 6.0×4.6×4.6m。按height归一(备选偏差 28.9%,本方案 24.3%)→ 7.179×4.6×4.816m。 | | chr_anqi_01.glb | 暗器客 | 高度 | 1.85 m | 1.85 m | 🔴 当前 1.00×1.12×0.51 —— 高 1.12m,同 daoke 双缺。身高取 1.85(轻灵路数,略矮于刀客,但仍高于原 1.12m)。member:anqi 在用。 | | chr_bandit_01.glb | 山匪 | 高度 | 1.81 m | 1.81 m | 对齐现库 chr_bandit_01 高 1.81m。2026-09-20 复核:早已修复、本次补锁(多块者经 --with-src 判定为源自带构件,非病灶) | | chr_daoke_01.glb | 刀客 | 高度 | 1.95 m | 1.95 m | 🔴 当前 1.02×1.00×0.62 —— 高只有 1.00m,与 anqi 同批「未瘦身 + 未放大」双缺,在场景里是成员模型(member:daoke)⇒ 比弟子矮半截。本项一次补齐:瘦身 + 放大。身高取 1.95(参照护院 2.06 / 剑客 1.96 / 弟子 1.88,刀客为壮汉略高于弟子)。 | | chr_disciple_01.glb | 弟子 | 高度 | 1.88 m | 1.88 m | 原型 0.878×1.879×0.551。原先库里是全库唯一的折纸版角色(40KB),与长老/掌门画风打架,一并统一为混元版。2026-09-20 复核:早已修复、本次补锁(多块者经 --with-src 判定为源自带构件,非病灶) | | chr_elder_01.glb | 长老 | 高度 | 2.04 m | 2.04 m | 替换 job39 的旧混元版为 09-18 新生成版(hunyuan61)。对齐现库 2.043m。2026-09-20 复核:早已修复、本次补锁(多块者经 --with-src 判定为源自带构件,非病灶) | | chr_master_01.glb | 掌门 | 高度 | 2.20 m | 2.20 m | 原型 1.130×2.204×0.540。AI 比例最接近原型的一个(按高偏离仅 3.7%)。2026-09-20 复核:早已修复、本次补锁(多块者经 --with-src 判定为源自带构件,非病灶) | | chr_servant_01.glb | 杂役 | 高度 | 1.70 m | 1.70 m | 🔴 2026-09-20 老大点名「杂役 1.7m」。原 target 1.04 的注释写的是「尺寸 1.04m 保持(杂役本就不高,比弟子 1.88m 矮合理)」—— 而别人的注释都是「对齐现库/原型」⇒ 那是把现状抄成了决定。实为同批未放大的原始 AI 模型。现改为 1.7m(仍矮于弟子 1.88m,保留「杂役比弟子矮」的设定,但不再是侏儒)。 | | chr_soldier_01.glb | 官兵 | 高度 | 2.06 m | 2.06 m | 对齐现库 chr_soldier_01 高 2.06m,换模型不改观感。2026-09-20 复核:早已修复、本次补锁(多块者经 --with-src 判定为源自带构件,非病灶) | | dec_baishu_01.glb | 古柏 | 高度 | 6.50 m | 6.50 m | spec dims 高 3.9m → 🌳 6.5(老大要求树更高)。古柏是塔形高瘦(高/宽 1.58),加高后宽 ~4.1m,是植被池里最大的一株 —— 刻意的:古柏该是院中地标。权重 2.6。 | | dec_denglong_01.glb | 灯笼 | 高度 | 1.09 m | 1.09 m | 同 songshu:50 万面未瘦身版,只减面不改尺寸。2 实例 × 50 万。🔴 2026-09-19 修:原 tris=900 时减面把模型敲成 953 块(源有 91906 个重合顶点,未焊接直接 QEM)。加 weld-before 0.1mm 后 → 1 块 ✅;实测 900 面会把竹条轮廓一起塌掉(包围盒缩水 30%),1500 面既保 1 块又保住 97% 外形,故定 1500。verify_fragments 上锁防回归。 | | dec_jiashan_01.glb | 假山 | 高度 | 1.20 m | 1.20 m | 按高 1.2(原型 1.10×1.20×1.10)。AI 比例 0.72×0.80×0.79 与原型几乎一致(两轴偏离均 1.3~1.4%,全批最贴合)。 | | dec_jushi_01.glb | 巨石 | 高度 | 1.40 m | 1.40 m | 按高 1.4(原型 1.80×1.40×1.60)。⚠️ AI 源是高瘦柱状(0.46×1.11×0.48,高/宽 2.43)而原型是矮胖巨石,两轴偏离都大(按宽 212% / 按高 68%)⇒ 按高为准,形状差异保留(属 AI 生成偏差,不靠硬缩掩盖)。 | | dec_kushu_01.glb | 枯树 | 高度 | 5.00 m | 5.00 m | 🌳 2026-09-20 调高:原型高 2.1 → 5.0(老大「树的大小不多,特别是高度」)。⚠️ AI 源比例 1.02×1.02×0.68(高/宽仅 1.00,矮墩)⇒ 按高放大后树冠会同步变宽到 ~5m,而植被格距 3m ⇒ 会与邻树重叠。5.0 是克制值(约人高 2.7 倍),先出一版目视验收。🔴 同时是碎块病人:瘦身前实测 9 块(最大块 59%,未焊接直接 QEM)。 | | dec_liushu_01.glb | 垂柳 | 高度 | 5.00 m | 5.00 m | spec dims 高 2.4m → 🌳 5.0(老大要求树更高)。垂柳高/宽仅 1.28(全批最胖),加高后宽 ~3.9m,垂丝会铺得很开 ⇒ 取 5.0 而非更高,避免柳冠把邻格全盖住。权重 2.0。 | | dec_luwei_01.glb | 芦苇 | 高度 | 1.40 m | 1.40 m | 按高 1.4(原型 0.80×1.40×0.80)。AI 比例 0.79×0.91×0.70 偏矮胖 ⇒ 按高归一。 | | dec_shideng_01.glb | 石灯 | 高度 | 1.40 m | 1.40 m | 按高 1.4(原型 0.46×1.40×0.46)。AI 比例 0.50×1.09×0.52 高/宽 2.18,与原型同阶。⚠️ 场景里与香炉同在 (0,3) 一线,早先正交截图里两者 z 相同会重叠(见 §15 正交三坑)。 | | dec_shitou_01.glb | 山石 | 宽度 | 1.00 m | 1.00 m | 按宽 1.0(原型 1.00×0.80×0.90)。两轴偏离接近(按宽 36.9% / 按高 58.4%)⇒ 取按宽。当前台账 used=0(未进场景)。 | | dec_shuijing_01.glb | 水井 | 高度 | 1.00 m | 1.00 m | 按高 1.0(原型 1.00×1.00×1.00,正方)。AI 比例 0.83×0.85×0.83 与原型几乎一致(偏离 2.9~3.0%)。 | | dec_songshu_01.glb | 松树 | 高度 | 5.50 m | 5.50 m | 当前库里是 50 万面未瘦身版(job52 跳过瘦身)。16 实例 × 50 万 = 800 万面 → 900 面。🌳 2026-09-20 调高:2.9 → 5.5(老大「树的大小不多,特别是高度」)。原 target 2.9 取自 model_specs 的规格值,但比人(弟子 1.88)只高 54%,而松树是门派基调(植被池权重 5.0,约 21%)⇒ 加高到人高的 2.9 倍。⚠️ AI 版高/宽 1.60 ⇒ 加高后树冠宽 ~3.4m,格距 3m,会轻微重叠(密林感,可接受)。 | | dec_suishi_01.glb | 碎石堆 | 宽度 | 1.00 m | 1.00 m | 按宽 1.0(原型 1.00×0.38×1.00,扁平堆)。两轴偏离 15.8% / 13.6% 接近,取按宽以保住铺展面积。 | | dec_taixian_01.glb | 苔藓 | 宽度 | 0.60 m | 0.60 m | 按宽 0.6(原型 0.60×0.06×0.50)。⚠️ AI 源 0.86×0.77×0.86 是立体块而原型是完全贴地的薄层(高 0.06),偏离 800%/89% ⇒ 判据失效,取按宽保贴地铺展。🔴 它是 scene.FLAT_PROPS 成员(不进植被池,俯视只看顶面会像破面)。当前 used=0。 | | dec_tengman_01.glb | 藤蔓 | 宽度 | 1.00 m | 1.00 m | 按宽 1.0(原型 1.00×1.40×0.45,薄片)。同 taixian:FLAT_PROPS 成员,不进植被池。当前 used=0。 | | dec_yabi_01.glb | 崖壁 | 高度 | 2.40 m | 2.40 m | 当前 50 万面/48MB 未瘦身版。且尺寸只有 0.24m(比草还矮,等于埋进地里),规格 model_specs.dims=[2.8,2.4,1.0],本项修正为 2.4m 高 | | dec_yecao_01.glb | 野草 | 宽度 | 0.60 m | 0.60 m | 按宽 0.6(原型 0.60×0.45×0.60)。AI 比例 0.97×0.67×0.97 ⚠️ 是立体团而原型更扁。在植被池里已压到最低权重 0.6(扁平贴地物只做近景斑点)。 | | dec_yuanshan_01.glb | 远山 | 宽度 | 2.85 m | 2.85 m | 按宽 2.85(原型 2.85×1.50×1.00)。⚠️ AI 源 1.08×0.22×0.48 是极扁片(原型是立体的山),按宽归一后高仅 0.58 ⇒ 偏离 61%。当前 used=0(未进场景),若启用需复核观感。 | | dec_zhuzi_01.glb | 竹 | 高度 | 6.00 m | 6.00 m | 🌳 2026-09-20 调高:原型高 2.3 → 6.0(老大「树的大小不多,特别是高度」)。✅ AI 源比例 0.46×1.03×0.48(高/宽 2.25)本就是细高竖线,是全批最适合加高的一个 ⇒ 加高后宽仅 ~2.7m,不会与邻树打架。植被池权重 3.2(第二主力)。 | | env_caodi_01.glb | 草地地块 | 对齐 XZ | 0.8278 × 0.8317 m | 0.8280 × 0.8320 m | 🔴 2026-09-19 新增并纠正源(老大指正:用 hunyuan50,且大小要与石板地块一致)。源 = hunyuan50.glb(图生3D,台账 job50 的 meta 里 imported_as=env_caodi_01.glb,2026-09-18 导入)—— 不是 hunyuan41(那是另一个「方块草地」任务,0.79m 高的立体草方块,误用它重建会让每块草变成一根立起的草墩,1:1 密铺后满屏「绿色小人」,已回退)。hunyuan50 是扁平的草皮单元:GLB 原始 0.8405 × 0.1862 × 0.8409。🔴 axis=keep 不归一化——它是场景里唯一「按原始尺寸 1:1 密铺」的资产(scene.GROUND_TILE_*,约 4000 块),平铺步长 = max(模型 XZ 跨度),改尺寸会连格距一起改。🔴 fit_xz=[0.8278, 0.8317] = 石板地块 env_shibanlu_01 的实测 XZ:两者同为「1m 地块单元」,规格必须一致(各轴独立对齐,与铺装 _tile_scale 同一套做法),否则两种地块的单元尺寸差 1.5%,草地和石板路拼在一起会看出规格不齐。⚠️ 换模型后三件连带:1 LANTERN.pool_y 复核(依据是草顶高度);2 tools/build_ground_texture.py 重烘 ground_caodi.jpg;3 tools/analyze_tile_seam.py 看四边齐平。 | | env_qiantan_01.glb | 浅滩 | 保持原尺寸 | — | 0.8280 × 0.8180 m | 地块类(1m 河道单元)。scene.RIVER_MODEL_FORD = 渡口浅滩(水浅露石),铺在山门正前 3 块 12m 宽,比 9m 石板路还宽。同 hedao:axis=keep,尺寸由 _tile_scale 反算。 | | prp_canche_01.glb | 破败的车 | 高度 | 1.40 m | 1.40 m | 2026-09-23 新增(老大要把 2D 战斗升级成 3D 场景,点名「破败的车」当战场残骸)。规格见 tools/asset_prompts.py#PROPS.canche(目标 2.6×1.4×1.6m)。🔴 规格里把「残破姿态」写成了识别特征(断轴 + 缺一侧轮 + 车厢倾斜)—— 缺任何一条出来就是一辆完好的车。tris 给 3000:车板/轮辐/断轴都是细构件。
🔴 allow_noop: true 是有意的:混元 LowPoly 直出的高度是 1.384m,与规格 1.4m 差 1.1%(×1.011)⇒ 触发流水线的「归一化空转」告警。但这里源本身就贴合规格,不需要缩放 —— 告警说的是「尺寸没被调整过」,那是实情而不是问题。⚠️ 别为了消掉告警去乱改 target(石狮那次就是 target 恰好等于源尺寸 ⇒ 看着正常、实际归一化从没生效过,是真空转)。
【命名】prp_* 前缀对齐已有道具(prp_shizi / prp_xianglu),由 web/frontend/src/battle/battle3d.js#DECO 按文件名引用。 | | prp_duanjian_01.glb | 折断的弓箭 | 高度 | 1.00 m | 1.00 m | 2026-09-23 新增(老大点名的战场残骸之一)。规格见 tools/asset_prompts.py#PROPS.duanjian。🔴 识别特征就是「断」:箭断成两截、弓折成两段、弓弦松脱。tris 1500 —— 弓臂是细长条,面数太低会糊成一根棒。 | | prp_pai_bian_01.glb | 匾额 | 高度 | 2.60 m | 2.60 m | 🔴🔴 2026-09-20 老大反馈「匾额太小了」。先纠一个语义错误:本资产根本不是横匾,是一座牌坊式门楼(两根立柱 + 青瓦檐 + 中间横匾 + 底座)—— 截图见 _shots/biane_whole/。
【为什么旧值按宽不成立】旧配置 axis:"width" target:2.3 源自台账里那句「原型 2.30×0.90×0.14」的设计意图(想要扁平横匾),但实测模型是 1.0495(X)×0.5945(Z=竖)×0.275(Y=深)。等比缩放下宽高绑死:按宽 2.3 归一时总高只有 1.235m —— 门人 1.75m / 掌门 1.95m 从门洞下过不去,老大看到的就是「人比牌坊还高」。⇒ 改按高度归一化,目标 2.60m(宽 4.84 / 深 1.24),作为独立装饰建筑与山门(宽 9.2m)、大殿(宽 8m)同框比例才对。
🔴 轴映射陷阱(下次改这个资产必读):glb 节点带绕 X 轴 +90° 旋转(Z-up → Y-up),故世界 Y(高)= 本地 Z、世界 Z(深)= 本地 Y。normalize_glb.world_bbox() 走节点树算的是世界包围盒,所以 axis 判的是世界轴 —— 但直接读 POSITION accessor 看到的是本地值,两者 Y/Z 对调。曾据此误判「模型高只有 0.269m」。
tris 600 → 1200:牌坊是镂空结构(逐层 X 向空隙最大到 1.46m,立柱/栏杆/格子密集),600 面撑不住细构件。
【碎块】源本身 4 块([305410, 111934, 81646, 1014]),瘦身后 4 块(313/184/100/1)。前两块是左右两侧的翼墙/柱(X[+0.269,+0.48] 与 X[-0.575,-0.352]),是结构不是碎片。 | | prp_qifan_01.glb | 旗幡 | 高度 | 3.00 m | 3.00 m | 按高 3.0(原型 0.50×3.00×0.50)。AI 比例 0.18×1.17×0.42 与原型极贴合(按宽偏离 6.3% / 按高 5.9%)。场景里作 dec 旁的旗杆。 | | prp_qijia_01.glb | 丢弃的盔甲 | 高度 | 0.60 m | 0.60 m | 2026-09-23 新增(老大点名的战场残骸之一)。🔴🔴 src 用 hunyuan121(design#109),不是更早的 hunyuan120(design#107) —— first pass 那版把盔甲生成了一个立着的人形甲胄(规格明确禁止:「那看着像守卫,不像残骸」)⇒ 用 --no-reuse 重出 design#109(甲身塌软、头盔歪倒、甲片散落)才对。⚠️ 当时 gen_buildings_hunyuan.py 的复用逻辑复用了旧的 #107(它按「图有没有被用过」判复用,不是按 job id),所以 #121 才是修正版。 | | prp_shizi_01.glb | 石狮 | 高度 | 1.60 m | 1.60 m | 🔴🔴 2026-09-20 老大反馈「石狮太小了,也有破损」—— 根因是 target 写错了:旧值 0.735 恰好等于源的世界高度 0.727m(hunyuan56 的世界包围盒 0.3896×0.8756×0.7354,注意 Z-up 节点旋转后世界 Y = 本地 Z = 0.727)⇒ k = 0.735/0.727 = 1.011,归一化等于空转,尺寸从未被调整过。旧 note 那句「只减面不改尺寸」正是实情。现按高 1.60m(放大 ×2.2,宽 0.86 / 长 1.94)—— 参照真石狮 1.5~2m(故宫太和门铜狮 2.4m 含座),比门人 1.75m 略矮、在山门(宽 9.2m)前才有仪仗气势。tris 600 → 2400:600 面时表面起伏明显(老大说的「破损」),4 倍面数换轮廓余量。
【碎块基线】2026-09-20 早批体检:曾诊断出 471 块(最大块 9.2%)→ 重跑后 4 块(主块 99.3%)。🔴 这 4 块是「源自带」不是减面造的 —— hunyuan56 源本身就是 4 块([491250, 4446, 3750, 613],主块占源 98.2%),瘦身后块数与主块占比基本不变。实测把焊接精度从 0.1mm 放宽到 5mm 块数纹丝不动(要到 10mm 才降到 3 块)⇒ 那 3 片与主网格真实间隙 > 5mm,是源里的离体面片而非浮点误差,不追。逐块量过包围盒:主块 592 面占满全身;另 3 片分别是 2 面(0.002m 的点状碎片)和两个各 1 面的前爪尖(尺寸 0.029×0.101×0.069 —— 是狮爪细节,不是垃圾)。⚠️ 判「碎」不能只看绝对块数,要与源块数对照(本例 4→4 正常,香炉 1→406 才是真碎)。 | | prp_xianglu_01.glb | 香炉 | 高度 | 0.89 m | 0.89 m | 同 songshu:50 万面未瘦身版,只减面不改尺寸。1 实例 × 50 万。🔴 2026-09-20 修(老大报告「香炉是破损的」):诊断 406 块 🔴(最大块仅占 20.0%)—— 源 hunyuan43 有 54399 个完全重合顶点(混元按面拆点),未焊接直接 QEM ⇒ 各份顶点各自坍缩、模型被敲散。重跑 slim_ai_assets.py --only xianglu --publish([0] 步内置 weld-before 0.1mm)→ 1 块 ✅ / 599 面,文件 1.1M→0.95M(碎片版还多存了重合顶点)。🔴 源本身 1 块 ✅ 完好 ⇒ 病灶纯在减面链路,不在源。verify_fragments 上锁防回归。 | | prp_zhanma_01.glb | 战死的马 | 高度 | 1.00 m | 1.00 m | 2026-09-23 新增(老大点名的战场残骸之一)。规格 2.4×1.0×1.2m —— 🔴 按高度归一到 1.0m 是对的:这是一匹侧躺倒地的马(四蹄朝一侧僵直伸出),躺下后高度就一米上下,2.4m 是它的身长。规格里写了「凡是生成成站着的马都算失败」;design#108 实测侧躺 + 鞍具挂着,符合。tris 3500:马身曲面 + 鞍 + 缰绳,四件里最复杂。 |
面数超标清单
bld_caishi_01.glb:7183 三角面,超预算 2000 的 3.6 倍bld_cangjingge_01.glb:8222 三角面,超预算 2000 的 4.1 倍bld_cangku_01.glb:20000 三角面,超预算 2000 的 10.0 倍bld_dadian_01.glb:8012 三角面,超预算 2000 的 4.0 倍bld_danfang_01.glb:20000 三角面,超预算 2000 的 10.0 倍bld_dizijusuo_01.glb:20000 三角面,超预算 2000 的 10.0 倍bld_famu_01.glb:20000 三角面,超预算 2000 的 10.0 倍bld_liangongfang_01.glb:8120 三角面,超预算 2000 的 4.1 倍bld_liaowangta_01.glb:20000 三角面,超预算 2000 的 10.0 倍bld_nongtian_01.glb:20000 三角面,超预算 2000 的 10.0 倍bld_shanmen_01.glb:8002 三角面,超预算 2000 的 4.0 倍bld_tiekeng_01.glb:19999 三角面,超预算 2000 的 10.0 倍bld_weiqiang_01.glb:8000 三角面,超预算 2000 的 4.0 倍bld_wuqipu_01.glb:20000 三角面,超预算 2000 的 10.0 倍bld_yanwuchang_01.glb:20000 三角面,超预算 2000 的 10.0 倍bld_yaofang_01.glb:6026 三角面,超预算 2000 的 3.0 倍bld_yaoyuan_01.glb:7776 三角面,超预算 2000 的 3.9 倍bld_yishiting_01.glb:20000 三角面,超预算 2000 的 10.0 倍bld_zhangfang_01.glb:20000 三角面,超预算 2000 的 10.0 倍chr_anqi_01.glb:7998 三角面,超预算 2500 的 3.2 倍chr_bandit_01.glb:7998 三角面,超预算 2500 的 3.2 倍chr_daoke_01.glb:7999 三角面,超预算 2500 的 3.2 倍chr_disciple_01.glb:7998 三角面,超预算 2500 的 3.2 倍chr_elder_01.glb:7998 三角面,超预算 2500 的 3.2 倍chr_master_01.glb:8000 三角面,超预算 2500 的 3.2 倍chr_servant_01.glb:8000 三角面,超预算 2500 的 3.2 倍chr_soldier_01.glb:8000 三角面,超预算 2500 的 3.2 倍dec_denglong_01.glb:1500 三角面,超预算 600 的 2.5 倍dec_jiashan_01.glb:900 三角面,超预算 600 的 1.5 倍dec_jushi_01.glb:900 三角面,超预算 600 的 1.5 倍dec_kushu_01.glb:898 三角面,超预算 600 的 1.5 倍dec_luwei_01.glb:1188 三角面,超预算 600 的 2.0 倍dec_shideng_01.glb:900 三角面,超预算 600 的 1.5 倍dec_shitou_01.glb:900 三角面,超预算 600 的 1.5 倍dec_shuijing_01.glb:900 三角面,超预算 600 的 1.5 倍dec_songshu_01.glb:899 三角面,超预算 600 的 1.5 倍dec_suishi_01.glb:899 三角面,超预算 600 的 1.5 倍dec_taixian_01.glb:900 三角面,超预算 600 的 1.5 倍dec_tengman_01.glb:900 三角面,超预算 600 的 1.5 倍dec_yecao_01.glb:1742 三角面,超预算 600 的 2.9 倍dec_yuanshan_01.glb:900 三角面,超预算 600 的 1.5 倍dec_zhuzi_01.glb:900 三角面,超预算 600 的 1.5 倍env_qiantan_01.glb:2999 三角面,超预算 2000 的 1.5 倍env_shiqiao_01.glb:3995 三角面,超预算 2000 的 2.0 倍prp_canche_01.glb:2867 三角面,超预算 400 的 7.2 倍prp_duanjian_01.glb:1498 三角面,超预算 400 的 3.7 倍prp_pai_bian_01.glb:1198 三角面,超预算 400 的 3.0 倍prp_qifan_01.glb:599 三角面,超预算 400 的 1.5 倍prp_qijia_01.glb:1988 三角面,超预算 400 的 5.0 倍prp_shizi_01.glb:2399 三角面,超预算 400 的 6.0 倍prp_xianglu_01.glb:599 三角面,超预算 400 的 1.5 倍prp_zhanma_01.glb:3273 三角面,超预算 400 的 8.2 倍
AI 生成的模型通常远超低模预算。等距视图里一个建筑只占几百像素,这些面数大多是浪费。若要压,用 Blender 减面或 --target-faces 重跑生成。
批9(D-023)· 正式模型候选单(AI+Blender,2026-09-28 立)
灰盒/程序化先行版已上线:资源本体已换库内 dec_* 现成模型(colony.js NODE_MODEL), 材料堆用程序化低模(colony.js PILE_STYLE),结构件暂借 bld_weiqiang_01.glb。 下表为正式件候选,走 asset-forge(混元 3D / Hyper3D → inbox)→ blender_unity_prep.py 规整(量化顶点色、删贴图、压面数,Blender 4.5.14 在 vendor/blender/)→ game/assets/models/, 按「候选-Review-替换」纪律分批替换 —— 换的时候只动 buildings_v2.json 的 model 字段与 colony.js 的映射表,玩法代码零改动。
A. 材料落地堆(8 件,替换 PILE_STYLE)
| 候选名 | 内容 | 目标面数 | 提示词要点 |
|---|---|---|---|
| res_dui_wood_01 | 原木堆(6-8 根圆木十字码放) | 400 | Q 版低模、顶点色、单一材质、无贴图 |
| res_dui_stone_01 | 石料堆 | 300 | 同上 |
| res_dui_iron_01 | 铁矿堆 | 300 | 同上 |
| res_dui_ironbar_01 | 铁锭垛 | 300 | 同上 |
| res_dui_jade_01 | 玉料堆(寒玉换色变体) | 400 | 同上 |
| res_dui_herb_01 | 药材捆 | 300 | 同上 |
| res_dui_food_01 | 粮袋堆 | 300 | 同上 |
| res_dui_cloth_01 | 布匹卷 | 300 | 同上 |
B. 结构件(3 系 9 件,替换 buildings_v2.json 的 model 字段)
| 候选名 | 内容 | 目标面数 |
|---|---|---|
| st_qiang_mu_01 / st_qiang_shi_01 / st_qiang_yu_01 | 木/石/玉墙段(1 格) | 300/300/400 |
| st_men_mu_01 / st_men_shi_01 | 木/石门框(1 格) | 300 |
| st_diban_mu_01 / st_diban_shi_01 / st_diban_yu_01 | 木/石/玉地板(1 格) | 120 |
| st_hedao_01 | 河道地块(现用 env_hedao_01.glb,可沿用) | 200 |
C. 角色骨骼动画(D-022,rig-forge + 内置 Blender)
chr_disciple_01:walk(1.0s 循环)/ chop(0.8s)/ carry(1.0s)三套起步;- 导出 glTF 带动画轨道;前端动作接口已按「有轨道走 AnimationMixer、无轨道退程序化
动作」(world.js _applyWorkPose)设计 —— 模型就绪即自动接管,调用点零改动。
批11(2026-09-29)· 蓝图目录正式模型来源
- 28 件 col_*.glb 上线:6 件 CC0(Quaternius Furniture Pack via opengameart.org,CC0 —— 可商用、免署名,包已存 _tmp/cc0/),22 件 tools/col_models/build_col_models.py 程序化生成(Blender 4.5.14 无头)。
- 河道沿用 env_hedao_01.glb。候选-Review-替换纪律不变:对哪件不满意,改 build_col_models.py 对应 builder 重跑,或换 CC0 件,buildings_v2.json 的 model 字段指回去即可。