197 lines
8.6 KiB
JSON
197 lines
8.6 KiB
JSON
{
|
|
"schemaVersion": 1,
|
|
"sceneId": "Battlefield_Greenfield",
|
|
"selectedDesign": "A",
|
|
"requestedDesign": "A",
|
|
"designOptions": [
|
|
{
|
|
"id": "A",
|
|
"name": "?????",
|
|
"image": "Doc/Design/Scene/Battlefield/Battlefield_Design_A_GreenFork.png",
|
|
"summary": "?????????????????????",
|
|
"generation": {
|
|
"tool": "Tools/gpt_image_generate.py",
|
|
"model": "gpt-image-2.5",
|
|
"promptFile": "Doc/Design/Scene/Battlefield/battlefield_design_prompts.json",
|
|
"status": "generated",
|
|
"output": "Doc/Design/Scene/Battlefield/Battlefield_Design_A_GreenFork.png",
|
|
"statusFile": "Doc/Design/Scene/Battlefield/Battlefield_Design_A_GreenFork_gpt_image_status.json",
|
|
"generatedAtUtc": "2026-10-18T09:36:01Z"
|
|
}
|
|
},
|
|
{
|
|
"id": "B",
|
|
"name": "????",
|
|
"image": "Doc/Design/Scene/Battlefield/Battlefield_Design_B_StreamBridges.png",
|
|
"summary": "??????????????????",
|
|
"generation": {
|
|
"tool": "Tools/gpt_image_generate.py",
|
|
"model": "gpt-image-2.5",
|
|
"promptFile": "Doc/Design/Scene/Battlefield/battlefield_design_prompts.json",
|
|
"status": "pending_api_key"
|
|
}
|
|
},
|
|
{
|
|
"id": "C",
|
|
"name": "????",
|
|
"image": "Doc/Design/Scene/Battlefield/Battlefield_Design_C_OldGarden.png",
|
|
"summary": "???????????????????????",
|
|
"generation": {
|
|
"tool": "Tools/gpt_image_generate.py",
|
|
"model": "gpt-image-2.5",
|
|
"promptFile": "Doc/Design/Scene/Battlefield/battlefield_design_prompts.json",
|
|
"status": "pending_api_key"
|
|
}
|
|
}
|
|
],
|
|
"ground": {
|
|
"type": "ground",
|
|
"designImage": "Doc/Design/Scene/Battlefield/A/ground.png",
|
|
"highPoly": "Tools/output/battlefield/A/ground_model_ref/ground_model_ref.glb",
|
|
"gamePrefab": "Assets/Bundles/Scenes/Prototype/Battlefield/GreenfieldGround.prefab",
|
|
"targetTriangles": 1200,
|
|
"requirements": "Y-up??????????? -Z ?????? MeshCollider?Read/Write ???",
|
|
"designGenerationStatus": "generated",
|
|
"designStatusFile": "Doc/Design/Scene/Battlefield/A/ground_gpt_image_status.json",
|
|
"modelGenerationStatus": "baked",
|
|
"modelStatusFile": "Tools/output/battlefield/A/ground_model_ref_hunyuan_status.json",
|
|
"modelReferenceImage": "Doc/Design/Scene/Battlefield/A/ground_model_ref.png",
|
|
"modelReferenceStatusFile": "Doc/Design/Scene/Battlefield/A/ground_model_ref_gpt_image_status.json",
|
|
"modelInputNote": "布局审核图 ground.png保留;混元图生3D使用单一连续地形参考图 ground_model_ref.png,避免网页端主体不明确。",
|
|
"gameFbx": "Tools/output/battlefield/A/ground_game/ground_model_ref_xpbr/ground_model_ref.fbx",
|
|
"unityFbx": "AIClient/Assets/Bundles/Scenes/Prototype/Battlefield/A/Ground/ground.fbx",
|
|
"modelTriangles": 1200,
|
|
"modelFlow": "Hunyuan 3D 50k -> Blender 5.0 lowpoly 1200 tris -> XPbr",
|
|
"sourceReference": "Doc/Design/Scene/Battlefield/A/ground_model_ref.png"
|
|
},
|
|
"componentTypeLimit": 15,
|
|
"allowedComponentTypes": [
|
|
"tree",
|
|
"rock",
|
|
"bridge",
|
|
"sign",
|
|
"shrub",
|
|
"water",
|
|
"reeds",
|
|
"ruin_wall",
|
|
"arch",
|
|
"flower_patch",
|
|
"fountain",
|
|
"lamp",
|
|
"bench",
|
|
"gate"
|
|
],
|
|
"components": [
|
|
{
|
|
"type": "tree",
|
|
"designImage": "Doc/Design/Scene/Battlefield/A/parts/tree.png",
|
|
"targetTriangles": 700,
|
|
"generationStatus": "generated",
|
|
"statusFile": "Doc/Design/Scene/Battlefield/A/parts/tree_gpt_image_status.json",
|
|
"highPoly": "Tools/output/battlefield/A/tree/tree.glb",
|
|
"gameFbx": "Tools/output/battlefield/A/tree_game/tree_xpbr/tree.fbx",
|
|
"modelTriangles": 700,
|
|
"modelGenerationStatus": "baked",
|
|
"modelStatusFile": "Tools/output/battlefield/A/tree_hunyuan_status.json",
|
|
"prefab": "Assets/Bundles/Scenes/Prototype/Battlefield/A/Components/tree/tree.prefab",
|
|
"label": "tree",
|
|
"position": { "x": -8.0, "y": 0.0, "z": 9.0 },
|
|
"rotation": { "x": 0.0, "y": 15.0, "z": 0.0 },
|
|
"scale": { "x": 2.2, "y": 2.2, "z": 2.2 }
|
|
},
|
|
{
|
|
"type": "rock",
|
|
"designImage": "Doc/Design/Scene/Battlefield/A/parts/rock.png",
|
|
"targetTriangles": 450,
|
|
"generationStatus": "generated",
|
|
"statusFile": "Doc/Design/Scene/Battlefield/A/parts/rock_gpt_image_status.json",
|
|
"highPoly": "Tools/output/battlefield/A/rock/rock.glb",
|
|
"gameFbx": "Tools/output/battlefield/A/rock_game/rock_xpbr/rock.fbx",
|
|
"modelTriangles": 450,
|
|
"modelGenerationStatus": "baked",
|
|
"modelStatusFile": "Tools/output/battlefield/A/rock_hunyuan_status.json",
|
|
"prefab": "Assets/Bundles/Scenes/Prototype/Battlefield/A/Components/rock/rock.prefab",
|
|
"label": "rock",
|
|
"position": { "x": 7.2, "y": 0.0, "z": 5.5 },
|
|
"rotation": { "x": 0.0, "y": 20.0, "z": 0.0 },
|
|
"scale": { "x": 1.6, "y": 1.6, "z": 1.6 }
|
|
},
|
|
{
|
|
"type": "bridge",
|
|
"designImage": "Doc/Design/Scene/Battlefield/A/parts/bridge.png",
|
|
"targetTriangles": 1200,
|
|
"generationStatus": "generated",
|
|
"statusFile": "Doc/Design/Scene/Battlefield/A/parts/bridge_gpt_image_status.json",
|
|
"highPoly": "Tools/output/battlefield/A/bridge/bridge.glb",
|
|
"gameFbx": "Tools/output/battlefield/A/bridge_game/bridge_xpbr/bridge.fbx",
|
|
"modelTriangles": 1200,
|
|
"modelGenerationStatus": "baked",
|
|
"modelStatusFile": "Tools/output/battlefield/A/bridge_hunyuan_status.json",
|
|
"prefab": "Assets/Bundles/Scenes/Prototype/Battlefield/A/Components/bridge/bridge.prefab",
|
|
"label": "bridge",
|
|
"placeInScene": false
|
|
},
|
|
{
|
|
"type": "sign",
|
|
"designImage": "Doc/Design/Scene/Battlefield/A/parts/sign.png",
|
|
"targetTriangles": 450,
|
|
"generationStatus": "generated",
|
|
"statusFile": "Doc/Design/Scene/Battlefield/A/parts/sign_gpt_image_status.json",
|
|
"highPoly": "Tools/output/battlefield/A/sign/sign.glb",
|
|
"gameFbx": "Tools/output/battlefield/A/sign_game/sign_xpbr/sign.fbx",
|
|
"modelTriangles": 448,
|
|
"modelGenerationStatus": "baked",
|
|
"modelStatusFile": "Tools/output/battlefield/A/sign_hunyuan_status.json",
|
|
"prefab": "Assets/Bundles/Scenes/Prototype/Battlefield/A/Components/sign/sign.prefab",
|
|
"label": "sign",
|
|
"position": { "x": -6.2, "y": 0.0, "z": -2.2 },
|
|
"rotation": { "x": 0.0, "y": 180.0, "z": 0.0 },
|
|
"scale": { "x": 1.6, "y": 1.6, "z": 1.6 }
|
|
},
|
|
{
|
|
"type": "shrub",
|
|
"designImage": "Doc/Design/Scene/Battlefield/A/parts/shrub.png",
|
|
"targetTriangles": 450,
|
|
"generationStatus": "generated",
|
|
"statusFile": "Doc/Design/Scene/Battlefield/A/parts/shrub_gpt_image_status.json",
|
|
"highPoly": "Tools/output/battlefield/A/shrub/shrub.glb",
|
|
"gameFbx": "Tools/output/battlefield/A/shrub_game/shrub_xpbr/shrub.fbx",
|
|
"modelTriangles": 422,
|
|
"modelGenerationStatus": "baked",
|
|
"modelStatusFile": "Tools/output/battlefield/A/shrub_hunyuan_status.json",
|
|
"prefab": "Assets/Bundles/Scenes/Prototype/Battlefield/A/Components/shrub/shrub.prefab",
|
|
"label": "shrub",
|
|
"position": { "x": -7.2, "y": 0.0, "z": 0.5 },
|
|
"rotation": { "x": 0.0, "y": -15.0, "z": 0.0 },
|
|
"scale": { "x": 1.3, "y": 1.3, "z": 1.3 }
|
|
}
|
|
],
|
|
"assembly": {
|
|
"outputPrefab": "Assets/Bundles/Scenes/Prototype/Battlefield/Battlefield_Greenfield.prefab",
|
|
"materialsFolder": "Assets/Bundles/Scenes/Prototype/Battlefield/Materials",
|
|
"componentFolder": "Assets/Bundles/Scenes/Prototype/Battlefield/Components",
|
|
"markerFolder": "Assets/Bundles/Scenes/Prototype/Battlefield/Markers"
|
|
},
|
|
"notes": "A 方案地表与 5 类组件已由 Unity Pipeline 生成 Prefab 并拼入 Battlefield_Greenfield,再嵌进开战预制体 PrototypeArena 的 Greenfield 子节点。烘焙地表是朝向 Z 的薄板,场景实例绕 X 轴 -90 度放平,顶面贴 y=0,覆盖三条路线。桥的模型已做好,但场景里不摆桥;路牌在营地侧且 -Z 朝向出生点,树、岩石、灌木放在路线外侧。Greenfield 整棵子树为第 30 层,Play Mode 已验证开战可见。",
|
|
"designGeneration": {
|
|
"tool": "Tools/generate_battlefield_designs.py",
|
|
"imageTool": "Tools/gpt_image_generate.py",
|
|
"model": "gpt-image-2.5",
|
|
"promptFile": "Doc/Design/Scene/Battlefield/battlefield_design_prompts.json",
|
|
"status": "generated",
|
|
"generatedAtUtc": "2026-10-18T09:36:01Z",
|
|
"observedSize": "1254x1254",
|
|
"note": "A ??????????"
|
|
},
|
|
"componentDesignGeneration": {
|
|
"tool": "Tools/generate_battlefield_components.py",
|
|
"model": "gpt-image-2.5",
|
|
"styleReference": "prompt-described",
|
|
"overviewReference": "prompt-described",
|
|
"referenceUpload": "none",
|
|
"status": "generated",
|
|
"generatedAtUtc": "2026-10-18T08:12:13Z",
|
|
"observedSize": "1254x1254"
|
|
}
|
|
}
|