feat(world-sketcher): 增加高度标注和连通关系,AI分析改为读JSON
- sketch.html: 双击命名弹窗增加高度(m)输入和连通多选 - sketch.html: 新增defaultHeightForType()按画笔类型设默认高度 - sketch.html: 连通关系双向同步,JSON输出增加height_m/connections - sketch.html: restoreScene恢复新字段,保存/加载流程不受影响 - SKILL.md: 步骤3从vision分析PNG改为读取JSON结构化数据 - SKILL.md: 布局解读文档模板增加高度和连通列 - README.md: 画笔图例增加默认高度,更新JSON示例和AI流程说明 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -42,14 +42,14 @@ tools/world-sketcher/
|
||||
|
||||
## 画笔颜色 → 材质映射
|
||||
|
||||
| 画笔 | 颜色 | 地形 | UE 材质 |
|
||||
|------|------|------|---------|
|
||||
| 道路 Road | `#909090` 灰 | 道路 | MI_DevGray |
|
||||
| 建筑 Building | `#E07020` 橙 | 建筑物 | MI_DevOrange |
|
||||
| 水域 Water | `#40A0D0` 天蓝 | 河流/水塘 | MI_DevSkyBlue |
|
||||
| 植被 Greenery | `#40B040` 绿 | 树木/草地 | MI_DevGreen |
|
||||
| 不可通行 Blocked | `#A07040` 棕 | 山体/围墙 | MI_DevBrown |
|
||||
| 区域 Zone | `#D04040` 红 | 区域划分 | MI_DevRed |
|
||||
| 画笔 | 颜色 | 地形 | UE 材质 | 默认高度 |
|
||||
|------|------|------|---------|---------|
|
||||
| 道路 Road | `#909090` 灰 | 道路 | MI_DevGray | — |
|
||||
| 建筑 Building | `#E07020` 橙 | 建筑物 | MI_DevOrange | 3m |
|
||||
| 水域 Water | `#40A0D0` 天蓝 | 河流/水塘 | MI_DevSkyBlue | — |
|
||||
| 植被 Greenery | `#40B040` 绿 | 树木/草地 | MI_DevGreen | 2m |
|
||||
| 不可通行 Blocked | `#A07040` 棕 | 山体/围墙 | MI_DevBrown | 3m |
|
||||
| 区域 Zone | `#D04040` 红 | 区域划分 | MI_DevRed | 3m |
|
||||
|
||||
---
|
||||
|
||||
@@ -71,12 +71,15 @@ tools/world-sketcher/
|
||||
5. 进入 L2 后用建筑、道路等画笔细化区域内部
|
||||
6. 完成后点"保存全部",将文件保存到 `output/` 目录
|
||||
|
||||
### 步骤 3:AI 分析草图
|
||||
### 步骤 3:AI 读取布局数据
|
||||
|
||||
1. 读取 PNG 草图(使用 vision 分析)
|
||||
2. 读取 JSON 伴随数据(scale、elements、层级关系)
|
||||
3. 交叉参考场景设计案 `场景-v<XX>-<名称>.md` 的氛围描述
|
||||
4. 产出布局解读文档
|
||||
**数据源以 JSON 为准,不依赖 PNG 像素分析。**
|
||||
|
||||
1. 读取 JSON 布局数据(`*-scene.json`):elements(含 `height_m`、`connections`)、regions(含 `bounds_world_m`)、层级关系
|
||||
2. 交叉参考场景设计案 `场景-v<XX>-<名称>.md` 的氛围描述,将 JSON 区域与场景设计案的区域描述建立映射
|
||||
3. 如需视觉确认,可参考预览 PNG(非必须,仅用于核对区域形状)
|
||||
|
||||
> **说明**:PNG 文件仍保存在 ZIP 中用于保存/加载画布,但 AI 分析流程以结构化 JSON 为准。
|
||||
|
||||
### 步骤 4:产出布局解读文档
|
||||
|
||||
@@ -99,8 +102,8 @@ tools/world-sketcher/
|
||||
## L1 场景总览
|
||||
|
||||
### 识别区域
|
||||
| 区域编号 | 名称 | 推测坐标范围 (cm) | 推测尺寸 | 地形类型 | 标识色建议 |
|
||||
|---------|------|-------------------|---------|---------|-----------|
|
||||
| 区域编号 | 名称 | 推测坐标范围 (cm) | 推测尺寸 | 地形类型 | 高度 (m) | 连通到 | 标识色建议 |
|
||||
|---------|------|-------------------|---------|---------|---------|--------|-----------|
|
||||
|
||||
### 识别道路/河流
|
||||
| 编号 | 名称 | 类型 | 走向 | 长度 |
|
||||
@@ -111,7 +114,7 @@ tools/world-sketcher/
|
||||
## L2 区域详图(如有)
|
||||
|
||||
### <区域名>
|
||||
| 编号 | 名称 | 类型 | 推测坐标 | 尺寸 |
|
||||
| 编号 | 名称 | 类型 | 推测坐标 | 尺寸 | 高度 (m) | 连通到 |
|
||||
|
||||
## 待确认问题
|
||||
1. ...
|
||||
@@ -120,6 +123,12 @@ tools/world-sketcher/
|
||||
- ...
|
||||
```
|
||||
|
||||
**数据来源说明**:
|
||||
- 区域坐标、尺寸:来自 JSON 中 `regions[].bounds_world_m`,乘以 100 转为 cm
|
||||
- 高度:来自 JSON 中 `elements[].height_m`,直接采用(无需 AI 推断)
|
||||
- 连通关系:来自 JSON 中 `elements[].connections`,直接采用(无需 AI 推断)
|
||||
- 地形类型和标识色:来自 JSON 中 `elements[].type` → brush_legend 映射
|
||||
|
||||
### 步骤 5:用户确认
|
||||
|
||||
将解读文档呈现给用户,等待用户确认或修正。确认后,该文档作为关卡执行案的前置输入。
|
||||
@@ -143,3 +152,5 @@ tools/world-sketcher/
|
||||
- 坐标系与 `zone_config.py` 一致:原点西南角,X+ 东,Y+ 北,单位 cm
|
||||
- AI 解读时如有不确定之处,**必须**列入"待确认问题",不要自行假设
|
||||
- L3 建筑内部本期不实现,仅预留 `has_interior` 标记
|
||||
- **高度 (`height_m`)**:由用户在双击命名时输入,AI 直接采用,不做推断
|
||||
- **连通关系 (`connections`)**:由用户在双击命名时勾选,双向同步,AI 直接采用
|
||||
|
||||
Reference in New Issue
Block a user