Files
AIGame/Doc/Design/Scene/HomeCamp/Production.md
T

89 lines
8.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# HomeCamp 主界面营地场景
## 范围与视觉基准
2026-10-23,用户确认按当前主界面背景还原近景广场、房屋和喷泉。视觉基准为 `AIClient/Assets/Bundles/UI/Bg/home_camp.png`,保留奶油墙、橙红屋瓦、黄白遮阳棚、浅色石路、蓝色喷泉和前景草地。沿用竖屏 1080×1920 的固定机位。
湖泊、瀑布、远山与城堡使用独立远景图片面片,不生成复杂远景模型。首版交付独立可编辑场景;首页 HUD 接入另行验收,保留现有首页。
分件图由内置 imagegen 参考当前背景生成,完整提示词见 `design_prompts.json`。主屋、侧屋、喷泉和地表均为白底独立分件;`backdrop.png` 是实际远景贴图,按用途全幅绘制景色,不是白底图生模型输入。
## 近景组件清单
| ID | 设计图 | 最终三角面 | 贴图 | 场景用途 |
| --- | --- | ---: | --- | --- |
| ground | `ground.png` | 8303 | 1024² XPbr | 五步产物保留供审核,表面质量不通过,未摆入交付场景 |
| mainhouse | `mainhouse.png` | 1981 | 1024² XPbr | 中后方主屋;两侧缩小复用,三实例 |
| cottage | `cottage.png` | 2995 | 1024² XPbr | 五步产物保留供审核,表面质量不通过,未摆入交付场景 |
| fountain | `fountain.png` | 1795 | 1024² XPbr | 中央圆池与两层小碗喷泉 |
连续地表为五步流程后的编辑收尾资产 `GroundSurface.asset/.prefab`:Unity Pipeline 创建持久化的 2 三角面顶面和非凸 MeshCollider,覆盖 36×42m;`ground_surface.png` 是内置 imagegen 另绘的正俯视地表颜色贴图,提示词见 `ground_surface_prompt.txt`。它不是 Studio 地表 UV 的延续,未把失败的 Studio 地表称作通过验收。
路灯和长椅通过隔离四向检查后复用 TownSquare 资产。两套旧树木/灌木均有烘焙黑斑,未用于交付;树木与花边改为 `tree_card.png` / `flower_card.png` 透明图片面片,Unlit AlphaClip、无碰撞和投影,提示词见 `foliage_prompts.json`。首版不含告示牌、拱门和围栏。
## 用户指定的五步模型流程
1. **混元网页生成高模**:每张白底分件图生成一份 50k GLB,保留任务号、日志、原始高模与哈希。
2. **3D Studio · 低模生成**:输入同一分件的高模,使用官网 Studio 低模功能,记录低模任务号和实际三角面数。
3. **3D Studio · UV 展开**:对上一步 Studio 低模展开 UV,记录 UV 任务号并校验输出。不得用 Blender 自动 UV 替代此步骤。
4. **Blender · 贴图烘焙**:先将 Studio 居中/归一化后的低模对齐到其确切来源高模,保留 Studio UV,烘焙颜色、法线、AO、金属度、粗糙度,再打包 XPbr base/mix。
5. **超出目标 30% · Blender 保留 UV 减面**:仅当实际三角面数严格大于目标×1.30 时触发,减至目标附近;未超过阈值则明确登记为跳过。保留现有 UV 和已烘焙贴图,不重新展开 UV。
所有模型完成上述流程后统一导出 Y-up、底面中心原点、局部 -Z 正面的 FBX。在 Unity 四向检查正面;不能用运行时旋转修补源模型坐标。地表另验水平顶面、厚度和可行走区域,防止生成竖直薄板后未经检查直接摆入场景。
复用依据:`Tools/studio_accessory_pipeline.py` 与 `Tools/campguide_studio_mesh.py` 已有第 02~05 步实现;`Tools/studio_lowpoly_trial.py` 含同源对齐、Studio UV 与 30% 阈值逻辑。它们目前分别面向挂件和角色,后续应提取静态场景入口,不能直接把 HomeCamp 当角色或 T2 挂件发布。
## 初始布局(模型验收后微调)
坐标为 Unity 世界坐标,单位米;相机从 -Z 看向 +Z,建筑正面局部 -Z 朝向广场。物件实际 Y 由地表碰撞向下投射确定,清单 Y=0 只是布局参考。
| 对象 | 初始 X/Z | 尺寸参考 | 朝向 |
| --- | --- | --- | --- |
| Ground | 0 / 0 | 连续 36×42m,前侧为 -Z 草地 | 地表顶面朝 +Y |
| MainHouse | 0 / 7.2 | 高约 6.5m | 门朝广场中央 |
| HouseLeft | -7.5 / 4 | 主屋缩小至高约 4m | 门朝中央略内转 |
| HouseRight | 7.5 / 4 | 同一主屋 Prefab 复用 | 门朝中央略内转 |
| Fountain | 0 / 0.8 | 池直径约 4.5m、高约 2.3m | 旋转对称 |
| Bench / Lamps / Trees | 广场边缘 | 复用既有组件 | 避让门口和中央活动区 |
相机初始位置 `(0, 15, -27)`,看向 `(0, 1.8, 3)`,透视 FOV 48°。最终以 1080×1920 对照背景调构图,保证中央喷泉、后方主屋、左右侧屋和前景草地可辨识;长屏额外检查上下裁切。
## 远景面片
`backdrop.png` 已绘制独立湖泊/瀑布/城堡远景,禁止把整张含广场背景直接贴在后面造成重复房屋和喷泉。
通过 Unity Pipeline 创建并保存 Quad + Unlit 材质,放在近景后方,调整面片位置、尺寸与 UV,使竖屏视锥内右侧城堡和瀑布均可见;不把横图直接居中裁掉右侧地标。不加碰撞、不投影、不受近景灯光二次照明。用两侧树冠及后排屋顶遮住底部衔接边,保持相机固定;首版不增加天空盒和复杂视差层。
## Unity 交付与验收
- 资产计划目录:`AIClient/Assets/Bundles/Scenes/Town/HomeCamp/`。
- 中间件:`Tools/output/homecamp_3d/`、`Tools/output/homecamp_studio/`。
- 目标:组件 Prefab、`HomeCamp.prefab`、独立 `HomeCamp.unity` 及竖屏验收截图。
- 所有导入、材质、碰撞体、Prefab 和场景制作走 Unity Pipeline,不直接改 `.meta/.unity/.prefab/.mat`。
- 地表使用非凸 MeshCollider,验证贴地、门口可达、模型穿插和喷泉池遮挡。
- 场景和面片在编辑器持久化,不用运行时代码临时拼业务场景。
- 图片登记到 `Doc/ResDesc_Picture.md`;模型实际产出后再登记 Model,不能提前声称模型完成。
## 当前状态
用户已明确回复“确认授权上传”,授权向 `https://3d.hunyuan.tencent.com/` 上传四张近景分件图及其衍生模型,执行网页高模、Studio 低模与 UV 处理。此前的审批拦截已因新增明确授权解除。
四个 50k 档高模及 Studio 低模/UV、Blender 烘焙、条件减面均已执行;任务号、哈希、实际面数和逐步回执记录到 `homecamp_scene_manifest.json` 及各组件 `production.json`。
Studio GLB 在法线和 UV 接缝处拆分顶点,直接减面会删除碎片。新增 `bl_decimate_homecamp_uv.py` 先焊接重合几何顶点、校验逐面 UV 仍保留,再减面;`bl_repair_homecamp_surface.py` 统一面朝向,不生成新 UV。最后对保留 UV 的最终低模补同源投射烘焙。主屋/喷泉最终 1981/1795 面;侧屋预算从1800改为3000,最终2995;地表保留8303面并以6500预算的130%容差跳过减面。旧预算尝试回执保留,不能把它们当最终通过结果。
侧屋和 Studio 地表仍有表面瑕疵,**仅保存制作/审核资产,没有摆入交付场景**。交付场景采用通过外观检查的主屋三实例和喷泉,地表用连续顶面编辑收尾。`Test/HomeCampXPbr` 是项目 XPbr 的独立双面版本,仅供 HomeCamp 材质使用,未修改原 XPbr Shader。
场景静态入口为 `Tools/homecamp_model_pipeline.py --part <ground|mainhouse|cottage|fountain>`,使用 `D:/UD/AI/XModel/LLM3DGraphics/.venv/Scripts/python.exe` 运行。每件资产的五步回执位于 `Tools/output/homecamp_studio/<part>/production.json`;重复执行校验来源与配置并复用已完成阶段。
Unity 入口为 `AIClient/AgentScripts/BuildHomeCamp.cs`:`BuildAssets` 导入和制作组件,`CaptureParts` 四向验收,`Build` 持久化拼装并渲染两种竖屏尺寸,`Verify` 验证面数、XPbr、地表碰撞与无碰撞的 Unlit 远景。通过 Pipeline 的 `run_script` 执行,构建用 Additive 临时场景并恢复原场景;初始 `Boot.unity` 没有未保存编辑。
## 首版交付与验证结果
- 场景:`AIClient/Assets/Bundles/Scenes/Town/HomeCamp/HomeCamp.unity`。
- 总 Prefab:同目录 `HomeCamp.prefab`;31处布局记录见 `Tools/output/homecamp_review/assembly.txt`。
- 标准竖屏与长屏截图:`Tools/output/homecamp_review/homecamp_portrait.png` / `homecamp_tall.png`。
- 验证:`Tools/output/homecamp_review/verification.txt`,实际拼装 **9987 三角面**,连续地表 **25/25** 射线采样通过,远景 Unlit、无碰撞、不投影;独立场景未加入 Build Settings。
- Pipeline 制作脚本编译无诊断;基于本轮起始 cursor=382 查询 Console,未新增 error。Boot 场景仍为 `dirty=False`。
- 当前交付是固定相机静态场景,尚未替换首页背景或接入角色行走;未构建或发布 Art/Player,未做真机性能验收。长屏会裁掉部分边缘房屋/远景,正式首页接入时仍需按机型调整相机。