# Ue5 Level Design Cn

> 面向设计师的 UE5 地编统筹 Skill。基于 Unreal Engine 5.8 官方 MCP 与可选 VibeUE，在编辑器中规划、白盒搭建、改造和验收关卡；覆盖现状审计、尺度与动线、地形、水体、道路、POI、植被/PCG、场景布置、World Partition、可玩性、截图和性能检查。用户提到地编、关卡设计、关卡白盒、地图搭建、开放世界、场景布置、地形生态、路线和 POI、地图优化，或要求 AI 通过 MCP/VibeUE 操作 UE 关卡时使用。

- Skill: `mmo66666/ue5-level-design-cn` (Agent Skill, multi-file: 9 files)
- Install (CLI): `npx skillmds@latest add mmo66666/ue5-level-design-cn`
- Raw SKILL.md: https://api.skillmd.com/api/skills/mmo66666/ue5-level-design-cn/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: mMo66666 (https://skillmd.com/u/mmo66666)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/mmo66666/ue5-level-design-cn

---


# UE5 地编工作流

把自己定位为关卡设计与关卡美术的执行统筹。先理解体验目标和现有世界，再分阶段操作编辑器；不要把“生成了很多 Actor”当作完成。

## 核心原则

- 面向设计师沟通：先给可见结论、空间关系和下一步，不先倾倒 API、JSON 或日志。
- 把体验语言转成可验证空间指标，例如行进时间、视线长度、高差、路线数量、POI 间距、地标可见性和植被密度。
- 只把 live `list_toolsets`、`describe_toolset`、工具返回、关卡读回、截图、PIE 和性能数据当作当前真相。
- 不从磁盘解析 `.uasset`。通过 Unreal MCP、编辑器 Python 或 Unreal 原生工具读取和修改资产。
- 串行调用 Unreal MCP。不要让多个 Agent 同时写同一个编辑器或关卡。
- 优先做可逆、幂等、分阶段的小修改。记录创建、修改、跳过和失败的对象路径或 Actor 标签。
- 遇到写操作超时或空返回，先读回目标状态；不要盲目重放同一命令。

## 1. 判断请求类型

先区分本次请求：

- **规划/评审**：只读现场，输出地编方案、问题和优先级；不要改关卡。
- **诊断**：查明尺度、动线、遮挡、密度、流送或性能问题；用户未要求修复时不要写入。
- **搭建/改造**：按本 Skill 的完整闭环实施、保存并验收。
- **探索稿**：默认写入隔离测试关卡或用户指定副本，不直接覆盖正式地图。

需求足够明确时直接推进。仅在目标地图、允许修改范围或体验类型会实质改变结果且无法从现场判断时，才问一个关键问题。其余缺项采用 [brief-template.md](references/brief-template.md) 的安全默认值，并明确说明假设。

## 2. 连接并发现能力

1. 当前会话有 Unreal MCP 元工具时，先调用一次 `list_toolsets`。
2. 成功且目标 Toolset 可见时停止连接诊断，进入任务。
3. 需要具体参数时才调用 `describe_toolset`；不要靠记忆猜方法名、类名或参数。
4. 若存在 `ToolsetRegistry.AgentSkillToolset`，先 `ListSkills`，再只 `GetSkills` 当前阶段需要的项目 Skill。
5. VibeUE 是官方 UE 5.8 MCP 的可选增强，不是连接前提；其 Skill 名和服务能力以 live 结果为准。
6. 连接失败时沿用项目内 `$unreal-mcp-navigator-cn` 的最小诊断顺序，不用临时 HTTP/SSE 脚本执行 UE 资产操作。

按 [tool-routing.md](references/tool-routing.md) 选择候选 Toolset、VibeUE Agent Skill 与验证手段。

## 3. 建立现场基线

写入前读取并记录：

- 当前 World、关卡包路径、World Partition 状态、已加载区域和 Data Layers。
- PIE/Simulate 是否运行；运行中不得创建、保存、编译或批量修改资产。
- Landscape、Water、道路/样条、PCG、Foliage、关键 POI、PlayerStart、灯光和后处理的现状。
- 可承载地表是否真实有效：Landscape 需有组件、有效高度样本且向下射线能命中；Actor 存在本身不算通过。
- World Bounds、主要高度范围、Actor 数量/类型、当前选择、关卡脏状态。
- 至少一张带网格或 Actor 标签的基线视口截图；需要空间判断时查看俯视和玩家视角。

用户要求改正式地图时，先确认目标路径和修改范围。优先使用用户已有副本；需要探索时创建清晰命名的测试关卡或 Data Layer，例如 `/Game/MCP_Test/LevelDesign/<任务名>`。不要自行覆盖、删除、批量移动或重命名正式资产。

## 4. 形成可执行地编简报

把需求压缩为一页内部简报：

- 玩家/载具尺度、镜头和移动速度。
- 核心体验与 30 秒、3 分钟、完整一局的节奏目标。
- 场景原型、功能分区和目标成熟度（灰盒、可玩原型、可信场景或展示级）。
- 主路线、备选路线、回环、瓶颈、制高点、地标和出生/目标关系。
- 地形、水体、道路、生态、建筑和可交互物的制作边界。
- 性能目标、平台、World Partition/流送约束。
- 本轮交付范围、明确不做项、验收证据。

复杂地图先产出平面分区和阶段计划，再物化为几何；不要一上来铺满细节。

## 5. 分阶段实施

严格按 [workflow.md](references/workflow.md) 执行。默认阶段顺序：

1. 安全检查与基线。
2. 尺度、边界和灰盒体块。
3. 主动线、回环、瓶颈和 POI。
4. 地形、水体、道路和高差。
5. 生态、Foliage、PCG 与遮挡控制。
6. 地标、建筑、道具和视觉叙事。
7. 灯光、雾、后处理与可读性。
8. PIE、截图、流送和性能验收。

每一阶段都执行：

1. 读当前状态。
2. 说明本阶段意图和将修改的范围。
3. 做最小可验证修改。
4. 保存/编译需要落盘的资产。
5. 用结构化读回验证。
6. 捕获并查看可见结果。
7. 通过本阶段 Gate 后再进入下一阶段。

批量摆放前先试摆 1–3 个代表资产，确认真实资产类型、正面轴、Pivot 和 Bounds。没有可靠地表时，明确使用测试底盘或停止等待处理，不把“统一 Z 值”当成贴地。

批量摆放后执行 Bounds 重叠审计：排除 Ground/Road 等有意承载关系；整栋建筑间的非设计性重叠直接失败；模块接缝、建筑—道具/绿化列为候选并用局部视图复核。模块接缝仅在有收口且无可见穿模、Z-fighting 或碰撞阻断时通过；AABB 只做粗筛，其余对象保留符合项目尺度的正间距。

优先用一次编辑器 Python 调用批量完成同一原子阶段，但不要把整个关卡塞进一次不可回滚的大脚本。若 live VibeUE 暴露 Transaction/Checkpoint 能力，阶段前建立检查点；否则保持阶段小、日志清楚、命名可追踪。

## 6. 地编判断标准

同时检查三层，不可互相替代：

- **结构层**：对象存在、路径正确、Transform/组件/图层/样条/引用符合计划。
- **体验层**：玩家尺度、路线选择、视线、掩体、节奏、地标和空间层次符合目标。
- **运行层**：PIE 可进入、碰撞与导航合理、无明显日志错误、流送和帧耗在目标范围。

使用 [quality-gates.md](references/quality-gates.md) 的 Gate。明显的可见变化必须截图并实际查看；不能只凭工具返回宣称视觉结果正确。

用户要求场景体检、批量验收，或完成大批摆放后，读取 [level-doctor.md](references/level-doctor.md) 并运行只读 Level Doctor。把结构化报告当作候选生成器：高风险项仍需局部视图、射线或 PIE 复核；默认不得自动修复。

## 7. VibeUE 使用策略

- 地形/景观先加载 live `landscape`；真实地理数据再加载 `terrain-data`。
- 开放世界 FPS 的程序化规划可评估 live `map-blockout`，但先验证当前实现不是 stub，并检查每个 Gate；不要默认其能力完整。
- 植被加载 `foliage`，程序化分布加载 `pcg`，Actor 布置加载 `level-actors`，视口验收加载 `viewport`，运行验收加载 `pie-testing`。
- Skill 只提供工作流，精确签名仍需 narrow discovery。优先发现相关 `unreal.<Name>Service` 方法，再写编辑器 Python。
- 能用 `execute_python_code` 安全批处理的同阶段工作可合并；需要 MCP 返回图像的截图调用使用原生截图工具。
- 静态网格按“生成 Actor → 设置 Mesh/旋转/缩放 → 读取 Bounds → 对齐目标中心与底面 → 再读回”放置；从对象读取真实 Class，不根据 `SM_`/`SK_` 名称猜类型。平面网格允许 Z Extent 为 0。
- Unreal Python 构造 `unreal.Rotator` 时显式传 `pitch=`、`yaw=`、`roll=`；批量旋转前读回代表 Actor 的三轴值，不依赖位置参数。
- `CaptureViewport` 使用完整 Toolset 名和短工具名，并始终传完整参数；Lit 截图若出现时序残影，临时用 Unlit、关闭 Realtime 验证结构，随后恢复原视图。
- 任何 Python 执行都打印简短变更清单与验证结果；不得使用弹窗、`input()`、长时间阻塞或无限循环。

## 8. 完成与汇报

只有满足以下条件才称为完成：

- 目标关卡/资产路径明确，保存状态明确。
- 完成结论与简报中的目标成熟度一致；灰盒或技术通过不得表述为可信场景、展示级完成。
- 每个承诺阶段的结构读回通过。
- 基线与完成截图已查看，能指出具体变化。
- 若涉及可玩性，PIE/导航/碰撞检查已完成；若未完成，明确写成未验证。
- 若涉及开放世界或大量实例，给出流送/性能证据或明确尚缺的数据。
- 报告修改清单、未改范围、验证证据、遗留风险和设计师下一步可见操作。
- 使用 Level Doctor 时报告 JSON 路径、候选数量、已复核结论和未覆盖的人工检查项。

不要把 transport 成功、Python 无异常或 Actor 数量增加当作最终证据。

