======================================================== 486 桌面宠物 · 模型方案 v2(2026-10-25) 取代 486-model-steps.txt(2026-09-27 的纯 VRoid 从零捏方案) ======================================================== 【目标】 用大佬那个 L4D2 模型当底子,换衣服 / 鞋子 / 发型, 做成能站在桌面上、会呼吸会晃的桌宠。 -------------------------------------------------------- 【一】手头素材(已在本机 /root/apks/) -------------------------------------------------------- 486-l4d2-source-files.zip 7.87MB,内容: models/props_unique/spawn_apartment/coffeeammo.mdl 2.6KB coffeeammo.vvd 10.5MB(顶点/权重数据) coffeeammo.dx90.vtx 1.9MB(网格索引) coffeeammo.phy 1.7KB(碰撞盒) materials/ammo/486/486.vtf 22.4MB 4096x4096 DXT5 贴图 materials/ammo/486/486.vmt 88B 材质定义 materials/ammo/486/mb.vtf 896B 次要贴图 addoninfo.txt / addonimage.jpg / README.txt 486-views/ 八视图渲染(正/侧/背等) 486-views-contact.png 八视图拼接对照图 486-palette.png 取色板 已查明:这是 Source 引擎的静态道具模型(props_unique 摆件), 165,259 顶点、只有 1 根骨、无骨骼动画。 → 它是一具"雕像",不是能动的角色。 -------------------------------------------------------- 【二】硬约束(决定路线,不可绕) -------------------------------------------------------- 1. 家机 M900 Tiny:6 代 i5 T 系列 / 8G 内存 / 无独显 → GPU 型自动绑骨工具(UniRig 等)跑不动 2. ECS 只有 1.6G 内存,跑不了 Blender 重活 3. 结论:只能走 CPU 能跑的手工 / 传递路线 -------------------------------------------------------- 【三】路线(v2 核心变化) -------------------------------------------------------- 旧方案:VRoid 从零捏一具 → 导出 VRM 新方案:骨架来自"素体",AI/摆件网格只当皮穿上去 (即 gemini 提的思路,行业叫权重传递 / retarget) Phase 0 摸底(Blender + SourceIO 插件导入 coffeeammo.mdl) 必须看清三件事: a) 网格是不是分件的(身体 / 衣服 / 头发 / 鞋 各自独立?) b) 姿势是不是 T-pose 或 A-pose c) UV 是不是分块(能不能单独换衣服区域贴图) 判据: A 路线=分件干净 → 可以直接删换部件 B 路线=焊成一坨 → 走 Phase 1 素体迁移(默认预期) Phase 1 素体 取一具标准人形素体: - VRoid 导出空 VRM(标准 Humanoid 骨架、T-pose、自带权重)首选 - 备选:Blender 自带 Rigify Human Meta-Rig 骨架从这里来,不用 AI 模型自己的。 Phase 2 对齐与传权重(全流程最容易翻车的一步) 1) 缩放 + 平移,让肩、肘、膝、腕关节位置跟素体重合 2) Shrinkwrap 修改器把原网格吸附到素体表面 —— 两个网格贴得越近,后面权重越准 3) Data Transfer 把素体顶点组传到原网格 坑:权重按空间距离传,左右腿靠近会串(左腿顶点吃到右腿权重) 解法:分部位单独传(左/右腿、左/右臂各一次,用顶点组限范围) 或按面朝向过滤 判据:手动摆 3 个姿势(抬手、抬腿、转身)无撕裂即通过 Phase 3 部件替换 - 衣服:原网格若分件就删掉换新的; 否则用 VRoid 挑形状 + 八视图投影烘焙上色 - 鞋、发型:同上(VRoid 挑形状 + 投影) - 换头:放最后做,脖子那一圈手动刷权重 注意:AI/摆件网格内部是空的,换头接缝容易崩,需逐点检查 Phase 4 贴图 参考 486-palette.png 与 vtf 里拆出的原贴图 UV 是原模型自动展的,拉伸严重 → 重做贴图改不了这点, 分辨率与色块对照原图来 Phase 5 导出与接入 导出 VRM(Humanoid + SpringBone 物理) MateEngine 导入 → 每换一个模型缩放和相机都要重调 -------------------------------------------------------- 【四】总口诀 -------------------------------------------------------- 绑骨是总闸门。过不了它,贴图、换头、换衣服全部白做。 先证明"能动",再谈"好看"。 -------------------------------------------------------- 【五】风险 -------------------------------------------------------- 1. 原网格是空壳(躯干内部无几何),权重可能大面积错 → 优先保 可见部位(四肢、躯干表面)正确,内部不管 2. 桌面宠物只需要几个动作(呼吸、眨眼、站立微晃), 不需要精细蒙皮 → 别按游戏角色的标准要求自己 3. 这是别人 mod 的素材,只做自用,不外发不上传 -------------------------------------------------------- 【六】当前进度 -------------------------------------------------------- [x] 素材已到手并解包确认构成 [x] 方案 v2 定稿 [ ] Phase 0 摸底(等 M900 装好 Blender + SourceIO) ======================================================== -------------------------------------------------------- 【六】AI 建模反馈回路(2026-10-27 新增,待验证) -------------------------------------------------------- 背景:单纯在 prompt 里"强调要环形边流/关节加密"没用。 模型不知道自己要的输出长什么样,只能照愿望瞎猜, 而且每次都会自称"拓扑已清理干净"。 所以改成给眼睛: 1. 生成——每轮让模型写/改 bpy 脚本并执行,导出一个 .blend 2. 渲染——bpy 无头跑渲染脚本,输出三视图线框图 workbench 引擎 + 打开 show_wire,正交相机(front / side / back) 存到 iter_N/{front,side,back}.png 3. 回喂——把线框图连同判定清单发给模型看,让它自评 4. 判定清单(人工也用这套): - 关节处(腋下/肘/膝/胯)是否有闭合环形边流 - 该区域顶点密度是否与相邻区域匹配 - 法线朝向是否统一 - 是否与身体网格穿插 5. 修——模型给下一轮改法,回到第 1 步 6. 收敛——连续两轮清单全过,或改动幅度小于阈值 前提与风险: - 模型必须收图(多模态)。6.1 Sol 要确认支持图像输入,否则回喂无效 - 渲染出来的线框图在细小区域可能糊,正交相机 + 局部放大截图更可靠 - 每轮成本要记账,轮数上限先定(建议 5 轮封顶)