把 01–07 七份文档逐条对照工程现状:要求 / 现状 / 差距 / 落地路径 / 验收口径。所有数字来自可复跑探针。
这份文档做什么:把 01–07 七份文档逐条对照工程现状,给出「要求 → 现状 → 差距 → 落地路径 → 验收方式」。所有数字都来自可复跑的命令行探针(
-SR3SpecCheck/-SR3MatProbe/-SR3MatApply),不是估计。
把文档 01 的尺寸变成可执行校验后,第一轮 7 项全部 FAIL。逐项排查发现不是车模缩放错了,而是资产本身不是敞篷版:
| 项目 | 文档 01(敞篷目标) | 当前资产实测 | 差 |
|---|---|---|---|
| 整车长度 | 455.0 | 516.5 | +61.5 |
| 整车宽度 | 190.0 | 199.0 | +9.0 |
| 整车高度 | 124.0 | 148.0 | +24.0 |
| 轴距 | 262.0 | 302.8 | +40.8 |
| 轮径 | 68.0 | 71.6 | +3.6 |
实测轴距 302.8 cm、车长 516.5 cm、车高 148.0 cm,对应的正是四门版 SU7 Ultra(官方 5115 / 3000 / 1465 mm)。而文档 01 第一节自己就写了:
敞篷版与标准 SU7 Ultra 四门版不是同一车身:轴距明显缩短、座舱后移、车顶完全取消。不能用四门版数据直接套。
也就是说:现在这台车是「四门版底盘 + 去掉车顶」,不是文档要求的那台敞篷 roadster。这件事必须先定,否则后面每一条细节打磨都建在错的地基上。
| 路线 | 做法 | 代价 | 后果 |
|---|---|---|---|
| A · 重建敞篷几何 | 按文档 01 重做车身:轴距 262、车长 455、车高 124,重新拆件与 UV | 整体重做车模,周期最长 | 才叫 1:1 还原敞篷版 |
| B · 承认四门版并按官方 1:1 | 把文档 01 的敞篷规格标成「目标 · 待重建」,当前资产按四门版官方尺寸验收 | 需要改文档口径 | 立刻可用,且已实测达标(见 1.2) |
| 项目 | 官方 (cm) | 实测 (cm) | 偏差 | 容差 | 分级 | 判定 |
|---|---|---|---|---|---|---|
| 整车长度 | 511.5 | 516.5 | +5.0 | ±5.0 | 官方 | PASS |
| 整车宽度(不含后视镜) | 197.0 | 199.0 | +2.0 | ±5.0 | 官方 | PASS |
| 整车高度 | 146.5 | 148.0 | +1.5 | ±5.0 | 官方 | PASS |
| 轴距 | 300.0 | 302.8 | +2.8 | ±6.0 | 官方 | PASS |
| 前轮距 | — | 167.0 | — | — | 待标定 | SKIP |
| 后轮距 | — | 167.0 | — | — | 待标定 | SKIP |
| 轮径 | 71.6 | 71.6 | 0.0 | ±1.5 | 实测 | PASS |
结论:5 项通过 / 0 项不通过 / 2 项待标定。偏差最大 5.0 cm(车长,含尾翼与牌照架),全部在 1% 以内。轮距官方未公开,标为待标定,不参与判定。
| 节 | 要求 | 现状 | 判定 |
|---|---|---|---|
| §一 总体比例 | 455×190×124,轴距 262 | 实测是四门版(见第一章) | 不达标 |
| §二 六大系统拆件 | 按 SM_Body_* / SM_Light_* 命名,可动件独立网格 + 骨骼 | 153 块网格整体导入,命名是 Xiaomi_ / carTyre 这类原始名;无铰链、无骨骼 | 未落地 |
| §三 涂装与拉花 | 拉花/字标做成独立 Decal 层,不烘进车漆贴图 | 车漆已经是 PBR 母材质,但拉花烘在 BaseColor 贴图里;工程内无任何 Decal 资产 | 未落地 |
| §四 灯组三层 | 灯罩 / 导光条 / 反光碗分离,配 SpotLight + Cookie 光型 | 材质层面确实分了灯罩(Plastic_Light)与镀铬件(Light_Chroaming),但无独立光源与光型投射 | 部分 |
| §五 材质规范 | 车漆/碳纤/玻璃/灯罩/皮革/轮毂/卡钳 七类参数 | 本轮已按文档数值执行,见第三章 | 已落地 |
| §六 绑定与物理 | 骨骼层级、碰撞体分层、LOD 四级 | 无骨骼、无自定义碰撞体、无 LOD(Nanite 源网格直接吃) | 未落地 |
| §七 待标定 6 项 | 实车量测后回填 | 仍为待标定;本轮的轮距实测值(167.0)可作为候选 | 待实测 |
车模材质是 glTF PBR 母材质实例,文档 §五 要的参数它全都暴露,因此不需要新建资产,用 MaterialInstanceDynamic 就能把规范值落下去。数值外置在 DefaultGame.ini [SR3MaterialSpec],改参数不用重编。
| 材质 | 参数 | 执行前 | 执行后 | 文档出处 |
|---|---|---|---|---|
| CarPaint | ClearCoatRoughnessFactor | 0.000 | 0.020 | §五 车漆·清漆粗糙度 0.02 |
| CarPaint | ClearCoatFactor | 1.000 | 1.000 | §五 清漆独立反射层 |
| Caliper | RoughnessFactor | 0.242 | 0.280 | §五 卡钳·粗糙度 0.28 |
| Rim_Color_2 / Rim_2_CB | MetallicFactor | 0.645 / 0.657 | 1.000 | §五 轮毂金属·金属度 1.0 |
| Rim_Color_2 / Rim_2_CB | RoughnessFactor | 0.297 / 0.041 | 0.320 | §五 轮毂金属·粗糙度 0.32 |
| D_Glass / Windows / Roof_Glass | IOR | 1.500 | 1.520 | §五 汽车玻璃·折射 1.52 |
| Light_Chroaming / Plastic_Light | IOR | 1.500 | 1.490 | §五 灯罩·折射 1.49 |
| S_Seat / SeatB | AnisotropyStrength | 0.000 | 0.300 | §五 内饰皮革·各向异性 0.3 |
15 条规则命中 44 个材质、90 个参数生效,逐条 before → after 已写入运行日志。
先做材质参数审计(37 个材质、2295 个参数),再判断每条细节的落地方式。结论很明确:只有 3 条能靠参数部分实现,其余 14 条必须有编辑器资产(Decal 材质 / 独立网格 / Niagara)。
| 编号 | 优先级 | 细节 | 实现方式 | 纯代码可实现 | 前置条件 |
|---|---|---|---|---|---|
| D-001 | P0 | 刹车盘锈迹 | decal | 否 | 需建 Decal 材质 + 摩擦面遮罩 |
| D-002 | P1 | 刹车粉尘堆积 | material_layer | 部分 | 可先用 Caliper 粗糙度/基色做整体,方向性堆积需遮罩纹理 |
| D-003 | P0 | 胎纹裂痕 | decal | 否 | 需 Decal + 沟槽遮罩 |
| D-004 | P0 | 胎纹卡石 | mesh | 否 | 需独立微网格(3–9 颗) |
| D-005 | P0 | 沥青飞溅与石击崩点 | decal | 否 | 需 Decal + 分区遮罩(下缘/轮后) |
| D-006 | P2 | 清漆太阳纹 | material_layer | 部分 | 清漆参数已可调;同心弧线需法线细节贴图 |
| D-007 | P1 | 缝隙积灰 | material_layer | 否 | 需缝隙位置遮罩(AO 纹理) |
| D-008 | P1 | 虫尸污渍 | decal | 否 | 需 Decal |
| D-009 | P1 | 雨渍水痕 | material_layer | 否 | 需环形水痕贴图 + 遮罩 |
| D-010 | P2 | 胎面橡胶残迹 | mesh | 否 | 需独立几何 |
| D-011 | P2 | 灯罩雾化划痕 | material_layer | 部分 | IOR/Roughness 可调;划痕散射需贴图 |
| D-012 | P1 | 排气口积碳 | material_layer | 否 | 需内壁遮罩;四门版无排气口 |
| D-013 | P1 | 座椅皮革褶皱 | mesh | 否 | 需建模改形 |
| D-014 | P2 | 方向盘握把油光 | material_layer | 否 | 需 3/9 点遮罩 |
| D-015 | P2 | 中控屏指纹 | material_layer | 否 | 需屏幕遮罩 + 指纹纹理 |
| D-016 | P1 | 尾翼扩散器损伤 | decal | 否 | 需 Decal + 前缘偏置 |
| D-017 | P1 | 动态泥水飞溅 | niagara | 否 | 需 Niagara 系统 + 车轮尾流发射器 |
为什么不能"用代码假装实现":Decal 需要带遮罩的 Decal 材质;独立碎石需要网格;泥水飞溅需要 Niagara。这些东西在引擎里是资产,不是代码。硬用代码凑,只会得到一层均匀色块,而文档的验收口径恰恰写了"能分辨单个锈点颗粒,而非一层棕色雾"。
| 文档 | 要求 | 现状 | 缺口 |
|---|---|---|---|
| 02 资产架构 | 目录隔离 + 软引用 + 数据外置;每车一个可独立打包的 Asset Bundle | 目录已建(Vehicles/Tracks/Shared/UI),全部为空;资产扁平堆在 Vehicles/SU7UltraConv/Mesh/su7_conv_v5_ue/ 下 | 无 Master 母材质、无 MI、无 Decals、无 Physics DataAsset、无 DA_VehicleDefinition |
| 03 细节清单 | 62 项可挂载细节(车辆 17 + 环境 45) | 62 项 state 全部 = planned | 缺 DetailProfile 挂载层 |
| 04 电商规格 | 16 张表、36 品牌、101 款在售车型 | 数据层已上线且合规(国别/能源/年款审计全绿) | 客户端无商城 UI,交易链路未接 |
| 05 赛道 | 30 km 江门蓬江街道赛道,14 赛段 55 地标 | 数据与文档页已完成 | UE 侧 Tracks/JiangmenPengjiang/ 五个子目录全空 |
| 06 构建 | 可下载 Windows 客户端 | 0.3.0 已发布,含中控屏与规格校验 | 仅车辆展示场景,无驾驶 |
| 07 车辆状态 | 电量/续航/累计里程持久化 | 后端 5 端点 + 客户端中控屏已通(46 项 e2e 全绿) | 里程尚未与驾驶行为联动(因为没有驾驶) |
| 阶段 | 目标 | 动作 | 验收口径 |
|---|---|---|---|
| ① 几何定案 | 首车到底做哪台车 | 在 A / B 两条路里定一条;定完把文档 01 的规格表按定案改写,两套口径不再混用 | 规格校验 0 项 FAIL |
| ② 拆件与命名 | 让"打磨一颗锈点不用重打包"成立 | 按文档 §二 重命名/拆分为 SM_Body_* / SM_Light_* / SM_Wheel_*;可动件(门/机盖/尾翼)建铰链骨骼 | 每个部件可被单独选中替换 |
| ③ 材质与涂装 | 车漆质感与品牌涂装 | 建 Shared/Master 母材质 → MI 实例;拉花/字标改为独立 Decal | 换漆只换 MI;换拉花只换贴图 |
| ④ 细节落地 | 把 17 条细节做实 | 先做 5 条 P0(D-001/003/004/005 与 D-016);其余按 P1→P2 分批 | 每条按文档 acceptance 逐句验收 |
| ⑤ 物理与赛道 | 从"展示"变成"能开" | 车辆物理(DA_TireModel / DA_Suspension)+ 赛道五层资产 | 能跑完整一圈且手感可调 |
| 命令 | 作用 | 输出 |
|---|---|---|
SR3.exe -SR3SpecCheck | 把文档 01 的尺寸变成可执行验收:自动识别车体网格、剔除展台件、以轮胎定轴距,逐项 PASS/FAIL/SKIP | 日志 [SR3Spec] 文本表 + [SR3SpecJSON] 结构化行 |
SR3.exe -SR3MatProbe | 导出车体全部材质的标量/向量/贴图参数 | [SR3Mat] 每材质一行 + [SR3MatSum] 汇总 |
SR3.exe -SR3MatApply | 按 [SR3MaterialSpec] 套用材质规范 | [SR3MatApply] 逐条 before → after |
一个必须说明的限制:本机
SR3.exe写文件会失败(截图、probe.txt、规格报告都是同一症状),所以结构化结果改走日志,由外部脚本解析。这不影响数据可信度,但会影响"客户端自己存盘"这类功能,需要单独排查进程写权限。