Files
ChildHood/.claude/skills/world-sketcher/SKILL.md
T
starmen1265 bb34641bfe 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>
2026-06-10 00:06:05 +08:00

5.6 KiB
Raw Blame History

name, description
name description
world-sketcher 世界布局草图工具。当需要"画布局"、"世界草图"、"分析布局草图"、"layout sketch"、 "interpret sketch"、"world layout"、"世界布局"、"布局草图"时使用。 引导用户使用绘图工具画出世界布局,分析草图 PNG 产出结构化布局数据 Markdown, 作为关卡执行案的前置输入。

世界布局草图工具 (World Layout Sketcher)

三级层次化布局绘图 → AI 解读 → 结构化布局文档 → 关卡执行案前置输入

触发条件

  • 用户主动触发:用户说"画布局"、"世界草图"、"layout sketch"、"world layout"等
  • 策划关卡执行案前置:策划需要产出关卡执行案,但不存在对应的布局解读文档
  • 用户提供草图分析:用户提供了草图 PNG 要求分析

工具位置

tools/world-sketcher/
  sketch.html              # 绘图工具(浏览器打开)
  README.md                # 使用说明、画笔图例
  output/                  # 草图输出目录

三级层次

层级 范围 绘制内容
L1 场景总览 ≤1km 大区域、主干道、河流
L2 区域详图 ≤300m 建筑、内部道路、绿化、水体
L3 建筑内部 预留 拖放细节资产(未实现)

画笔颜色 → 材质映射

画笔 颜色 地形 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

工作流

步骤 1:检查现有草图

检查 tools/world-sketcher/output/ 目录下是否有当前场景的草图文件。

  • 如果存在:跳到步骤 3
  • 如果不存在:进入步骤 2

步骤 2:引导用户绘图

  1. 告诉用户打开 tools/world-sketcher/sketch.html
  2. 说明画笔含义:不同颜色代表不同地形类型
  3. 建议先画 L1 场景总览(大区域、主干道、河流),用区域画笔画出各区域轮廓
  4. 双击已画区域命名(如"城郊小街"),勾选"可进入"创建 L2 详图
  5. 进入 L2 后用建筑、道路等画笔细化区域内部
  6. 完成后点"保存全部",将文件保存到 output/ 目录

步骤 3:AI 读取布局数据

数据源以 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:产出布局解读文档

产出文件:docs/design/<场景名>-layout-v<XX>.md

文档结构:

# <场景名> 世界布局解读 v<XX>

> 基于 `tools/world-sketcher/output/` 中的草图分析产出。

## 草图参数
| 参数 | 值 |
|------|-----|
| 世界尺寸 | ... |
| 坐标系 | 原点西南角,X+东,Y+北 |
| 比例 | 1px = ... |

## L1 场景总览

### 识别区域
| 区域编号 | 名称 | 推测坐标范围 (cm) | 推测尺寸 | 地形类型 | 高度 (m) | 连通到 | 标识色建议 |
|---------|------|-------------------|---------|---------|---------|--------|-----------|

### 识别道路/河流
| 编号 | 名称 | 类型 | 走向 | 长度 |

### 区域连通关系
| 连接 | 方式 | 说明 |

## L2 区域详图(如有)

### <区域名>
| 编号 | 名称 | 类型 | 推测坐标 | 尺寸 | 高度 (m) | 连通到 |

## 待确认问题
1. ...

## 待细化项
- ...

数据来源说明:

  • 区域坐标、尺寸:来自 JSON 中 regions[].bounds_world_m,乘以 100 转为 cm
  • 高度:来自 JSON 中 elements[].height_m,直接采用(无需 AI 推断)
  • 连通关系:来自 JSON 中 elements[].connections,直接采用(无需 AI 推断)
  • 地形类型和标识色:来自 JSON 中 elements[].type → brush_legend 映射

步骤 5:用户确认

将解读文档呈现给用户,等待用户确认或修正。确认后,该文档作为关卡执行案的前置输入。


与关卡执行案的衔接

布局解读文档产出并经用户确认后,策划产出关卡执行案时:

  1. 区域坐标:直接采用解读文档中的推测坐标范围作为起点
  2. 区域连通:采用解读文档中的连通关系
  3. 标识色:采用解读文档中的标识色建议(与画笔颜色一致)
  4. 需细化:解读文档中"待细化项"的内容在执行案中必须给出精确数据

注意事项

  • 画笔颜色是强制预定义的,不允许自由拾色,保证颜色→材质的映射一致
  • 坐标系与 zone_config.py 一致:原点西南角,X+ 东,Y+ 北,单位 cm
  • AI 解读时如有不确定之处,必须列入"待确认问题",不要自行假设
  • L3 建筑内部本期不实现,仅预留 has_interior 标记
  • 高度 (height_m):由用户在双击命名时输入,AI 直接采用,不做推断
  • 连通关系 (connections):由用户在双击命名时勾选,双向同步,AI 直接采用