Add prototype gameplay loop with character/battlefield assets and server game APIs.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -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 阶段。
|
||||
Reference in New Issue
Block a user