Ship the WeChat hot-update catalogs and the camp, TideWhale T2, UI atlas, and animation-lab work.
Co-authored-by: Cursor <cursoragent@cursor.com>
@@ -0,0 +1,88 @@
|
||||
# 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,未做真机性能验收。长屏会裁掉部分边缘房屋/远景,正式首页接入时仍需按机型调整相机。
|
||||
|
After Width: | Height: | Size: 2.0 MiB |
|
After Width: | Height: | Size: 1.5 MiB |
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"generator": "built_in_imagegen",
|
||||
"referenceImage": "AIClient/Assets/Bundles/UI/Bg/home_camp.png",
|
||||
"transparentBackground": false,
|
||||
"assets": [
|
||||
{
|
||||
"id": "mainhouse",
|
||||
"output": "Doc/Design/Scene/HomeCamp/mainhouse.png",
|
||||
"prompt": "Use case: stylized-concept. Create ONE isolated 3D game asset design, the CENTRAL LARGE HOUSE from this reference village, for image-to-3D modeling. Match the house silhouette and style: warm cream stucco walls, orange terracotta rounded roof tiles, two story central gable, a single cream chimney on left roof, small round attic vent, arched upper window with wooden flower box, large arched wooden front door with a pale stone arch surround, modest low one-story roof extensions to either side, small wall-mounted golden lanterns. Show full building from slightly above front in a 3/4 view, centered with generous white margin; architectural back/side mass must be coherent. Keep the central house visually recognizable from the reference. Pure #FFFFFF background, no ground, no pedestal, no village, no fountain, no trees, no detached flowerpots, no people, no animals, no labels or text, no cast shadow on background. A single connected house, pleasantly rounded hand-painted Candy game look, detailed enough for texture baking but clear simple forms. Square image."
|
||||
},
|
||||
{
|
||||
"id": "fountain",
|
||||
"output": "Doc/Design/Scene/HomeCamp/fountain.png",
|
||||
"prompt": "Use case: stylized-concept. Make a single isolated image-to-3D game asset design of the round stone fountain in the reference image. Preserve the reference fountain: wide low circular basin of warm pale cream cut stone blocks, turquoise blue water visible within, one tapering carved central pedestal with two small tiered bowls and a very modest water spout at the top. NOT a giant three tier wedding cake fountain. Small village fountain, broad basin and short central tiers. Slightly elevated 3/4 front view showing the entire circular footprint. Cheerful rounded Candy game art matching the reference, high quality softly lit textured 3D render. Exactly one fountain on a pure white #FFFFFF background. No surrounding flower ring, no flowers, no paving, no ground, no floor or separate pedestal, no houses, no trees, no people, no text. Fountain stone and blue water only; compact continuous shape suitable for image-to-3D."
|
||||
},
|
||||
{
|
||||
"id": "cottage",
|
||||
"output": "Doc/Design/Scene/HomeCamp/cottage.png",
|
||||
"prompt": "Use case: stylized-concept. Create exactly ONE isolated small market cottage game asset design matching the side cottages in this village reference. One story warm creamy plaster cottage, compact rectangular plan, orange terracotta gabled roof with round tiles, small cream chimney, a round attic vent, arched small window and wooden entrance door. In front attached to the facade is a charming yellow and white striped canvas awning supported by two wooden posts over ONE compact wooden fruit counter with a few oranges and baskets. Simple readable continuous building, preserve the warm cream / orange / golden yellow palette and rounded hand-painted Candy game style of the reference. Full cottage visible from slightly above in 3/4 front view, centered with white space. Pure white #FFFFFF background, no terrain, no village, no additional houses, no ground tile or pedestal, no fountain, no detached props, no people or animals, no words or watermarks, no cast shadow on the white backdrop. For image-to-3D modeling, clear silhouette and full roof."
|
||||
},
|
||||
{
|
||||
"id": "ground",
|
||||
"output": "Doc/Design/Scene/HomeCamp/ground.png",
|
||||
"prompt": "Use case: stylized-concept. Create exactly ONE isolated 3D terrain ground asset for the foreground village square in the reference. ONLY ground, no objects. A broad shallow nearly flat irregular rounded-rectangle patch: rear two thirds warm cream irregular flagstone plaza, front third lush soft green grass. A gently curving cream stepping-stone path enters from the FRONT RIGHT and widens into the central plaza. Leave the center as uninterrupted paving where a separate fountain will be placed later. Leave the rear edge as clear flat paving where separate buildings will stand. No fountain socket or holes. Slight raised stone edging only at the perimeter, very thin natural soil sidewall. Mostly flat, suitable walkable game terrain; miniature landscape floor, not a floating island. Slightly elevated nearly top-down view showing the whole footprint and shallow thickness. Match bright soft Candy game art and warm colors in reference. Pure white #FFFFFF background with generous margin. No houses, no buildings, no fountain, no trees, no bushes, no flowers, no furniture, no lamps, no walls, no arches, no fences, no mountains, no sky, no water, no text. The ground only, one continuous mesh."
|
||||
},
|
||||
{
|
||||
"id": "backdrop",
|
||||
"output": "Doc/Design/Scene/HomeCamp/backdrop.png",
|
||||
"prompt": "Use case: stylized-concept. Asset type: full-bleed distant background texture for a simple flat polygon behind a 3D village, NOT an isolated model design. Extract and extend ONLY the DISTANT SCENERY seen at the TOP of the reference: clear pale blue sky, soft fluffy white clouds, distant blue layered mountains, a blue lake, rocky green cliffs at middle right with a broad white waterfall falling into the lake, a tiny warm cream and red-roof fantasy castle far away on the upper RIGHT ridge, scattered slim cypress trees and rounded green distant woodland along the lakeside. Preserve the cheerful soft painted Candy village world, warm sunny midday, serene airy atmosphere. Wide landscape composition, coherent natural perspective. Upper 45 percent sky and clouds, middle mountains and castle ridge, lower 35 percent lake and distant woodland/cliffs. Fill entire rectangular image edge to edge, no white margins. NO foreground village, no nearby houses, no fountain, no plaza, no paving, no bench, no market stalls, no characters, no pets, no interface, no text. This image will be an unlit distant backdrop, so all requested lake/waterfall/castle detail must be IN THE IMAGE, not separate meshes. Landscape 3:2 aspect ratio."
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,162 @@
|
||||
{
|
||||
"status": "design_images_verified",
|
||||
"imageCount": 5,
|
||||
"rows": [
|
||||
{
|
||||
"id": "mainhouse",
|
||||
"path": "Doc/Design/Scene/HomeCamp/mainhouse.png",
|
||||
"width": 1254,
|
||||
"height": 1254,
|
||||
"sha256": "1b1fcb750f72464910aa053f8084829f861a853e1e5cccecc8f494479f2876bd",
|
||||
"corners": [
|
||||
[
|
||||
253,
|
||||
253,
|
||||
253
|
||||
],
|
||||
[
|
||||
255,
|
||||
255,
|
||||
255
|
||||
],
|
||||
[
|
||||
254,
|
||||
254,
|
||||
254
|
||||
],
|
||||
[
|
||||
253,
|
||||
253,
|
||||
253
|
||||
]
|
||||
],
|
||||
"imageDecodes": true,
|
||||
"whiteCornersPass": true
|
||||
},
|
||||
{
|
||||
"id": "cottage",
|
||||
"path": "Doc/Design/Scene/HomeCamp/cottage.png",
|
||||
"width": 1312,
|
||||
"height": 1199,
|
||||
"sha256": "7d290546cbf0e797c02261226fbcbbb4f8919b34e32fb15e5dae6e4c80e2a1ff",
|
||||
"corners": [
|
||||
[
|
||||
253,
|
||||
253,
|
||||
253
|
||||
],
|
||||
[
|
||||
254,
|
||||
254,
|
||||
254
|
||||
],
|
||||
[
|
||||
254,
|
||||
254,
|
||||
254
|
||||
],
|
||||
[
|
||||
254,
|
||||
253,
|
||||
254
|
||||
]
|
||||
],
|
||||
"imageDecodes": true,
|
||||
"whiteCornersPass": true
|
||||
},
|
||||
{
|
||||
"id": "fountain",
|
||||
"path": "Doc/Design/Scene/HomeCamp/fountain.png",
|
||||
"width": 1402,
|
||||
"height": 1122,
|
||||
"sha256": "2ca038060220c0fb0c35ffd5bda0e87e0fe249c4b074faac4123b520f9bdfd39",
|
||||
"corners": [
|
||||
[
|
||||
253,
|
||||
253,
|
||||
253
|
||||
],
|
||||
[
|
||||
255,
|
||||
255,
|
||||
255
|
||||
],
|
||||
[
|
||||
254,
|
||||
254,
|
||||
254
|
||||
],
|
||||
[
|
||||
254,
|
||||
253,
|
||||
254
|
||||
]
|
||||
],
|
||||
"imageDecodes": true,
|
||||
"whiteCornersPass": true
|
||||
},
|
||||
{
|
||||
"id": "ground",
|
||||
"path": "Doc/Design/Scene/HomeCamp/ground.png",
|
||||
"width": 1536,
|
||||
"height": 1024,
|
||||
"sha256": "c129ff8fe81928e77b834e5603f845329e9a4c3da9018bda9ab217e0aac76291",
|
||||
"corners": [
|
||||
[
|
||||
253,
|
||||
253,
|
||||
253
|
||||
],
|
||||
[
|
||||
254,
|
||||
255,
|
||||
255
|
||||
],
|
||||
[
|
||||
254,
|
||||
254,
|
||||
254
|
||||
],
|
||||
[
|
||||
253,
|
||||
253,
|
||||
253
|
||||
]
|
||||
],
|
||||
"imageDecodes": true,
|
||||
"whiteCornersPass": true
|
||||
},
|
||||
{
|
||||
"id": "backdrop",
|
||||
"path": "Doc/Design/Scene/HomeCamp/backdrop.png",
|
||||
"width": 1536,
|
||||
"height": 1024,
|
||||
"sha256": "e854738987f2b384359317d8713ff4bbdf3d27960abe75661727516198f4ccf5",
|
||||
"corners": [
|
||||
[
|
||||
86,
|
||||
173,
|
||||
249
|
||||
],
|
||||
[
|
||||
105,
|
||||
187,
|
||||
248
|
||||
],
|
||||
[
|
||||
104,
|
||||
132,
|
||||
49
|
||||
],
|
||||
[
|
||||
70,
|
||||
101,
|
||||
35
|
||||
]
|
||||
],
|
||||
"imageDecodes": true
|
||||
}
|
||||
],
|
||||
"modelGenerationCompleted": false,
|
||||
"unitySceneCreated": false
|
||||
}
|
||||
|
After Width: | Height: | Size: 1.8 MiB |
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"generator": "built_in_imagegen",
|
||||
"referenceImage": "AIClient/Assets/Bundles/UI/Bg/home_camp.png",
|
||||
"transparentBackground": true,
|
||||
"assets": [
|
||||
{
|
||||
"id": "tree_card",
|
||||
"output": "Doc/Design/Scene/HomeCamp/tree_card.png",
|
||||
"prompt": "Use case: stylized-concept. Asset type: transparent background tree cutout for a distant vegetation billboard behind a 3D village. Recreate ONE beautiful leafy village tree matching the large broadleaf tree in the reference: dense lush rounded sunlit green canopy in about five overlapping soft masses, rich small leaf detail, a sturdy warm brown branching trunk. Entire tree including trunk base fits inside the image with clear margin. Upright frontal view, slightly visible canopy top. Soft cheerful Candy game 3D painted look, sunny daytime. Isolate ONLY the tree on a genuinely transparent background. No soil mound, no planter, no base platform, no grass, no buildings, no other objects, no text, no dark holes or black patches. Solid dense foliage with natural transparent silhouette edge. This tree image is a flat distant decoration, not input for model generation."
|
||||
},
|
||||
{
|
||||
"id": "flower_card",
|
||||
"output": "Doc/Design/Scene/HomeCamp/flower_card.png",
|
||||
"prompt": "Use case: stylized-concept. Asset type: transparent flower-border cutout for a fixed-camera mobile game foliage card. ONE compact low rounded flower clump matching the daisies and yellow flowers bordering the fountain in the village reference. Dense soft lush green leaves supporting many cheerful small white daisies with golden centers and a few tiny bright yellow flowers. Show the full clump silhouette, no cropping; broad low mound, three-quarter frontal view from slightly above. Warm sunny soft painted Candy game 3D illustration, beautiful dense foliage, clean natural details. Isolate this one clump on a genuinely transparent background, generous clear margin. No planter, no wooden box, no vase, no rocks, no soil platform, no lawn tile, no cast shadow backdrop, no people, no text. No black holes or dark patches. A flat scene decoration, not an input for 3D model generation."
|
||||
}
|
||||
]
|
||||
}
|
||||
|
After Width: | Height: | Size: 1.5 MiB |
|
After Width: | Height: | Size: 2.0 MiB |
|
After Width: | Height: | Size: 2.8 MiB |
@@ -0,0 +1,5 @@
|
||||
Generator: built_in_imagegen
|
||||
Reference: AIClient/Assets/Bundles/UI/Bg/home_camp.png
|
||||
Transparent background: false
|
||||
|
||||
Use case: stylized-concept. Asset type: orthographic straight-down albedo texture for a flat mobile game village ground, 1024x1024 square. Fill EVERY pixel edge to edge with terrain; no sky, no white background, no outside border. Camera exactly vertical looking straight down, absolutely no perspective or isometric angle, no visible thickness. Rear/top 65% of the square is warm pale cream irregular flat flagstone paving with narrow soft moss-filled joints, softly rounded stones, no deep gaps or dark cracks. Front/bottom 35% is cheerful soft green grass. A path of broad cream stepping stones enters from the BOTTOM RIGHT and curves smoothly into the central paved plaza. Center is continuous unobstructed paving where a separate fountain will stand. Match the warm cream paving and lush green grass palette from the village reference but use softly painted diffuse colors, no baked directional shadows and no glows. Fine small natural grass flecks and a few tiny white daisy specks at the grass edges. No houses, no fountain, no trees, no furniture, no people, no text, no grid, no dark contours, no raised slabs or spikes. Flat coherent terrain texture. Square.
|
||||
@@ -0,0 +1,518 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"sceneId": "HomeCamp",
|
||||
"referenceImage": "AIClient/Assets/Bundles/UI/Bg/home_camp.png",
|
||||
"designPrompts": "Doc/Design/Scene/HomeCamp/design_prompts.json",
|
||||
"designResolution": [
|
||||
1080,
|
||||
1920
|
||||
],
|
||||
"status": "independent_scene_first_version_validated",
|
||||
"modelPipeline": {
|
||||
"steps": [
|
||||
"hunyuan_web_highpoly",
|
||||
"studio_lowpoly",
|
||||
"studio_uv",
|
||||
"blender_bake",
|
||||
"blender_decimate_preserve_uv_if_over_130_percent"
|
||||
],
|
||||
"highpolyFaces": "50k",
|
||||
"textureSize": 1024,
|
||||
"decimationThresholdPercent": 30,
|
||||
"decimationComparison": "actualTriangles * 10 > targetTriangles * 13",
|
||||
"preserveStudioUV": true,
|
||||
"coordinateSystem": {
|
||||
"up": "+Y",
|
||||
"front": "-Z",
|
||||
"origin": "bottom_center"
|
||||
}
|
||||
},
|
||||
"components": [
|
||||
{
|
||||
"id": "ground",
|
||||
"designImage": "Doc/Design/Scene/HomeCamp/ground.png",
|
||||
"targetTriangles": 6500,
|
||||
"modelStatus": "processed_review_candidate_not_placed",
|
||||
"groundCollider": "non_convex_mesh",
|
||||
"position": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"highpoly": "Tools/output/homecamp_3d/ground/ground.glb",
|
||||
"highpolySha256": "0710157abc6d07cd0dea8c5d413321a65be4689ca29cff4190cf879652705e20",
|
||||
"highpolyTriangles": 50000,
|
||||
"highpolyBounds": [
|
||||
[
|
||||
-0.5104680061340332,
|
||||
0.0,
|
||||
-0.44764000177383423
|
||||
],
|
||||
[
|
||||
0.4677639901638031,
|
||||
0.030424000695347786,
|
||||
0.529000997543335
|
||||
]
|
||||
],
|
||||
"highpolyJobId": "7d51d34ba0514601aed6085afc664152",
|
||||
"highpolyCreationId": "ef5a58d3-f03f-4c70-8208-ed8604212404",
|
||||
"highpolyWorkDir": "Tools/data/hunyuan/jobs/7d51d34ba0514601aed6085afc664152",
|
||||
"initialTargetTriangles": 1500,
|
||||
"budgetRevisionReason": "Studio terrain has many UV boundaries; retain its 8303-face topology within 130 percent rather than delete surface patches",
|
||||
"finalTriangles": 8303,
|
||||
"productionReceipt": "Tools/output/homecamp_studio/ground/production.json",
|
||||
"studioLowpolyTask": "44e1b0dcf52449f092f727a06eca1023-0-6174151d-6124-4f72-9881-065b2876",
|
||||
"studioUVTask": "44e1b0dcf52449f092f727a06eca1023-0-2ed2b6e8-1a43-45a0-8493-d480c889",
|
||||
"steps": {
|
||||
"01": "highpoly_validated",
|
||||
"02": "studio_lowpoly_completed",
|
||||
"03": "studio_uv_completed",
|
||||
"04": "blender_bake_completed_on_studio_uv",
|
||||
"05": "skipped_within_130_percent"
|
||||
},
|
||||
"prefab": "Assets/Bundles/Scenes/Town/HomeCamp/ground/ground.prefab",
|
||||
"sourceOutputs": {
|
||||
"Tools/output/homecamp_studio/ground/xpbr/ground.fbx": "638cbfbc82ee23dbc1f24f4c322db4655365ba6d60c6914fe869d9418d24277d",
|
||||
"Tools/output/homecamp_studio/ground/xpbr/ground_base.png": "fdaa5959e53e59ec6cf5a57a7311414c83f94fec1e52b308decd47aae46ccc38",
|
||||
"Tools/output/homecamp_studio/ground/xpbr/ground_mix.png": "879b155f4e521d6c6bbf6fb029c4db1832028f37cdf7ab89661dcd95ce945db4"
|
||||
},
|
||||
"visualIssue": "Studio surface/UV fragmentation; retained for further repair, excluded from delivered assembly"
|
||||
},
|
||||
{
|
||||
"id": "mainhouse",
|
||||
"designImage": "Doc/Design/Scene/HomeCamp/mainhouse.png",
|
||||
"targetTriangles": 2000,
|
||||
"modelStatus": "visually_validated_and_placed",
|
||||
"position": [
|
||||
0,
|
||||
0,
|
||||
8
|
||||
],
|
||||
"highpoly": "Tools/output/homecamp_3d/mainhouse/mainhouse.glb",
|
||||
"highpolySha256": "0419b5c94f4526693e4af0ec731382d53cb9dfc25019f5c5b3d0f9195a510695",
|
||||
"highpolyTriangles": 49760,
|
||||
"highpolyBounds": [
|
||||
[
|
||||
-0.42348501086235046,
|
||||
0.0,
|
||||
-0.3207170069217682
|
||||
],
|
||||
[
|
||||
0.48123401403427124,
|
||||
0.678384006023407,
|
||||
0.25547000765800476
|
||||
]
|
||||
],
|
||||
"highpolyJobId": "eb4fcd58e81e4c38b5136ed5df63a2d2",
|
||||
"highpolyCreationId": "6431481a-85da-42e2-a310-e6ba10e6a2ae",
|
||||
"highpolyWorkDir": "Tools/data/hunyuan/jobs/eb4fcd58e81e4c38b5136ed5df63a2d2",
|
||||
"finalTriangles": 1981,
|
||||
"productionReceipt": "Tools/output/homecamp_studio/mainhouse/production.json",
|
||||
"studioLowpolyTask": "44e1b0dcf52449f092f727a06eca1023-0-6a3c03b4-6dee-413d-a162-d4d9e22d",
|
||||
"studioUVTask": "44e1b0dcf52449f092f727a06eca1023-0-88f7a9a0-3c61-4cbc-9f84-1372a63a",
|
||||
"steps": {
|
||||
"01": "highpoly_validated",
|
||||
"02": "studio_lowpoly_completed",
|
||||
"03": "studio_uv_completed",
|
||||
"04": "blender_bake_completed_on_studio_uv",
|
||||
"05": "uv_preserving_decimation_completed"
|
||||
},
|
||||
"prefab": "Assets/Bundles/Scenes/Town/HomeCamp/mainhouse/mainhouse.prefab",
|
||||
"sourceOutputs": {
|
||||
"Tools/output/homecamp_studio/mainhouse/xpbr/mainhouse.fbx": "5095a00531dd167e02d4e138a0c319db8f00826d35a77f4d9371b1b8711e6166",
|
||||
"Tools/output/homecamp_studio/mainhouse/xpbr/mainhouse_base.png": "da7a51a03481a37725e43fdfd7e224a41c9b2014deb90ca42ae15893dc36035a",
|
||||
"Tools/output/homecamp_studio/mainhouse/xpbr/mainhouse_mix.png": "bef58c63f6e51b7ce8f992ef56bdc2a906c0da273f4bac1964e9da1232d3461c"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "cottage",
|
||||
"designImage": "Doc/Design/Scene/HomeCamp/cottage.png",
|
||||
"targetTriangles": 3000,
|
||||
"modelStatus": "processed_review_candidate_not_placed",
|
||||
"instances": [
|
||||
{
|
||||
"name": "CottageLeft",
|
||||
"position": [
|
||||
-7,
|
||||
0,
|
||||
4.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "CottageRight",
|
||||
"position": [
|
||||
7,
|
||||
0,
|
||||
4.5
|
||||
]
|
||||
}
|
||||
],
|
||||
"highpoly": "Tools/output/homecamp_3d/cottage/cottage.glb",
|
||||
"highpolySha256": "af146d667230ed4aa34ce0bf839fa9025e1c2e36f03a425c82d592b5a7c9dd88",
|
||||
"highpolyTriangles": 49990,
|
||||
"highpolyBounds": [
|
||||
[
|
||||
-0.4400230050086975,
|
||||
0.0,
|
||||
-0.37127700448036194
|
||||
],
|
||||
[
|
||||
0.4304420053958893,
|
||||
0.7349910140037537,
|
||||
0.33599400520324707
|
||||
]
|
||||
],
|
||||
"highpolyJobId": "6338023c4d4b4233976babd1198d0c49",
|
||||
"highpolyCreationId": "8420a93b-f3de-4746-97c4-2e15b17c5f1c",
|
||||
"highpolyWorkDir": "Tools/data/hunyuan/jobs/6338023c4d4b4233976babd1198d0c49",
|
||||
"initialTargetTriangles": 1800,
|
||||
"budgetRevisionReason": "Retain continuous ground/house surface and Studio UV charts; initial lower budget caused missing patches",
|
||||
"finalTriangles": 2995,
|
||||
"productionReceipt": "Tools/output/homecamp_studio/cottage/production.json",
|
||||
"studioLowpolyTask": "44e1b0dcf52449f092f727a06eca1023-0-61d9ba22-da64-4adb-b440-11b8a08a",
|
||||
"studioUVTask": "44e1b0dcf52449f092f727a06eca1023-0-b33f6718-07fb-42c7-981d-3a7512a0",
|
||||
"steps": {
|
||||
"01": "highpoly_validated",
|
||||
"02": "studio_lowpoly_completed",
|
||||
"03": "studio_uv_completed",
|
||||
"04": "blender_bake_completed_on_studio_uv",
|
||||
"05": "uv_preserving_decimation_completed"
|
||||
},
|
||||
"prefab": "Assets/Bundles/Scenes/Town/HomeCamp/cottage/cottage.prefab",
|
||||
"sourceOutputs": {
|
||||
"Tools/output/homecamp_studio/cottage/xpbr/cottage.fbx": "0cd83d07210db2b8ff9fe9ce949f769409ddd02321da4d4730337c758e56a2cf",
|
||||
"Tools/output/homecamp_studio/cottage/xpbr/cottage_base.png": "db7ac208bfeaa514384e94af1bec41579de370ace66dcc4c181e865a2381279b",
|
||||
"Tools/output/homecamp_studio/cottage/xpbr/cottage_mix.png": "4d6c3ac43a6d84cf33686dab41ab53da5df6f6753bbc3f1dee70e32313190d70"
|
||||
},
|
||||
"visualIssue": "Studio surface/UV fragmentation; retained for further repair, excluded from delivered assembly"
|
||||
},
|
||||
{
|
||||
"id": "fountain",
|
||||
"designImage": "Doc/Design/Scene/HomeCamp/fountain.png",
|
||||
"targetTriangles": 1800,
|
||||
"modelStatus": "visually_validated_and_placed",
|
||||
"position": [
|
||||
0,
|
||||
0,
|
||||
0.8
|
||||
],
|
||||
"highpoly": "Tools/output/homecamp_3d/fountain/fountain.glb",
|
||||
"highpolySha256": "58bd37d217c0ee795fc452ad1c9be5b234374555ab53e24005d47f76847e5078",
|
||||
"highpolyTriangles": 49848,
|
||||
"highpolyBounds": [
|
||||
[
|
||||
-0.5366960167884827,
|
||||
0.0,
|
||||
-0.5384520292282104
|
||||
],
|
||||
[
|
||||
0.539355993270874,
|
||||
0.5473799705505371,
|
||||
0.5376759767532349
|
||||
]
|
||||
],
|
||||
"highpolyJobId": "c03e07d800ef4c7099de2c61cf6e6621",
|
||||
"highpolyCreationId": "d7631df4-6d84-4fec-80f1-ba8a647996db",
|
||||
"highpolyWorkDir": "Tools/data/hunyuan/jobs/c03e07d800ef4c7099de2c61cf6e6621",
|
||||
"finalTriangles": 1795,
|
||||
"productionReceipt": "Tools/output/homecamp_studio/fountain/production.json",
|
||||
"studioLowpolyTask": "44e1b0dcf52449f092f727a06eca1023-0-ac14a25e-3e7f-45fa-b6ea-636b042e",
|
||||
"studioUVTask": "44e1b0dcf52449f092f727a06eca1023-0-123db97c-3a7b-4f87-a9f6-9eb9d58a",
|
||||
"steps": {
|
||||
"01": "highpoly_validated",
|
||||
"02": "studio_lowpoly_completed",
|
||||
"03": "studio_uv_completed",
|
||||
"04": "blender_bake_completed_on_studio_uv",
|
||||
"05": "uv_preserving_decimation_completed"
|
||||
},
|
||||
"prefab": "Assets/Bundles/Scenes/Town/HomeCamp/fountain/fountain.prefab",
|
||||
"sourceOutputs": {
|
||||
"Tools/output/homecamp_studio/fountain/xpbr/fountain.fbx": "c226034f71c5ee2f6d0efe8df248369c935608c62959514338f538612e5f1aad",
|
||||
"Tools/output/homecamp_studio/fountain/xpbr/fountain_base.png": "6ad8524be4cdd902349daf41ba9ccc5f8830b1c436114b822ba45bf40a49c451",
|
||||
"Tools/output/homecamp_studio/fountain/xpbr/fountain_mix.png": "0118ecd392cdcfdb5fed0489f1e2df6d5cb3d5a0842d27d21334970d87183512"
|
||||
}
|
||||
}
|
||||
],
|
||||
"reuseCandidates": [
|
||||
{
|
||||
"id": "tree",
|
||||
"prefab": "Assets/Bundles/Scenes/Town/TownSquare/tree/tree.prefab",
|
||||
"status": "rejected_texture_artifacts"
|
||||
},
|
||||
{
|
||||
"id": "lamp",
|
||||
"prefab": "Assets/Bundles/Scenes/Town/TownSquare/lamp/lamp.prefab",
|
||||
"status": "visually_verified"
|
||||
},
|
||||
{
|
||||
"id": "bench",
|
||||
"prefab": "Assets/Bundles/Scenes/Town/TownSquare/bench/bench.prefab",
|
||||
"status": "visually_verified"
|
||||
},
|
||||
{
|
||||
"id": "bush",
|
||||
"prefab": "Assets/Bundles/Scenes/Town/TownSquare/bush/bush.prefab",
|
||||
"status": "rejected_texture_artifacts"
|
||||
}
|
||||
],
|
||||
"backdrop": {
|
||||
"image": "Doc/Design/Scene/HomeCamp/backdrop.png",
|
||||
"representation": "unlit_textured_quad",
|
||||
"meshTriangles": 2,
|
||||
"complexDistantModels": false,
|
||||
"shadows": false,
|
||||
"collider": false,
|
||||
"framingConstraint": "Keep right-side castle and waterfall visible in portrait; mask lower seam with roofs and foliage",
|
||||
"status": "imported_and_authored_in_scene"
|
||||
},
|
||||
"camera": {
|
||||
"position": [
|
||||
0,
|
||||
15,
|
||||
-27
|
||||
],
|
||||
"target": [
|
||||
0,
|
||||
1.8,
|
||||
3
|
||||
],
|
||||
"fieldOfView": 48
|
||||
},
|
||||
"plannedOutputs": {
|
||||
"assetRoot": "Assets/Bundles/Scenes/Town/HomeCamp",
|
||||
"prefab": "Assets/Bundles/Scenes/Town/HomeCamp/HomeCamp.prefab",
|
||||
"scene": "Assets/Bundles/Scenes/Town/HomeCamp/HomeCamp.unity"
|
||||
},
|
||||
"uploadAuthorization": {
|
||||
"status": "authorized_by_user",
|
||||
"destination": "https://3d.hunyuan.tencent.com/",
|
||||
"scope": "Upload only the four listed white-background component images and their derived model files to Hunyuan web/3D Studio for steps 01-03",
|
||||
"authorizationText": "User confirmed upload authorization in this conversation",
|
||||
"authorizedDate": "2026-10-23",
|
||||
"previousRejectionReason": "Automatic review rejected third-party upload because explicit authorization for this destination was not recorded"
|
||||
},
|
||||
"designImageAudit": [
|
||||
{
|
||||
"id": "mainhouse",
|
||||
"path": "Doc/Design/Scene/HomeCamp/mainhouse.png",
|
||||
"width": 1254,
|
||||
"height": 1254,
|
||||
"sha256": "1b1fcb750f72464910aa053f8084829f861a853e1e5cccecc8f494479f2876bd",
|
||||
"corners": [
|
||||
[
|
||||
253,
|
||||
253,
|
||||
253
|
||||
],
|
||||
[
|
||||
255,
|
||||
255,
|
||||
255
|
||||
],
|
||||
[
|
||||
254,
|
||||
254,
|
||||
254
|
||||
],
|
||||
[
|
||||
253,
|
||||
253,
|
||||
253
|
||||
]
|
||||
],
|
||||
"imageDecodes": true,
|
||||
"whiteCornersPass": true
|
||||
},
|
||||
{
|
||||
"id": "cottage",
|
||||
"path": "Doc/Design/Scene/HomeCamp/cottage.png",
|
||||
"width": 1312,
|
||||
"height": 1199,
|
||||
"sha256": "7d290546cbf0e797c02261226fbcbbb4f8919b34e32fb15e5dae6e4c80e2a1ff",
|
||||
"corners": [
|
||||
[
|
||||
253,
|
||||
253,
|
||||
253
|
||||
],
|
||||
[
|
||||
254,
|
||||
254,
|
||||
254
|
||||
],
|
||||
[
|
||||
254,
|
||||
254,
|
||||
254
|
||||
],
|
||||
[
|
||||
254,
|
||||
253,
|
||||
254
|
||||
]
|
||||
],
|
||||
"imageDecodes": true,
|
||||
"whiteCornersPass": true
|
||||
},
|
||||
{
|
||||
"id": "fountain",
|
||||
"path": "Doc/Design/Scene/HomeCamp/fountain.png",
|
||||
"width": 1402,
|
||||
"height": 1122,
|
||||
"sha256": "2ca038060220c0fb0c35ffd5bda0e87e0fe249c4b074faac4123b520f9bdfd39",
|
||||
"corners": [
|
||||
[
|
||||
253,
|
||||
253,
|
||||
253
|
||||
],
|
||||
[
|
||||
255,
|
||||
255,
|
||||
255
|
||||
],
|
||||
[
|
||||
254,
|
||||
254,
|
||||
254
|
||||
],
|
||||
[
|
||||
254,
|
||||
253,
|
||||
254
|
||||
]
|
||||
],
|
||||
"imageDecodes": true,
|
||||
"whiteCornersPass": true
|
||||
},
|
||||
{
|
||||
"id": "ground",
|
||||
"path": "Doc/Design/Scene/HomeCamp/ground.png",
|
||||
"width": 1536,
|
||||
"height": 1024,
|
||||
"sha256": "c129ff8fe81928e77b834e5603f845329e9a4c3da9018bda9ab217e0aac76291",
|
||||
"corners": [
|
||||
[
|
||||
253,
|
||||
253,
|
||||
253
|
||||
],
|
||||
[
|
||||
254,
|
||||
255,
|
||||
255
|
||||
],
|
||||
[
|
||||
254,
|
||||
254,
|
||||
254
|
||||
],
|
||||
[
|
||||
253,
|
||||
253,
|
||||
253
|
||||
]
|
||||
],
|
||||
"imageDecodes": true,
|
||||
"whiteCornersPass": true
|
||||
},
|
||||
{
|
||||
"id": "backdrop",
|
||||
"path": "Doc/Design/Scene/HomeCamp/backdrop.png",
|
||||
"width": 1536,
|
||||
"height": 1024,
|
||||
"sha256": "e854738987f2b384359317d8713ff4bbdf3d27960abe75661727516198f4ccf5",
|
||||
"corners": [
|
||||
[
|
||||
86,
|
||||
173,
|
||||
249
|
||||
],
|
||||
[
|
||||
105,
|
||||
187,
|
||||
248
|
||||
],
|
||||
[
|
||||
104,
|
||||
132,
|
||||
49
|
||||
],
|
||||
[
|
||||
70,
|
||||
101,
|
||||
35
|
||||
]
|
||||
],
|
||||
"imageDecodes": true
|
||||
}
|
||||
],
|
||||
"referenceSha256": "818447d9f9b0cad2dcd08b7cbecd870d2efd62d43d33e2c43ef2056394f96ada",
|
||||
"foliageCards": [
|
||||
{
|
||||
"id": "tree_card",
|
||||
"image": "Doc/Design/Scene/HomeCamp/tree_card.png",
|
||||
"size": [
|
||||
1200,
|
||||
1310
|
||||
],
|
||||
"sha256": "e2b764b9ec9e50fb0a076e3b764a5c6bced053c631cca0ed3e8e6a7eb04e6f98",
|
||||
"representation": "alpha_clipped_unlit_quad",
|
||||
"alphaCutoff": 0.55,
|
||||
"collider": false,
|
||||
"shadows": false
|
||||
},
|
||||
{
|
||||
"id": "flower_card",
|
||||
"image": "Doc/Design/Scene/HomeCamp/flower_card.png",
|
||||
"size": [
|
||||
1536,
|
||||
1024
|
||||
],
|
||||
"sha256": "f898d822667a7b0b94c23cde0705760fb58c05210e47f4157026c719c841e4b6",
|
||||
"representation": "alpha_clipped_unlit_quad",
|
||||
"alphaCutoff": 0.55,
|
||||
"collider": false,
|
||||
"shadows": false
|
||||
}
|
||||
],
|
||||
"assembly": {
|
||||
"prefab": "Assets/Bundles/Scenes/Town/HomeCamp/HomeCamp.prefab",
|
||||
"scene": "Assets/Bundles/Scenes/Town/HomeCamp/HomeCamp.unity",
|
||||
"triangles": 9987,
|
||||
"placements": 31,
|
||||
"groundCollisionSamples": 25,
|
||||
"groundCollisionPassed": 25,
|
||||
"houses": "Three scaled/rotated instances of visually validated mainhouse",
|
||||
"ground": "Pipeline-authored continuous GroundSurface.asset with ground_surface.png; original Studio ground excluded",
|
||||
"mainHudIntegrated": false,
|
||||
"playModeTested": false,
|
||||
"devicePerformanceTested": false
|
||||
},
|
||||
"qa": {
|
||||
"report": "Tools/output/homecamp_review/verification.txt",
|
||||
"portrait": "Tools/output/homecamp_review/homecamp_portrait.png",
|
||||
"tall": "Tools/output/homecamp_review/homecamp_tall.png",
|
||||
"sourcePartViews": "Tools/output/homecamp_review/*_{front,side,back,perspective}.png",
|
||||
"consoleNewErrors": 0,
|
||||
"originalBootSceneDirty": false,
|
||||
"fixedCamera": true,
|
||||
"longScreenLimitation": "Edge buildings and some distant scenery crop; final HUD integration needs device framing"
|
||||
},
|
||||
"authoredGroundSurface": {
|
||||
"mesh": "Assets/Bundles/Scenes/Town/HomeCamp/GroundSurface.asset",
|
||||
"prefab": "Assets/Bundles/Scenes/Town/HomeCamp/GroundSurface.prefab",
|
||||
"triangles": 2,
|
||||
"dimensions": [
|
||||
36,
|
||||
42
|
||||
],
|
||||
"texture": "Doc/Design/Scene/HomeCamp/ground_surface.png",
|
||||
"textureSize": [
|
||||
1254,
|
||||
1254
|
||||
],
|
||||
"textureSha256": "12dc5f81435cb50438a665fd54cfe50ba321b6a99ad1a3ebb62513964ce7a2e3",
|
||||
"creation": "Unity Pipeline editing cleanup after the five model stages; not Studio UV"
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 1.6 MiB |
|
After Width: | Height: | Size: 1.6 MiB |