# 新场景组件默认模型生产流程 自 2026-10-26 起,所有新场景组件(含独立地表)默认使用: ```text 分件设计图 → 混元网页 50k GLB 高模 → 3D Studio 低模 → 3D Studio UV → Blender 同源高低模对齐、保留 Studio UV 烘焙 → 超出目标 30% 时 Blender 保留 UV 减面 → XPbr base/mix + FBX → Unity Pipeline 导入、Prefab 与场景验收 → 美术收尾(Lit 材质、平铺地表、烘焙光照、后处理)→ 对图评分 ``` 场景级的美术基准、分层拆件、收尾和对图评分见 [SceneReviewGeneration.md](SceneReviewGeneration.md) 的“商业化品质基线”和第 5 阶段。 ## 制作要求 1. 分件图通过审核后再制作模型;地表单独生产。复用已验收 Prefab 时跳过新模型生产。 2. 混元使用 `--faces 50k`。保留任务号、原始 GLB、哈希和日志,校验文件头及内嵌贴图解码。 3. Studio 低模和 Studio UV 分别保留任务回执。不得用 Blender 自动展 UV 替代 Studio UV。 4. 烘焙前将 Studio 低模对齐到确切来源高模,保留 Studio UV,烘焙颜色、法线、AO、金属度、粗糙度并打包 XPbr。 5. 减面条件为 `actualTriangles * 10 > targetTriangles * 13`;等于 130% 不触发。未超出时登记跳过,超出时减至目标附近,保留 UV 和贴图;必要时向最终低模补同源投射烘焙,不重展 UV。 6. 模型完成不等于外观通过。单件四向检查、UV/面数/贴图检查、地表水平与碰撞检查通过后才拼场景。 7. 新 FBX 为 Y-up、底面中心原点、局部 +Z 正面。坐标与正面必须实测;历史 -Z 资源按已登记配置复用。 8. 分件图尺寸按场景 manifest 的 `artDirection.scaleChart` 标注真实米制尺寸,导入 Unity 后按该尺寸缩放,不在拼装时目测缩放。 ## 面数预算(按屏占比) `targetTriangles` 按组件层级和正式机位下的屏占比确定,不再对所有组件统一用 300~2000: | 层级 | 参考预算 | 适用 | | --- | ---: | --- | | A 主体 | 3000~6000 | 主建筑、地标;造型复杂(带遮阳棚、阳台、烟囱)取上限 | | B 中景 | 1000~3000 | 侧屋、摊位、台阶、拱门、大树 | | C 点缀 | 200~800 | 花盆、木箱、岩石、灌木 | | 地表几何 | 2000~6000 | 只承载起伏和轮廓,表面细节交给平铺材质 | 整场景在正式机位视锥内的参考上限为 6 万三角面、80 个 Draw Call,以真机验收结果为准。HomeCamp 首版整场景只有 9987 面,瓶颈在面数预算过低导致的碎面,而不是性能。 ## Studio 低模失败时的处理顺序 出现碎面、破洞、反面或贴图黑斑时,按以下顺序处理,每一步都要登记回执,不能直接降级成平面贴片了事: 1. **提高预算重跑 Studio 低模**:目标面数提高到原来的 1.5~2 倍,但不超过本层级上限。 2. **拆分组件**:把遮阳棚、烟囱、花箱等附件拆成独立分件,分别走五步流程,在 Prefab 里组合。 3. **修复反面与黑斑**:统一面朝向,检查烘焙 cage 距离和射线距离;黑斑通常来自高低模没对齐或 cage 太小,需要重新对齐后再烘焙。 4. **重做分件图**:造型过于细碎时,简化设计图里的镂空和细杆结构后重新生成高模。 5. 以上都失败时,才允许用替代表现(例如树改成卡片),并在 manifest 标注 `fallback` 和原因。替代表现同样要满足第 5 阶段的 Lit 材质和阴影要求。 ## 统一工具入口 `Tools/scene_component_pipeline.py` 从场景 manifest 读取 `sceneId`、组件 `id`/`type`、`designImage`、`highpoly`/`highPoly` 和 `targetTriangles`。若有单独的 `modelReferenceImage`,混元计划使用该图。`ground` 独立登记;普通组件放在 `components`。`modelPipeline.textureSize` 默认 1024。 先查看计划,不调用远程服务或 Blender: ```powershell python Tools/scene_component_pipeline.py --manifest Doc/Design/Scene/Battlefield/battlefield_scene_manifest.json --part tree --dry-run ``` 计划会打印混元 50k 高模命令及来源/输出路径。先使用 `Tools/hunyuan_3d_generate.py` 完成高模,再用 LLM3DGraphics 虚拟环境执行后续生产: ```powershell & D:/UD/AI/XModel/LLM3DGraphics/.venv/Scripts/python.exe Tools/scene_component_pipeline.py --manifest Doc/Design/Scene/Battlefield/battlefield_scene_manifest.json --part tree ``` 普通场景默认中间目录为 `Tools/output/scene_models///`,可用 manifest 的 `modelOutputDir` 或 `--output-dir` 指定其他 `Tools/output/` 内目录。不得覆盖来源或设置不匹配的旧生产记录。已有完成记录按哈希复用。 `Tools/homecamp_model_pipeline.py --part ...` 是该入口的 HomeCamp 兼容包装,保留既有输出目录和修复步骤。 ## 收尾与历史资源 - `production.json` 记录任务、面数、减面执行/跳过、烘焙和输出哈希;模型路径、回执和 Prefab 路径须登记回场景 manifest。 - 仅复制源 FBX 和贴图入 `AIClient/Assets/Bundles/Scenes/`;导入、材质、Prefab、碰撞体、场景制作均通过 Unity Pipeline。 - 图片登记 `Doc/ResDesc_Picture.md`,模型、贴图和 Prefab 登记 `Doc/ResDesc_Model.md`。 - `model_lowpoly_bake.py` 保留用于已有资源的历史复现与其他明确使用它的工具;不再作为新场景组件的默认入口。 - 既有战场 A 的 Blender 减面/UV/烘焙回执保留真实来源,不自动重生成,也不标为已执行 Studio 低模/UV。