Add prototype gameplay loop with character/battlefield assets and server game APIs.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
udx
2026-10-20 18:50:00 +08:00
co-authored by Cursor
parent 79369e4473
commit 6c64210331
833 changed files with 998079 additions and 1042 deletions
@@ -0,0 +1,50 @@
{
"schemaVersion": 1,
"designId": "A",
"designName": "绿野三岔口",
"styleReference": "Doc/Design/UI/Home/home_camp_source.png",
"overviewReference": "Doc/Design/Scene/Battlefield/Battlefield_Design_A_GreenFork.png",
"tool": "Tools/gpt_image_generate.py",
"model": "gpt-image-2.5",
"aspectRatio": "1:1",
"quality": "auto",
"ground": {
"file": "ground.png",
"targetTriangles": 1200,
"prompt": "Use case: stylized-concept. Asset type: Unity battlefield ground design sheet. Generate a clean top-down ground-only design sheet for the Green Fork compact three-lane fantasy battlefield. Show a grass and warm sand terrain tile with two subtle raised side routes, one central safe route, readable walkable corridors, and a small central crossing footprint. The sheet must communicate the full walkable boundary and three lane guides while remaining a production reference. Match the Candy main-interface style: friendly hand-painted 3D mobile game art, rounded shapes, warm cream and saturated leaf-green palette, soft toy-like shadows, clean readable edges and inviting casual tone. Pure white surround, no buildings, no trees, no rocks, no props, no characters, no UI, no labels, no letters, no numbers, no watermark.",
"modelReferenceFile": "ground_model_ref.png",
"modelReferencePrompt": "Single continuous raised terrain island, 3/4 isometric view, rounded rectangular grass platform with warm sand central path, three connected lanes and small crossing, thick readable side profile, one solid object on white background; no props, characters, labels, or disconnected subjects."
},
"components": [
{
"type": "tree",
"file": "parts/tree.png",
"targetTriangles": 700,
"prompt": "Use case: stylized-concept. Asset type: reusable Unity battlefield prop design sheet. Generate one complete stylized low-detail leafy tree prop on a pure white background for the Green Fork battlefield. Friendly rounded canopy, short warm-brown trunk, soft painted gradients and clear silhouette, 3/4 view, centered, full object visible, no base or ground shadow. Match the Candy main-interface style: warm cream and saturated leaf-green palette, rounded toy-like forms, soft hand-painted 3D mobile game shading and inviting casual readability. No text, no labels, no extra objects, no characters, no watermark."
},
{
"type": "rock",
"file": "parts/rock.png",
"targetTriangles": 450,
"prompt": "Use case: stylized-concept. Asset type: reusable Unity battlefield prop design sheet. Generate one chunky faceted moss-gray rock prop on a pure white background for the Green Fork battlefield. Rounded friendly stylization, warm rim light, simple hand-painted surface, 3/4 view, centered, full object visible, no base or ground shadow. Match the Candy main-interface style with warm cream highlights, saturated leaf-green accents and soft toy-like readability. No text, no labels, no extra objects, no characters, no watermark."
},
{
"type": "bridge",
"file": "parts/bridge.png",
"targetTriangles": 1200,
"prompt": "Use case: stylized-concept. Asset type: reusable Unity battlefield prop design sheet. Generate one small wooden lane bridge prop on a pure white background for the Green Fork battlefield. Friendly rounded planks, warm honey-brown wood, simple side beams, game-ready low-detail silhouette, 3/4 view angled slightly from above, complete object visible, no water and no terrain base. Match the Candy main-interface style with soft rounded edges, warm cream lighting, hand-painted 3D mobile game materials and inviting casual proportions. No text, no labels, no extra objects, no characters, no watermark."
},
{
"type": "sign",
"file": "parts/sign.png",
"targetTriangles": 450,
"prompt": "Use case: stylized-concept. Asset type: reusable Unity battlefield prop design sheet. Generate one blank wooden camp wayfinding sign prop on a pure white background for the Green Fork battlefield. Rounded cream signboard, warm brown post, simple friendly proportions, deliberately no writing or symbols, 3/4 view, centered, complete object visible, no base or ground shadow. Match the Candy main-interface style with rounded toy-like forms, warm cream and honey-brown colors, soft hand-painted shading and clean casual readability. No text, no labels, no extra objects, no characters, no watermark."
},
{
"type": "shrub",
"file": "parts/shrub.png",
"targetTriangles": 450,
"prompt": "Use case: stylized-concept. Asset type: reusable Unity battlefield prop design sheet. Generate one small rounded green shrub cluster prop on a pure white background for the Green Fork battlefield. Soft layered leaves, compact readable silhouette, hand-painted mobile game style, 3/4 view, centered, complete object visible, no base or ground shadow. Match the Candy main-interface style with warm green and cream palette, rounded forms, gentle soft shadows and clear casual readability. No text, no labels, no extra objects, no characters, no watermark."
}
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

@@ -0,0 +1,53 @@
{
"latest": {
"event": "succeeded",
"ts": "2026-10-18T08:08:58Z",
"ok": true,
"id": "15-85f68c04-e2d4-4c7d-877a-0bcacd6b1fcd",
"status": "succeeded",
"progress": 100,
"model": "gpt-image-2.5",
"prompt": "Use case: stylized-concept. Asset type: Unity battlefield ground design sheet. Generate a clean top-down ground-only design sheet for the Green Fork compact three-lane fantasy battlefield. Show a grass and warm sand terrain tile with two subtle raised side routes, one central safe route, readable walkable corridors, and a small central crossing footprint. The sheet must communicate the full walkable boundary and three lane guides while remaining a production reference. Match the Candy main-interface style: friendly hand-painted 3D mobile game art, rounded shapes, warm cream and saturated leaf-green palette, soft toy-like shadows, clean readable edges and inviting casual tone. Pure white surround, no buildings, no trees, no rocks, no props, no characters, no UI, no labels, no letters, no numbers, no watermark.",
"files": [
{
"url": "https://file3.aitohumanize.com/file/1b8676f57f9b4297ad55936398de11cd.png",
"path": "D:\\UD\\AI\\AIGame\\Doc\\Design\\Scene\\Battlefield\\A\\ground.png"
}
]
},
"history": [
{
"event": "started",
"ts": "2026-10-18T08:08:24Z",
"model": "gpt-image-2.5",
"prompt": "Use case: stylized-concept. Asset type: Unity battlefield ground design sheet. Generate a clean top-down ground-only design sheet for the Green Fork compact three-lane fantasy battlefield. Show a grass and warm sand terrain tile with two subtle raised side routes, one central safe route, readable walkable corridors, and a small central crossing footprint. The sheet must communicate the full walkable boundary and three lane guides while remaining a production reference. Match the Candy main-interface style: friendly hand-painted 3D mobile game art, rounded shapes, warm cream and saturated leaf-green palette, soft toy-like shadows, clean readable edges and inviting casual tone. Pure white surround, no buildings, no trees, no rocks, no props, no characters, no UI, no labels, no letters, no numbers, no watermark.",
"output": "D:\\UD\\AI\\AIGame\\Doc\\Design\\Scene\\Battlefield\\A\\ground.png",
"aspect_ratio": "1:1",
"image_count": 0,
"reply_type": "json"
},
{
"event": "submitted",
"ts": "2026-10-18T08:08:55Z",
"id": "15-85f68c04-e2d4-4c7d-877a-0bcacd6b1fcd",
"status": "succeeded",
"progress": 100
},
{
"event": "succeeded",
"ts": "2026-10-18T08:08:58Z",
"ok": true,
"id": "15-85f68c04-e2d4-4c7d-877a-0bcacd6b1fcd",
"status": "succeeded",
"progress": 100,
"model": "gpt-image-2.5",
"prompt": "Use case: stylized-concept. Asset type: Unity battlefield ground design sheet. Generate a clean top-down ground-only design sheet for the Green Fork compact three-lane fantasy battlefield. Show a grass and warm sand terrain tile with two subtle raised side routes, one central safe route, readable walkable corridors, and a small central crossing footprint. The sheet must communicate the full walkable boundary and three lane guides while remaining a production reference. Match the Candy main-interface style: friendly hand-painted 3D mobile game art, rounded shapes, warm cream and saturated leaf-green palette, soft toy-like shadows, clean readable edges and inviting casual tone. Pure white surround, no buildings, no trees, no rocks, no props, no characters, no UI, no labels, no letters, no numbers, no watermark.",
"files": [
{
"url": "https://file3.aitohumanize.com/file/1b8676f57f9b4297ad55936398de11cd.png",
"path": "D:\\UD\\AI\\AIGame\\Doc\\Design\\Scene\\Battlefield\\A\\ground.png"
}
]
}
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

@@ -0,0 +1,53 @@
{
"latest": {
"event": "succeeded",
"ts": "2026-10-18T11:55:26Z",
"ok": true,
"id": "6-a9307612-352b-47cd-9280-6a6cc66b2eb2",
"status": "succeeded",
"progress": 100,
"model": "gpt-image-2.5",
"prompt": "Use case: stylized-concept terrain asset reference for Unity image-to-3D.\nGenerate one single continuous raised terrain island as a clean 3/4 isometric game asset on a pure white background. The object is a compact Candy-style fantasy battlefield ground platform: rounded rectangular grass island with a warm sand-colored central path carved into the surface, three broad connected lane corridors and a small central crossing, shallow soft terrain height differences, thick readable edge profile, no separate objects. Show the whole platform, centered, with a slight camera angle that clearly reveals the top and side thickness so it reads as one solid 3D terrain mesh. Friendly hand-painted 3D mobile game art, warm cream, saturated leaf-green, rounded toy-like forms, soft shadows, clean silhouette, no trees, rocks, bridges, signs, shrubs, characters, buildings, UI, labels, letters, numbers, watermark, or multiple disconnected subjects.",
"files": [
{
"url": "https://file5.aitohumanize.com/file/2699db80e8d140ce98d610d17134c779.png",
"path": "D:\\UD\\AI\\AIGame\\Doc\\Design\\Scene\\Battlefield\\A\\ground_model_ref.png"
}
]
},
"history": [
{
"event": "started",
"ts": "2026-10-18T11:54:50Z",
"model": "gpt-image-2.5",
"prompt": "Use case: stylized-concept terrain asset reference for Unity image-to-3D.\nGenerate one single continuous raised terrain island as a clean 3/4 isometric game asset on a pure white background. The object is a compact Candy-style fantasy battlefield ground platform: rounded rectangular grass island with a warm sand-colored central path carved into the surface, three broad connected lane corridors and a small central crossing, shallow soft terrain height differences, thick readable edge profile, no separate objects. Show the whole platform, centered, with a slight camera angle that clearly reveals the top and side thickness so it reads as one solid 3D terrain mesh. Friendly hand-painted 3D mobile game art, warm cream, saturated leaf-green, rounded toy-like forms, soft shadows, clean silhouette, no trees, rocks, bridges, signs, shrubs, characters, buildings, UI, labels, letters, numbers, watermark, or multiple disconnected subjects.",
"output": "Doc/Design/Scene/Battlefield/A/ground_model_ref.png",
"aspect_ratio": "1:1",
"image_count": 0,
"reply_type": "json"
},
{
"event": "submitted",
"ts": "2026-10-18T11:55:23Z",
"id": "6-a9307612-352b-47cd-9280-6a6cc66b2eb2",
"status": "succeeded",
"progress": 100
},
{
"event": "succeeded",
"ts": "2026-10-18T11:55:26Z",
"ok": true,
"id": "6-a9307612-352b-47cd-9280-6a6cc66b2eb2",
"status": "succeeded",
"progress": 100,
"model": "gpt-image-2.5",
"prompt": "Use case: stylized-concept terrain asset reference for Unity image-to-3D.\nGenerate one single continuous raised terrain island as a clean 3/4 isometric game asset on a pure white background. The object is a compact Candy-style fantasy battlefield ground platform: rounded rectangular grass island with a warm sand-colored central path carved into the surface, three broad connected lane corridors and a small central crossing, shallow soft terrain height differences, thick readable edge profile, no separate objects. Show the whole platform, centered, with a slight camera angle that clearly reveals the top and side thickness so it reads as one solid 3D terrain mesh. Friendly hand-painted 3D mobile game art, warm cream, saturated leaf-green, rounded toy-like forms, soft shadows, clean silhouette, no trees, rocks, bridges, signs, shrubs, characters, buildings, UI, labels, letters, numbers, watermark, or multiple disconnected subjects.",
"files": [
{
"url": "https://file5.aitohumanize.com/file/2699db80e8d140ce98d610d17134c779.png",
"path": "D:\\UD\\AI\\AIGame\\Doc\\Design\\Scene\\Battlefield\\A\\ground_model_ref.png"
}
]
}
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

@@ -0,0 +1,53 @@
{
"latest": {
"event": "succeeded",
"ts": "2026-10-18T08:10:57Z",
"ok": true,
"id": "9-42380954-6fd5-4f0b-8670-7911544840f6",
"status": "succeeded",
"progress": 100,
"model": "gpt-image-2.5",
"prompt": "Use case: stylized-concept. Asset type: reusable Unity battlefield prop design sheet. Generate one small wooden lane bridge prop on a pure white background for the Green Fork battlefield. Friendly rounded planks, warm honey-brown wood, simple side beams, game-ready low-detail silhouette, 3/4 view angled slightly from above, complete object visible, no water and no terrain base. Match the Candy main-interface style with soft rounded edges, warm cream lighting, hand-painted 3D mobile game materials and inviting casual proportions. No text, no labels, no extra objects, no characters, no watermark.",
"files": [
{
"url": "https://file1.aitohumanize.com/file/3879618ac16d4429bb1b3cf953224ad4.png",
"path": "D:\\UD\\AI\\AIGame\\Doc\\Design\\Scene\\Battlefield\\A\\parts\\bridge.png"
}
]
},
"history": [
{
"event": "started",
"ts": "2026-10-18T08:10:20Z",
"model": "gpt-image-2.5",
"prompt": "Use case: stylized-concept. Asset type: reusable Unity battlefield prop design sheet. Generate one small wooden lane bridge prop on a pure white background for the Green Fork battlefield. Friendly rounded planks, warm honey-brown wood, simple side beams, game-ready low-detail silhouette, 3/4 view angled slightly from above, complete object visible, no water and no terrain base. Match the Candy main-interface style with soft rounded edges, warm cream lighting, hand-painted 3D mobile game materials and inviting casual proportions. No text, no labels, no extra objects, no characters, no watermark.",
"output": "D:\\UD\\AI\\AIGame\\Doc\\Design\\Scene\\Battlefield\\A\\parts\\bridge.png",
"aspect_ratio": "1:1",
"image_count": 0,
"reply_type": "json"
},
{
"event": "submitted",
"ts": "2026-10-18T08:10:56Z",
"id": "9-42380954-6fd5-4f0b-8670-7911544840f6",
"status": "succeeded",
"progress": 100
},
{
"event": "succeeded",
"ts": "2026-10-18T08:10:57Z",
"ok": true,
"id": "9-42380954-6fd5-4f0b-8670-7911544840f6",
"status": "succeeded",
"progress": 100,
"model": "gpt-image-2.5",
"prompt": "Use case: stylized-concept. Asset type: reusable Unity battlefield prop design sheet. Generate one small wooden lane bridge prop on a pure white background for the Green Fork battlefield. Friendly rounded planks, warm honey-brown wood, simple side beams, game-ready low-detail silhouette, 3/4 view angled slightly from above, complete object visible, no water and no terrain base. Match the Candy main-interface style with soft rounded edges, warm cream lighting, hand-painted 3D mobile game materials and inviting casual proportions. No text, no labels, no extra objects, no characters, no watermark.",
"files": [
{
"url": "https://file1.aitohumanize.com/file/3879618ac16d4429bb1b3cf953224ad4.png",
"path": "D:\\UD\\AI\\AIGame\\Doc\\Design\\Scene\\Battlefield\\A\\parts\\bridge.png"
}
]
}
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

@@ -0,0 +1,53 @@
{
"latest": {
"event": "succeeded",
"ts": "2026-10-18T08:10:20Z",
"ok": true,
"id": "1-79a0ee04-73f7-43ff-afb1-f742fd457a88",
"status": "succeeded",
"progress": 100,
"model": "gpt-image-2.5",
"prompt": "Use case: stylized-concept. Asset type: reusable Unity battlefield prop design sheet. Generate one chunky faceted moss-gray rock prop on a pure white background for the Green Fork battlefield. Rounded friendly stylization, warm rim light, simple hand-painted surface, 3/4 view, centered, full object visible, no base or ground shadow. Match the Candy main-interface style with warm cream highlights, saturated leaf-green accents and soft toy-like readability. No text, no labels, no extra objects, no characters, no watermark.",
"files": [
{
"url": "https://file6.aitohumanize.com/file/180224b9dbd2484a8c970095e9c5ec50.png",
"path": "D:\\UD\\AI\\AIGame\\Doc\\Design\\Scene\\Battlefield\\A\\parts\\rock.png"
}
]
},
"history": [
{
"event": "started",
"ts": "2026-10-18T08:09:30Z",
"model": "gpt-image-2.5",
"prompt": "Use case: stylized-concept. Asset type: reusable Unity battlefield prop design sheet. Generate one chunky faceted moss-gray rock prop on a pure white background for the Green Fork battlefield. Rounded friendly stylization, warm rim light, simple hand-painted surface, 3/4 view, centered, full object visible, no base or ground shadow. Match the Candy main-interface style with warm cream highlights, saturated leaf-green accents and soft toy-like readability. No text, no labels, no extra objects, no characters, no watermark.",
"output": "D:\\UD\\AI\\AIGame\\Doc\\Design\\Scene\\Battlefield\\A\\parts\\rock.png",
"aspect_ratio": "1:1",
"image_count": 0,
"reply_type": "json"
},
{
"event": "submitted",
"ts": "2026-10-18T08:10:18Z",
"id": "1-79a0ee04-73f7-43ff-afb1-f742fd457a88",
"status": "succeeded",
"progress": 100
},
{
"event": "succeeded",
"ts": "2026-10-18T08:10:20Z",
"ok": true,
"id": "1-79a0ee04-73f7-43ff-afb1-f742fd457a88",
"status": "succeeded",
"progress": 100,
"model": "gpt-image-2.5",
"prompt": "Use case: stylized-concept. Asset type: reusable Unity battlefield prop design sheet. Generate one chunky faceted moss-gray rock prop on a pure white background for the Green Fork battlefield. Rounded friendly stylization, warm rim light, simple hand-painted surface, 3/4 view, centered, full object visible, no base or ground shadow. Match the Candy main-interface style with warm cream highlights, saturated leaf-green accents and soft toy-like readability. No text, no labels, no extra objects, no characters, no watermark.",
"files": [
{
"url": "https://file6.aitohumanize.com/file/180224b9dbd2484a8c970095e9c5ec50.png",
"path": "D:\\UD\\AI\\AIGame\\Doc\\Design\\Scene\\Battlefield\\A\\parts\\rock.png"
}
]
}
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

@@ -0,0 +1,53 @@
{
"latest": {
"event": "succeeded",
"ts": "2026-10-18T08:12:13Z",
"ok": true,
"id": "2-ddcdb1de-c128-4839-afd1-b8e2c944dcf2",
"status": "succeeded",
"progress": 100,
"model": "gpt-image-2.5",
"prompt": "Use case: stylized-concept. Asset type: reusable Unity battlefield prop design sheet. Generate one small rounded green shrub cluster prop on a pure white background for the Green Fork battlefield. Soft layered leaves, compact readable silhouette, hand-painted mobile game style, 3/4 view, centered, complete object visible, no base or ground shadow. Match the Candy main-interface style with warm green and cream palette, rounded forms, gentle soft shadows and clear casual readability. No text, no labels, no extra objects, no characters, no watermark.",
"files": [
{
"url": "https://file8.aitohumanize.com/file/f0b2ef5c2f714956851fa065d1afa2d1.png",
"path": "D:\\UD\\AI\\AIGame\\Doc\\Design\\Scene\\Battlefield\\A\\parts\\shrub.png"
}
]
},
"history": [
{
"event": "started",
"ts": "2026-10-18T08:11:29Z",
"model": "gpt-image-2.5",
"prompt": "Use case: stylized-concept. Asset type: reusable Unity battlefield prop design sheet. Generate one small rounded green shrub cluster prop on a pure white background for the Green Fork battlefield. Soft layered leaves, compact readable silhouette, hand-painted mobile game style, 3/4 view, centered, complete object visible, no base or ground shadow. Match the Candy main-interface style with warm green and cream palette, rounded forms, gentle soft shadows and clear casual readability. No text, no labels, no extra objects, no characters, no watermark.",
"output": "D:\\UD\\AI\\AIGame\\Doc\\Design\\Scene\\Battlefield\\A\\parts\\shrub.png",
"aspect_ratio": "1:1",
"image_count": 0,
"reply_type": "json"
},
{
"event": "submitted",
"ts": "2026-10-18T08:12:11Z",
"id": "2-ddcdb1de-c128-4839-afd1-b8e2c944dcf2",
"status": "succeeded",
"progress": 100
},
{
"event": "succeeded",
"ts": "2026-10-18T08:12:13Z",
"ok": true,
"id": "2-ddcdb1de-c128-4839-afd1-b8e2c944dcf2",
"status": "succeeded",
"progress": 100,
"model": "gpt-image-2.5",
"prompt": "Use case: stylized-concept. Asset type: reusable Unity battlefield prop design sheet. Generate one small rounded green shrub cluster prop on a pure white background for the Green Fork battlefield. Soft layered leaves, compact readable silhouette, hand-painted mobile game style, 3/4 view, centered, complete object visible, no base or ground shadow. Match the Candy main-interface style with warm green and cream palette, rounded forms, gentle soft shadows and clear casual readability. No text, no labels, no extra objects, no characters, no watermark.",
"files": [
{
"url": "https://file8.aitohumanize.com/file/f0b2ef5c2f714956851fa065d1afa2d1.png",
"path": "D:\\UD\\AI\\AIGame\\Doc\\Design\\Scene\\Battlefield\\A\\parts\\shrub.png"
}
]
}
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

@@ -0,0 +1,53 @@
{
"latest": {
"event": "succeeded",
"ts": "2026-10-18T08:11:29Z",
"ok": true,
"id": "16-9ccb323f-86cc-4b4d-91f0-8a8c7515dee8",
"status": "succeeded",
"progress": 100,
"model": "gpt-image-2.5",
"prompt": "Use case: stylized-concept. Asset type: reusable Unity battlefield prop design sheet. Generate one blank wooden camp wayfinding sign prop on a pure white background for the Green Fork battlefield. Rounded cream signboard, warm brown post, simple friendly proportions, deliberately no writing or symbols, 3/4 view, centered, complete object visible, no base or ground shadow. Match the Candy main-interface style with rounded toy-like forms, warm cream and honey-brown colors, soft hand-painted shading and clean casual readability. No text, no labels, no extra objects, no characters, no watermark.",
"files": [
{
"url": "https://file7.aitohumanize.com/file/0d1bc3d0c16548f38be80972e55e2d00.png",
"path": "D:\\UD\\AI\\AIGame\\Doc\\Design\\Scene\\Battlefield\\A\\parts\\sign.png"
}
]
},
"history": [
{
"event": "started",
"ts": "2026-10-18T08:10:58Z",
"model": "gpt-image-2.5",
"prompt": "Use case: stylized-concept. Asset type: reusable Unity battlefield prop design sheet. Generate one blank wooden camp wayfinding sign prop on a pure white background for the Green Fork battlefield. Rounded cream signboard, warm brown post, simple friendly proportions, deliberately no writing or symbols, 3/4 view, centered, complete object visible, no base or ground shadow. Match the Candy main-interface style with rounded toy-like forms, warm cream and honey-brown colors, soft hand-painted shading and clean casual readability. No text, no labels, no extra objects, no characters, no watermark.",
"output": "D:\\UD\\AI\\AIGame\\Doc\\Design\\Scene\\Battlefield\\A\\parts\\sign.png",
"aspect_ratio": "1:1",
"image_count": 0,
"reply_type": "json"
},
{
"event": "submitted",
"ts": "2026-10-18T08:11:27Z",
"id": "16-9ccb323f-86cc-4b4d-91f0-8a8c7515dee8",
"status": "succeeded",
"progress": 100
},
{
"event": "succeeded",
"ts": "2026-10-18T08:11:29Z",
"ok": true,
"id": "16-9ccb323f-86cc-4b4d-91f0-8a8c7515dee8",
"status": "succeeded",
"progress": 100,
"model": "gpt-image-2.5",
"prompt": "Use case: stylized-concept. Asset type: reusable Unity battlefield prop design sheet. Generate one blank wooden camp wayfinding sign prop on a pure white background for the Green Fork battlefield. Rounded cream signboard, warm brown post, simple friendly proportions, deliberately no writing or symbols, 3/4 view, centered, complete object visible, no base or ground shadow. Match the Candy main-interface style with rounded toy-like forms, warm cream and honey-brown colors, soft hand-painted shading and clean casual readability. No text, no labels, no extra objects, no characters, no watermark.",
"files": [
{
"url": "https://file7.aitohumanize.com/file/0d1bc3d0c16548f38be80972e55e2d00.png",
"path": "D:\\UD\\AI\\AIGame\\Doc\\Design\\Scene\\Battlefield\\A\\parts\\sign.png"
}
]
}
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

@@ -0,0 +1,53 @@
{
"latest": {
"event": "succeeded",
"ts": "2026-10-18T08:09:29Z",
"ok": true,
"id": "2-5a4f92db-84c8-4df7-b7db-0ef455950885",
"status": "succeeded",
"progress": 100,
"model": "gpt-image-2.5",
"prompt": "Use case: stylized-concept. Asset type: reusable Unity battlefield prop design sheet. Generate one complete stylized low-detail leafy tree prop on a pure white background for the Green Fork battlefield. Friendly rounded canopy, short warm-brown trunk, soft painted gradients and clear silhouette, 3/4 view, centered, full object visible, no base or ground shadow. Match the Candy main-interface style: warm cream and saturated leaf-green palette, rounded toy-like forms, soft hand-painted 3D mobile game shading and inviting casual readability. No text, no labels, no extra objects, no characters, no watermark.",
"files": [
{
"url": "https://file7.aitohumanize.com/file/8f42d68ad6254f62a927dc45e5b7b6d8.png",
"path": "D:\\UD\\AI\\AIGame\\Doc\\Design\\Scene\\Battlefield\\A\\parts\\tree.png"
}
]
},
"history": [
{
"event": "started",
"ts": "2026-10-18T08:08:58Z",
"model": "gpt-image-2.5",
"prompt": "Use case: stylized-concept. Asset type: reusable Unity battlefield prop design sheet. Generate one complete stylized low-detail leafy tree prop on a pure white background for the Green Fork battlefield. Friendly rounded canopy, short warm-brown trunk, soft painted gradients and clear silhouette, 3/4 view, centered, full object visible, no base or ground shadow. Match the Candy main-interface style: warm cream and saturated leaf-green palette, rounded toy-like forms, soft hand-painted 3D mobile game shading and inviting casual readability. No text, no labels, no extra objects, no characters, no watermark.",
"output": "D:\\UD\\AI\\AIGame\\Doc\\Design\\Scene\\Battlefield\\A\\parts\\tree.png",
"aspect_ratio": "1:1",
"image_count": 0,
"reply_type": "json"
},
{
"event": "submitted",
"ts": "2026-10-18T08:09:28Z",
"id": "2-5a4f92db-84c8-4df7-b7db-0ef455950885",
"status": "succeeded",
"progress": 100
},
{
"event": "succeeded",
"ts": "2026-10-18T08:09:29Z",
"ok": true,
"id": "2-5a4f92db-84c8-4df7-b7db-0ef455950885",
"status": "succeeded",
"progress": 100,
"model": "gpt-image-2.5",
"prompt": "Use case: stylized-concept. Asset type: reusable Unity battlefield prop design sheet. Generate one complete stylized low-detail leafy tree prop on a pure white background for the Green Fork battlefield. Friendly rounded canopy, short warm-brown trunk, soft painted gradients and clear silhouette, 3/4 view, centered, full object visible, no base or ground shadow. Match the Candy main-interface style: warm cream and saturated leaf-green palette, rounded toy-like forms, soft hand-painted 3D mobile game shading and inviting casual readability. No text, no labels, no extra objects, no characters, no watermark.",
"files": [
{
"url": "https://file7.aitohumanize.com/file/8f42d68ad6254f62a927dc45e5b7b6d8.png",
"path": "D:\\UD\\AI\\AIGame\\Doc\\Design\\Scene\\Battlefield\\A\\parts\\tree.png"
}
]
}
]
}
@@ -0,0 +1,93 @@
{
"schemaVersion": 1,
"designId": "B",
"designName": "Stream Bridges",
"styleReference": "Doc/Design/UI/Home/home_camp_source.png",
"overviewReference": "Doc/Design/Scene/Battlefield/Battlefield_Design_B_StreamBridges.png",
"tool": "Tools/gpt_image_generate.py",
"model": "gpt-image-2.5",
"aspectRatio": "1:1",
"quality": "auto",
"ground": {
"file": "ground.png",
"targetTriangles": 1200,
"prompt": "Unity battlefield ground design sheet for Stream Bridges: two grassy banks and one continuous shallow blue stream through the middle, three connected bridge footprints, readable three-lane walkable routes, pure white surround, no props, no characters, no text. Friendly warm Candy-style hand-painted mobile game art.",
"placements": []
},
"components": [
{
"type": "tree",
"file": "parts/tree.png",
"targetTriangles": 700,
"prompt": "One reusable rounded leafy tree prop on a pure white background, warm Candy-style low-detail 3/4 view, no ground, no text.",
"placements": [
{ "name": "tree_left_a", "position": { "x": -8.0, "y": 0.0, "z": 8.0 }, "rotation": { "x": 0.0, "y": 15.0, "z": 0.0 }, "scale": { "x": 2.2, "y": 2.2, "z": 2.2 } },
{ "name": "tree_right_a", "position": { "x": 8.0, "y": 0.0, "z": 8.0 }, "rotation": { "x": 0.0, "y": -15.0, "z": 0.0 }, "scale": { "x": 2.2, "y": 2.2, "z": 2.2 } },
{ "name": "tree_left_b", "position": { "x": -8.0, "y": 0.0, "z": -7.0 }, "rotation": { "x": 0.0, "y": 10.0, "z": 0.0 }, "scale": { "x": 2.0, "y": 2.0, "z": 2.0 } },
{ "name": "tree_right_b", "position": { "x": 8.0, "y": 0.0, "z": -7.0 }, "rotation": { "x": 0.0, "y": -10.0, "z": 0.0 }, "scale": { "x": 2.0, "y": 2.0, "z": 2.0 } }
]
},
{
"type": "rock",
"file": "parts/rock.png",
"targetTriangles": 450,
"prompt": "One chunky friendly wetland rock prop on a pure white background, moss-gray hand-painted low-detail 3/4 view, no ground, no text.",
"placements": [
{ "name": "rock_left", "position": { "x": -4.7, "y": 0.0, "z": 4.0 }, "rotation": { "x": 0.0, "y": 20.0, "z": 0.0 }, "scale": { "x": 1.4, "y": 1.4, "z": 1.4 } },
{ "name": "rock_right", "position": { "x": 4.8, "y": 0.0, "z": -2.5 }, "rotation": { "x": 0.0, "y": -15.0, "z": 0.0 }, "scale": { "x": 1.2, "y": 1.2, "z": 1.2 } }
]
},
{
"type": "bridge",
"file": "parts/bridge.png",
"targetTriangles": 1200,
"prompt": "One small wooden bridge prop on a pure white background, warm rounded planks, low-detail 3/4 view, no water, no ground, no text.",
"placements": [
{ "name": "bridge_north", "position": { "x": 0.0, "y": 0.0, "z": 7.0 }, "rotation": { "x": 0.0, "y": 0.0, "z": 0.0 }, "scale": { "x": 1.0, "y": 1.0, "z": 1.0 } },
{ "name": "bridge_mid", "position": { "x": 0.0, "y": 0.0, "z": 0.0 }, "rotation": { "x": 0.0, "y": 0.0, "z": 0.0 }, "scale": { "x": 1.0, "y": 1.0, "z": 1.0 } },
{ "name": "bridge_south", "position": { "x": 0.0, "y": 0.0, "z": -7.0 }, "rotation": { "x": 0.0, "y": 0.0, "z": 0.0 }, "scale": { "x": 1.0, "y": 1.0, "z": 1.0 } }
]
},
{
"type": "water",
"reuseExisting": false,
"file": "parts/water.png",
"targetTriangles": 900,
"prompt": "One continuous shallow blue stream terrain piece for a Unity battlefield, stylized low-detail water surface with readable bank edge, pure white background, no bridge, no characters, no text.",
"position": { "x": 0.0, "y": 0.0, "z": 0.0 },
"rotation": { "x": 0.0, "y": 0.0, "z": 0.0 },
"scale": { "x": 1.0, "y": 1.0, "z": 1.0 }
},
{
"type": "reeds",
"reuseExisting": false,
"file": "parts/reeds.png",
"targetTriangles": 350,
"prompt": "One compact cluster of friendly wetland reeds on a pure white background, low-detail green blades, 3/4 view, no ground, no text.",
"placements": [
{ "name": "reeds_left", "position": { "x": -3.8, "y": 0.0, "z": 7.8 }, "rotation": { "x": 0.0, "y": 15.0, "z": 0.0 }, "scale": { "x": 1.0, "y": 1.0, "z": 1.0 } },
{ "name": "reeds_right", "position": { "x": 3.8, "y": 0.0, "z": -5.0 }, "rotation": { "x": 0.0, "y": -10.0, "z": 0.0 }, "scale": { "x": 1.0, "y": 1.0, "z": 1.0 } }
]
},
{
"type": "gate",
"reuseExisting": false,
"file": "parts/gate.png",
"targetTriangles": 900,
"prompt": "One small water gate landmark prop on a pure white background, rounded warm wood and stone, stylized low-detail 3/4 view, no text.",
"position": { "x": -6.2, "y": 0.0, "z": 2.8 },
"rotation": { "x": 0.0, "y": 90.0, "z": 0.0 },
"scale": { "x": 1.4, "y": 1.4, "z": 1.4 }
},
{
"type": "lamp",
"reuseExisting": false,
"file": "parts/lamp.png",
"targetTriangles": 500,
"prompt": "One compact beacon lamp tower prop on a pure white background, warm wood post and soft yellow beacon, rounded low-detail 3/4 view, no text.",
"position": { "x": 6.3, "y": 0.0, "z": -3.2 },
"rotation": { "x": 0.0, "y": -90.0, "z": 0.0 },
"scale": { "x": 1.2, "y": 1.2, "z": 1.2 }
}
]
}
@@ -0,0 +1,104 @@
# 战场场景生成流程
这套流程把“想法、分件、模型、Unity 场景”分成四个有门槛的阶段。当前先完成设计图选择,未选择方案时不会调用微信网页图生 3D,也不会拼装最终 Prefab。
## 1. 设计图阶段:三选一
三张方案图必须通过项目内 `Tools/gpt_image_generate.py` 调用 `gpt-image-2.5` 生成。它们是 1024×1024 的俯视概念图,供确认路线、地表和组件类型,不作为运行时贴图。旧版 PIL 绘制草图只能作为历史预览,不能作为设计门输入。
| 方案 | 图片 | 重点 | 风险 |
| --- | --- | --- | --- |
| A 绿野三岔口 | `Battlefield_Design_A_GreenFork.png` | 中央安全线、左右高差支路、教学读路清晰 | 地标辨识度较弱 |
| B 溪谷浮桥 | `Battlefield_Design_B_StreamBridges.png` | 水面横切、三座浮桥、元素主题明确 | 桥和水面碰撞验证更复杂 |
| C 旧城花园 | `Battlefield_Design_C_OldGarden.png` | 残墙拱门、中央花园、首领关地标 | 墙体遮挡和批次更复杂 |
生成命令:
```powershell
# 先在当前 PowerShell 配置 GRSAI_API_KEY 或 GPT_IMAGE_API_KEY
python Tools/generate_battlefield_designs.py --design all
```
提示词和模型记录在 `Doc/Design/Scene/Battlefield/battlefield_design_prompts.json`,每张图旁边会写入 `*_gpt_image_status.json`。当前已选择第 1 张方案,即 A;脚本在生成 A 后会把 `selectedDesign` 登记为 `A`,再进入下一阶段。
## 2. 分件设计图阶段
从选中的总览图归纳组件类别。A 方案先使用树、岩石、桥、路牌、灌木 5 类;地表单独设计、单独图生 3D、单独减面、单独 Prefab,不计入装饰组件上限。组件图继续调用 `gpt-image-2.5`,以提示词描述主界面 Candy 的造型、色彩和软阴影;默认不上传项目内部参考图。
组件拆分前先扫描 `AIClient/Assets/Bundles/`。若组件类型已有同名 Unity Prefab,则登记 `generationStatus: reused` 并跳过该组件新设计图;只有资源库没有的类型才生成新的组件设计图。默认执行 `python Tools/generate_battlefield_components.py --design <ID>`,需要重做已有组件时显式增加 `--force-new-components`。
推荐清单:树、岩石、桥、路牌、灌木、水面、芦苇、残墙、拱门、花坛、喷泉、路灯、长椅、栅门。选定方案可以删减,但不能增加未登记的新类别。每类分件图放在:
```text
Doc/Design/Scene/Battlefield/<方案ID>/parts/<type>.png
```
分件图要求:纯白背景、单件、3/4 视角、完整入画、无文字、无地面底座;地表图单独放在 `<方案ID>/ground.png`,画出俯视边界、坡度、可行走区域和三条路线。
生成 A 方案组件图:
```powershell
python Tools/generate_battlefield_components.py --design A
```
提示词记录在 `Doc/Design/Scene/Battlefield/A/battlefield_component_prompts.json`。生成完成后先在窗口审核 `A/ground.png` 与 `A/parts/*.png`,审核通过再进入混元 3D 图生模型阶段。
当前进度:树、岩石、桥、路牌、灌木 5 类与独立地表均已完成混元 50k GLB、纹理校验、Blender 减面与 XPbr 烘焙。Unity 2022.3.62f3 已通过 Pipeline 生成组件 Prefab、`GreenfieldGround.prefab` 和 `Battlefield_Greenfield.prefab`。烘焙地表原是朝向 Z 的薄板,场景实例绕 X 轴 -90 度放平,顶面贴在 y=0,并覆盖三条路线。`AttachGreenfield.Build` 已把该场景嵌进开战预制体 `PrototypeArena`,原来的方块地面已关闭。按现有战斗相机(正交 9.5,看向路线中段)核对:三条路线落在土路上。桥模型保留,场景中不再摆放。部署标记和青色防线仍在路面上。Greenfield 整棵子树必须在第 30 层,否则开战相机看不到地表。Play Mode 隔离服已验证开战加载无桥绿野,截图 `Assets/Screenshots/battlefield_play_battle.png`。
## 3. 微信网页图生 3D 与减面
分件图确认后,逐类执行项目现有的腾讯混元网页流程。每个模型都保留原始任务目录和日志,不能直接把高模放入 Unity:
```powershell
# 1) 微信扫码登录(首次或凭证过期时)
python Tools/hunyuan_3d_generate.py --login
# 2) 图生 GLB 高模(每类一份;不超过 15 类 + 地表)
python Tools/hunyuan_3d_generate.py `
--image Doc/Design/Scene/Battlefield/<方案ID>/parts/tree.png `
--faces 50k `
--output Tools/output/battlefield/<方案ID>/tree
# 3) 减面、重展 UV、烘焙、XPbr 收尾
python Tools/model_tools/model_lowpoly_bake.py `
Tools/output/battlefield/<方案ID>/tree/generated.glb `
-o Tools/output/battlefield/<方案ID>/tree_game `
--tris 700 --size 1024
```
`model_lowpoly_bake.py` 的具体目标面数按组件登记:地表 800~1500、地标 1200~2000、普通装饰 300~1000、重复小件 300~600;命令中的 `--tris` 每次填写一个确定整数。模型验收必须通过 GLB 文件头、内嵌贴图解码、低模三角面数、UV、包围盒和坐标检查。
最终 Unity 输入目录:
```text
AIClient/Assets/Bundles/Scenes/Prototype/Battlefield/<方案ID>/
Ground/<ground>.fbx + XPbr 贴图 + 材质
Components/<type>/<type>.fbx + XPbr 贴图 + 材质
```
FBX 统一为 Y-up、原点在底面中点、局部 -Z 为正面。摆放时用 -Z 朝向目标;地表使用非凸 MeshCollider,其他组件不添加运行时生成的临时网格。
## 4. Unity Prefab 拼装
模型导入和 Prefab 操作只能通过 Unity Pipeline。`AIClient/AgentScripts/BuildBattlefieldScene.cs` 会:
1. 读取 manifest,拒绝空 `selectedDesign`、重复类型、超过 15 类或缺少独立地表。
2. 检查 Ground 与 Components 的 Prefab、材质和碰撞体。
3. 按方案布局生成根节点、地表、路线标记、出生点、终点和可选装饰实例。
4. 保存 `Assets/Bundles/Scenes/Prototype/Battlefield/Battlefield_Greenfield.prefab`,并接入 Art/UI 资源收集。
场景根节点固定包含:`Ground`、`Routes/Lane0..2`、`Gameplay/SpawnPoints`、`Gameplay/GoalPoints`、`Decorations`、`Lighting`。战斗代码只读取路线与标记,不在运行时生成业务场景骨架。
## 验收与交付门槛
- 设计门:三图中选一,确认路线、视线、地标和组件清单。
- 分件门:所有组件图为纯白单件图;类别数 ≤15;地表独立。
- 模型门:GLB 检查、低模面数和坐标约束通过;每个模型有来源日志。
- Unity 门:Prefab 由 Pipeline 保存,地表碰撞可用,三路线出生/终点可定位,Art Bundle 收集成功。
- 性能门:首屏视锥内控制 Draw Call、贴图和实例数,真机再按 G3 预算验收。
选择结果、分件图、模型路径、低模面数和 Prefab 路径都写入 manifest;任何一步没有登记,流程不算完成。
### Unity Pipeline 入口(编辑器可用后)
组件与独立地表统一执行:unity command --project-path D:/UD/AI/AIGame/AIClient run_script --file AgentScripts/BuildBattlefieldAssets.cs --entry BuildBattlefieldAssets.BuildAll。其中 BuildGround 只在 Assets/Bundles/Scenes/Prototype/Battlefield/A/Ground/ground.fbx 存在时生成 GreenfieldGround.prefab,并启用可读网格与非凸 MeshCollider;随后执行 BuildBattlefieldScene.Build 拼装最终场景。
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 MiB

@@ -0,0 +1,53 @@
{
"latest": {
"event": "succeeded",
"ts": "2026-10-18T09:36:01Z",
"ok": true,
"id": "6-209b409a-17f2-4b07-b944-960fac4ec20e",
"status": "succeeded",
"progress": 100,
"model": "gpt-image-2.5",
"prompt": "Use case: stylized-concept. Asset type: mobile game battlefield level design board. Generate a clean, readable top-down concept art of a compact three-lane fantasy battlefield called Green Fork. Show a broad central safe route, two parallel side routes with slight height changes, a small wooden crossing at the center, a camp sign landmark, grass terrain and scattered trees and rocks. Keep the three routes visually separated and leave clear walkable corridors for characters. Friendly colorful hand-painted 3D game concept style, soft daylight, warm green and sand palette, orthographic top-down composition, no perspective distortion. This is a design reference board, not a screenshot: no UI, no labels, no letters, no numbers, no watermark, no people, no text, no logo.",
"files": [
{
"url": "https://file8.aitohumanize.com/file/f9265178ad7f4cf5b570b93c2ed5cb40.png",
"path": "D:\\UD\\AI\\AIGame\\Doc\\Design\\Scene\\Battlefield\\Battlefield_Design_A_GreenFork.png"
}
]
},
"history": [
{
"event": "started",
"ts": "2026-10-18T09:34:34Z",
"model": "gpt-image-2.5",
"prompt": "Use case: stylized-concept. Asset type: mobile game battlefield level design board. Generate a clean, readable top-down concept art of a compact three-lane fantasy battlefield called Green Fork. Show a broad central safe route, two parallel side routes with slight height changes, a small wooden crossing at the center, a camp sign landmark, grass terrain and scattered trees and rocks. Keep the three routes visually separated and leave clear walkable corridors for characters. Friendly colorful hand-painted 3D game concept style, soft daylight, warm green and sand palette, orthographic top-down composition, no perspective distortion. This is a design reference board, not a screenshot: no UI, no labels, no letters, no numbers, no watermark, no people, no text, no logo.",
"output": "D:\\UD\\AI\\AIGame\\Doc\\Design\\Scene\\Battlefield\\Battlefield_Design_A_GreenFork.png",
"aspect_ratio": "1024x1024",
"image_count": 0,
"reply_type": "json"
},
{
"event": "submitted",
"ts": "2026-10-18T09:35:58Z",
"id": "6-209b409a-17f2-4b07-b944-960fac4ec20e",
"status": "succeeded",
"progress": 100
},
{
"event": "succeeded",
"ts": "2026-10-18T09:36:01Z",
"ok": true,
"id": "6-209b409a-17f2-4b07-b944-960fac4ec20e",
"status": "succeeded",
"progress": 100,
"model": "gpt-image-2.5",
"prompt": "Use case: stylized-concept. Asset type: mobile game battlefield level design board. Generate a clean, readable top-down concept art of a compact three-lane fantasy battlefield called Green Fork. Show a broad central safe route, two parallel side routes with slight height changes, a small wooden crossing at the center, a camp sign landmark, grass terrain and scattered trees and rocks. Keep the three routes visually separated and leave clear walkable corridors for characters. Friendly colorful hand-painted 3D game concept style, soft daylight, warm green and sand palette, orthographic top-down composition, no perspective distortion. This is a design reference board, not a screenshot: no UI, no labels, no letters, no numbers, no watermark, no people, no text, no logo.",
"files": [
{
"url": "https://file8.aitohumanize.com/file/f9265178ad7f4cf5b570b93c2ed5cb40.png",
"path": "D:\\UD\\AI\\AIGame\\Doc\\Design\\Scene\\Battlefield\\Battlefield_Design_A_GreenFork.png"
}
]
}
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

@@ -0,0 +1,27 @@
{
"schemaVersion": 1,
"tool": "Tools/gpt_image_generate.py",
"model": "gpt-image-2.5",
"aspectRatio": "1024x1024",
"quality": "auto",
"designs": [
{
"id": "A",
"name": "绿野三岔口",
"file": "Battlefield_Design_A_GreenFork.png",
"prompt": "Use case: stylized-concept. Asset type: mobile game battlefield level design board. Generate a clean, readable top-down concept art of a compact three-lane fantasy battlefield called Green Fork. Show a broad central safe route, two parallel side routes with slight height changes, a small wooden crossing at the center, a camp sign landmark, grass terrain and scattered trees and rocks. Keep the three routes visually separated and leave clear walkable corridors for characters. Friendly colorful hand-painted 3D game concept style, soft daylight, warm green and sand palette, orthographic top-down composition, no perspective distortion. This is a design reference board, not a screenshot: no UI, no labels, no letters, no numbers, no watermark, no people, no text, no logo."
},
{
"id": "B",
"name": "溪谷浮桥",
"file": "Battlefield_Design_B_StreamBridges.png",
"prompt": "Use case: stylized-concept. Asset type: mobile game battlefield level design board. Generate a clean, readable top-down concept art of a compact three-lane fantasy battlefield called Stream Bridges. A blue stream crosses the middle of the map from side to side, and three distinct wooden bridges connect the three lanes. Add grassy banks, a water gate landmark, a small beacon tower, wetland rocks and reeds. Keep each lane and every bridge easy to read for tactical planning, with generous walkable space. Friendly colorful hand-painted 3D game concept style, soft daylight, orthographic top-down composition, blue water and warm wood accents. No UI, no labels, no letters, no numbers, no watermark, no people, no text, no logo."
},
{
"id": "C",
"name": "旧城花园",
"file": "Battlefield_Design_C_OldGarden.png",
"prompt": "Use case: stylized-concept. Asset type: mobile game battlefield level design board. Generate a clean, readable top-down concept art of a compact three-lane fantasy battlefield called Old Garden. Show weathered city walls and gate arches dividing the three routes, a central circular garden plaza with a small fountain, a clock tower landmark, stone paving, flower beds, trees and scattered masonry. Make the central plaza a defensive focal point while preserving clear walkable lanes and sightlines. Friendly colorful hand-painted 3D game concept style, soft late-afternoon daylight, orthographic top-down composition, muted stone and warm garden colors. No UI, no labels, no letters, no numbers, no watermark, no people, no text, no logo."
}
]
}
@@ -0,0 +1,196 @@
{
"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"
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

+74
View File
@@ -0,0 +1,74 @@
# Unity 关卡场景四阶段生成流程
每个新关卡都按“设计选择 → 组件拆分 → 3D 资产 → Unity 场景”推进。每一阶段都有输入、输出和状态登记;没有完成上一阶段时,不进入下一阶段。
## 1. 生成设计图并选择方案
根据当前关卡要求维护 `battlefield_design_prompts.json`,用项目图像生成工具生成多张总览方案。总览图只表达路线、地表和组件类别,不直接作为 Unity 贴图。
```powershell
python Tools/generate_battlefield_designs.py --design all
python Tools/battlefield_scene_pipeline.py status
python Tools/battlefield_scene_pipeline.py select A
```
生成回执和选择结果写入 `battlefield_scene_manifest.json`。人工在 `Doc/Design/Scene/Battlefield/` 查看方案后,才执行 `select`。
## 2. 按方案拆分组件设计图
选中的总览图拆成独立地表图和组件图,输出到 `Doc/Design/Scene/Battlefield/<design>/`。组件类型先与资源库匹配:如果 `AIClient/Assets/Bundles/` 已存在同名 Unity Prefab,则登记为 `generationStatus: reused`,跳过该组件的新设计图;没有现成 Prefab 的组件才调用图像生成。
```powershell
python Tools/generate_battlefield_components.py --design A
```
默认复用已有组件。需要刻意重做某个组件时使用:
```powershell
python Tools/generate_battlefield_components.py --design A --force-new-components
```
组件拆分完成后先审核地表图和组件图,再进入 3D 阶段。组件复用路径、生成状态和设计图路径都写回 manifest。
## 3. 根据新设计图生成 3D 模型
只有新组件才执行图生 3D;复用组件直接使用 manifest 中的 `existingPrefab`/`prefab`。新组件按统一链路生成:
```text
组件设计图
→ Hunyuan 3D 50k GLB
→ Blender 减面、重拓扑、UV 与 XPbr 烘焙
→ AIClient/Assets/Bundles/Scenes/.../<type>/<type>.fbx + 贴图 + Prefab
```
每个组件的模型路径、目标面数、烘焙回执和 Prefab 路径必须登记到 manifest。FBX 遵循 Y-up、底面中心原点、局部 `-Z` 正面;导入和 Prefab 制作只能走 Unity Pipeline。
## 4. 生成 Unity 场景并交给人工审核
场景装配脚本读取 manifest,把独立地表、路线、出生点/终点和组件 Prefab 保存为总 Prefab。审核场景再从总 Prefab 生成持久化 `.unity`,加入固定 `ReviewCamera`、`ReviewKeyLight` 和 `ReviewLabel`。
```powershell
$project = 'D:/UD/AI/AIGame/AIClient'
unity command --project-path $project run_script --file AgentScripts/BuildBattlefieldScene.cs --entry BuildBattlefieldScene.Build
unity command --project-path $project run_script --file AgentScripts/BuildBattlefieldScene.cs --entry BuildBattlefieldScene.VerifyBuilt
unity command --project-path $project run_script --file AgentScripts/BuildSceneReview.cs --entry BuildSceneReview.BuildAndOpenReview
```
审核输入由 `scene_review_manifest.json` 指定:
- `sourcePrefab`:第 4 阶段装配出的总 Prefab。
- `outputScene`:审核场景的 `.unity` 路径。
- `cameraPosition`、`cameraTarget`:固定审核机位,便于不同版本比较。
- `reportPath`:生成结果和审核步骤记录。
人工审核 Hierarchy、Scene View 和 Game View,重点检查组件穿插、悬空、朝向、地表碰撞和路线可读性。审核场景只用于编辑器审阅,不加入正式 Build Settings,也不由运行时代码创建。
## 一键编排与状态门
四阶段可以由编排器按顺序执行。它默认复用已有组件,只打印第 3 阶段的模型任务,不会在模型未登记前调用 Unity:
```powershell
python Tools/run_battlefield_scene_pipeline.py --design A --dry-run
```
确认设计和组件图后,去掉 `--dry-run`;需要重做设计或组件时分别使用 `--force-design`、`--force-new-components`。Unity Editor 和 Pipeline 运行后,再加 `--run-unity` 执行第 4 阶段。
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

@@ -0,0 +1,11 @@
{
"schemaVersion": 1,
"sceneId": "Battlefield_Greenfield",
"sourcePrefab": "Assets/Bundles/Scenes/Prototype/Battlefield/Battlefield_Greenfield.prefab",
"outputScene": "Assets/Bundles/Scenes/Prototype/Battlefield/Battlefield_Greenfield_Review.unity",
"reportPath": "Tools/output/scene_review/Battlefield_Greenfield/review_report.json",
"label": "Battlefield Greenfield - Human Review",
"cameraPosition": { "x": 0.0, "y": 16.0, "z": -25.0 },
"cameraTarget": { "x": 0.0, "y": 0.8, "z": 3.5 },
"fieldOfView": 42.0
}