填写关卡框架信息,AI 将基于这些信息分阶段生成 LDD
| # | 时间 | 类型 | 描述 | 位置 | 强度 |
|---|
支持 Google Imagen(原生 REST)和 OpenAI 兼容端点(如公司内部 API)。切换模式后请配置对应的 API Key 和 Endpoint。
选择引擎类型并指定项目目录,LDT 会自动将 Bridge 插件安装到正确位置。UE5 安装后需重新生成项目文件并编译,然后在 Edit → Plugins 中启用。
通过 HTTP REST 协议 (v2) 连接已运行的引擎实例,实现双向实时同步
Level Design Toolkit(关卡设计工作台)是一个 AI 辅助的关卡设计文档生成与管理工具。它通过多阶段 AI 流水线,将你的关卡构想自动展开为一份完整的 LDD(Level Design Document),并提供 3D 可视化预览、情绪曲线分析、参考图生成和多部门模拟审查。
点击左下角 ⚙ 打开设置 → 在「模型提供商」中选择你的 AI 提供商(如 OpenAI、Claude、DeepSeek 等),填入 API Key、Endpoint URL,选择模型 → 点击「💾 一键保存」。
💡 工具支持任何 OpenAI 兼容 API。如果使用公司内部 API 或自部署模型,选择「自定义 (OpenAI 兼容)」提供商。
点击左侧 + 按钮,输入项目名称(如「废墟都市关卡」)→ 确定后进入「关卡导入」表单页面。
在右侧「🎮 关卡导入」页签中填写关卡信息:
点击表单底部 🚀 保存并开始生成,AI 将分 5 个阶段自动生成完整 LDD:
生成过程中,进度条会实时更新,左侧聊天面板会显示生成日志。
生成完成后,通过顶部 Tab 切换查看不同视图。如需修改,在左侧聊天面板输入修改意见,AI 会根据你的反馈重新迭代对应部分。
点击左下角 ⚙ 按钮打开设置面板。设置分为三个页签:
配置 AI 大模型的 API 连接信息。工具支持以下提供商:
| 提供商 | 说明 | 推荐模型 |
|---|---|---|
| 自定义 (OpenAI 兼容) | 任何兼容 OpenAI API 格式的端点(包括公司内部 API、vLLM、LocalAI 等) | 根据实际部署填写 |
| Anthropic Claude | Claude 系列模型 | Claude Sonnet 4(均衡) |
| OpenAI | GPT 系列模型 | GPT-5.2(旗舰) |
| Google Gemini | Gemini 系列模型 | Gemini 3 Flash(快速) |
| DeepSeek | DeepSeek 系列模型 | DeepSeek V3.2(通用) |
| 本地 Ollama | 本地运行的开源模型(无需 API Key) | LLaMA 4 / Qwen 3 |
配置 AI 图像生成端点,用于在「参考图库」中自动生成关卡视觉参考图。支持两种模式:
配置与游戏引擎(UE5 / Unity)的双向同步连接。可一键安装引擎插件,支持实时推送和拉取关卡数据。详见「引擎桥接」章节。
左侧任务栏管理所有关卡项目。每个项目是一个独立的 LDD 设计方案。
点击 + 按钮,输入项目名称即可创建。创建后自动进入「关卡导入」表单。
每个项目拥有一个 4 位数字编号(如 0042),显示为项目名称旁的金色徽章。关卡编号是该项目在引擎场景中的唯一标识,用于区分不同关卡的数据。
| 特性 | 说明 |
|---|---|
| 自动生成 | 创建项目时随机分配 4 位编号(0001 ~ 9999),避免与已有项目重复 |
| 手动修改 | 右键项目 → 🏷️ 编辑关卡编号,输入新的 4 位数字即可 |
| 引擎隔离 | 推送到引擎的所有 Actor 自动携带此编号,扫描时只返回匹配编号的 Actor |
| 惰性迁移 | 旧项目(无编号)在首次加载时自动补充随机编号 |
直接点击左侧项目列表中的项目名称即可切换。切换时会自动加载该项目的 LDD 数据和所有视图。
所有项目数据保存在工具目录下的 projects/ 文件夹中。每个项目一个子目录,包含:
meta.json — 项目元数据和完整 LDD JSONreview_data.json — 审查讨论结果images/ — 生成的参考图片这是关卡设计的起点。在此表单中填写关卡的基础框架信息,AI 将基于这些信息展开完整设计。
| 字段 | 必填 | 说明 | 示例 |
|---|---|---|---|
| 关卡名称 | ✅ | 关卡代号或标题 | 镜像都市 / 深渊回廊 |
| 占地面积 | 关卡地图的大致尺寸 | 200m × 150m | |
| 流程时长 | 玩家通关预期时间 | 15-20 分钟 | |
| 预期角色移速 | ✅ | 角色移动速度(cm/s),影响流程时间估算 | 600 |
| 视觉风格 | 关卡的整体美术风格 | 哥特式城堡 / 赛博朋克都市 | |
| 核心特色 | ✅ | 最核心的设计特色,一句话描述 | 双世界切换——表世界现代都市,里世界废墟文明 |
| 通用玩法 | 基础玩法类型 | ARPG + 解谜 + 探索 | |
| 特色机制 | 该关卡的特殊玩法机制 | 世界切换 / 裂隙透视 | |
| 剧情简述 | 关卡背景故事简要说明 | 城市中心出现空间异变,玩家前往调查... | |
| 流程概要 | ✅ | 从开始到通关的主要节拍序列 | 教学 → 首次切换 → 战斗 → 谜题 → Boss战 → 真相 |
| 起点 / 终点 | 关卡的起始和结束位置 | 地铁站出口 / 摩天大楼天台 | |
| 主动线 | 玩家的主要行进路线 | 地铁站 → 商业街 → 裂隙 → 废墟 → 天台Boss战 | |
| 补充说明 | 任何其他需要 AI 参考的信息 | — |
这是工具的核心输出——完整的关卡设计文档。LDD 通过 5 个阶段逐步生成:
| 阶段 | 内容 | 包含 |
|---|---|---|
| 初始化 | 建立核心概念框架 | 核心动词、核心循环、核心特色机制定义 |
| 总览 | 关卡全局设计 | 区域概述、空间拓扑关系、全局动线、流程事件序列 |
| 玩法 | 具体玩法展开 | 各区域具体玩法节拍、机制交互点、战斗/解谜设计 |
| 区域 | 区域详细设计 | 每个区域的空间布局、物件配置、触发条件、光照氛围 |
| 美术 | 视觉参考定义 | 氛围参考描述、材质规范、色彩方案、关键场景画面描述 |
左侧聊天面板是你与 AI 交互的主要渠道。通过自然语言描述修改意见,AI 会针对性地更新 LDD 的对应部分。
生成完 LDD 后,左侧面板会切换到「修改模式」,此时可以:
基于 LDD 中的区域数据自动生成的 3D 交互式关卡布局图。使用 Three.js 渲染,支持实时操作。
| 操作 | 方式 |
|---|---|
| 旋转视角 | 鼠标左键拖拽 |
| 平移视角 | 鼠标右键拖拽 / 中键拖拽 |
| 缩放 | 鼠标滚轮 |
| 选中区域 | 左键点击区域方块 |
| 移动区域 | 选中后拖拽 Gizmo 箭头 |
| 旋转区域 | 快捷键 R 切换到旋转模式 |
| 缩放区域 | 快捷键 S 切换到缩放模式 |
| 切回移动 | 快捷键 W |
点击右侧 ☰ 按钮展开侧边栏,查看:拓扑关系图、区域列表、动线路径、统计信息。
平面图左面板底部显示「材质语义」色块对照表,与引擎桥接插件中的白盒材质颜色完全对应。当区域数据包含 role 字段时,平面图会自动使用对应语义颜色渲染。详见 引擎桥接 → 白盒材质语义对照表。
将 LDD 中的事件序列可视化为时间轴和情绪曲线图表。
图表下方的表格以列表形式展示所有事件的:时间、类型、描述、位置、强度。
管理 AI 生成的关卡视觉参考图。每个区域和关键场景可以生成对应的概念参考图。
生成 LDD 的美术阶段完成后,图库页面会自动显示可生成的参考图列表。点击图片卡片触发生成。
基于 LDD 文档内容,按部门/职能自动拆解出可执行的资产需求清单。
| 分类 | 图标 | 说明 |
|---|---|---|
| 概设原画需求 | 🎨 | 概念设计、场景原画、角色原画、道具设计等视觉资产 |
| 模型需求 | 🧊 | 3D 模型制作需求,包括场景模型、道具模型、角色模型等 |
| 特效需求 | ✨ | 粒子特效、环境特效、技能特效、交互反馈特效等 |
| 音乐音效需求 | 🎵 | 背景音乐、环境音效、UI 音效、战斗音效等 |
| 过场动画需求 | 🎬 | 过场 CG、实时演出、镜头运动、角色动画等 |
| 程序功能需求 | 💻 | 系统功能开发、机制实现、AI 行为、UI 交互等 |
模拟真实的项目评审环境,5 个部门的 AI Agent 从各自专业视角对 LDD 进行严格审查。
| 部门 | 图标 | 审查焦点 |
|---|---|---|
| 概念原画部 | 🎨 | 美术资源量级、视觉差异化落地成本、制作产能评估 |
| 关卡地编部 | 🏗️ | 区域面积/数量合理性、白盒制作成本、动线复杂度 |
| IP叙事部 | 📖 | 叙事制作成本、环境叙事感知率、演出资源投入 |
| 客户端开发部 | 💻 | 技术开发周期、系统复杂度、投产比评估 |
| 性能优化部 | ⚡ | 渲染预算、优化成本、关卡规模合理性 |
美术管线将 LDD 设计无缝延伸至视觉生产。从风格锚定到 3D 模型,全流程 AI 驱动。
在关卡导入表单底部展开「🎨 视觉风格锚点」区域,设定:
| 字段 | 作用 | 示例 |
|---|---|---|
| 风格描述 | AI 全局风格指令 | 赛博朋克风、霓虹灯光、高对比度阴影 |
| 风格标签 | 关键词标签 | cyberpunk, neon, dark |
| 负面提示 | 排除不想要的元素 | 卡通风格, 低质量, 变形 |
设定后,系统会自动将风格约束注入所有后续图像生成 Prompt,确保一致性。
在「🎨 美术管线」Tab 的「🏞 场景原画」子面板中操作:
在「🔧 物件拆分 & 多视图」子面板中,从场景原画拆分出可用的 3D 资产参考:
| 步骤 | 操作 | 产出 |
|---|---|---|
| ① 识别物件 | AI 多模态分析原画 → 自动识别物件清单 | 物件清单 (7 类别 × 4 优先级) |
| ② 生成大图 + 裁剪 | 图生图(原画为参考)→ 物件集合大图 → Pillow 裁剪 | 单物件白底图 |
| ③ 四视角 | 图生图(单物件为参考)→ 四视角组合图 → 裁剪 | front/left/back/right 四张图 |
完成后可一键导出为 Tripo Multiview 格式,直接送入 3D 生成。
后端已直连 Tripo REST API:上传四视角图 → 创建任务 → 轮询进度 → 自动下载 GLB。支持面数预设(2K/5K/10K/20K)和批量生成。前端 UI 待后续版本。
将当前项目的 LDD 文档导出为文件,支持多种格式:
导出方式:点击顶部 Tab 栏右侧的 📤 按钮,或点击左侧聊天面板的「📤 导出」按钮。
本工具内置 MCP (Model Context Protocol) Server,可以让 Claude Code、Cursor、Echo Agent 等任何兼容 MCP 的 AI 客户端直接调用关卡设计工具的全部功能,实现纯对话式 LDD 生成。
pip install httpx pydantic "mcp[cli]"
AI Agent ↔ stdio (MCP) ↔ mcp_server/server.py ↔ HTTP :8800 ↔ Flask 后端
MCP Server 启动时会自动启动 Flask 后端(端口 8800),无需手动管理。
在你的 MCP 客户端的配置文件中添加以下内容(将路径替换为实际安装路径):
▸ Claude Code / Claude Desktop
配置文件位置:~/.claude/claude_desktop_config.json(macOS/Linux)或 %APPDATA%\Claude\claude_desktop_config.json(Windows)
{
"mcpServers": {
"level-design-toolkit": {
"command": "python",
"args": ["你的安装路径/mcp_server/server.py"],
"env": {
"PYTHONPATH": "你的安装路径"
}
}
}
}
▸ Cursor
配置文件位置:项目根目录 .cursor/mcp.json 或全局 ~/.cursor/mcp.json
{
"mcpServers": {
"level-design-toolkit": {
"command": "python",
"args": ["你的安装路径/mcp_server/server.py"],
"env": {
"PYTHONPATH": "你的安装路径"
}
}
}
}
▸ Windows 路径示例(假设解压到 D:\Tools\LevelDesignToolkit):
{
"mcpServers": {
"level-design-toolkit": {
"command": "python",
"args": ["D:\\Tools\\LevelDesignToolkit\\mcp_server\\server.py"],
"env": {
"PYTHONPATH": "D:\\Tools\\LevelDesignToolkit"
}
}
}
}
MCP Server 复用本工具的 config.json 配置。首次使用前需要先配置好 API Key:
config.json,在 providers 中填入 api_key 和 base_url分为三组:核心工具(11 个)、Handoff 工具(7 个,支持外部 LLM 独立生成后提交结果)、Bridge 工具(5 个,引擎桥接操作)。
| 工具名 | 功能 |
|---|---|
ldt_list_projects | 列出所有关卡设计项目 |
ldt_create_project | 创建新项目 |
ldt_set_init_data | 设置关卡参数(类型、机制、时长等) |
ldt_get_stage_status | 查看各阶段生成状态 |
ldt_generate_stage | 生成 LDD 指定阶段(调用 LLM) |
ldt_iterate_stage | 根据反馈修订某阶段 |
ldt_confirm_stage | 确认阶段并推进到下一步 |
ldt_get_ldd | 获取完整 LDD JSON |
ldt_export_ldd | 导出 LDD 为 Markdown/Excel |
ldt_get_config | 查看当前 LLM 配置 |
ldt_delete_project | 删除项目(不可撤销) |
| 工具名 | 功能 |
|---|---|
ldt_get_stage_prompt | 获取指定阶段的 Prompt(供外部 LLM 使用) |
ldt_submit_stage_result | 提交外部 LLM 生成的阶段结果 |
ldt_get_region_prompt | 获取单个区域的生成 Prompt |
ldt_submit_region_result | 提交单个区域的生成结果 |
ldt_get_global_flow_prompt | 获取全局动线生成 Prompt |
ldt_submit_global_flow_result | 提交全局动线生成结果 |
ldt_export_bundle | 导出引擎交接包 (zip) |
| 工具名 | 功能 |
|---|---|
ldt_bridge_status | 查询引擎连接状态 + 映射概览 |
ldt_bridge_connect | 连接 UE5/Unity 引擎 |
ldt_bridge_push | 推送 LDD 数据到引擎 |
ldt_bridge_mappings | 查看完整 Actor↔Region 映射表 |
ldt_import_scan_report | 导入引擎扫描报告,建立映射 |
在 Claude Code 中,你可以直接告诉 Agent:
ldt_create_project → 创建项目ldt_set_init_data → 填入关卡参数ldt_generate_stage(overview) → 生成关卡总览ldt_confirm_stage(overview) → 确认并推进ldt_export_ldd → 导出完整 LDD 文档
| 问题 | 解决方案 |
|---|---|
| ModuleNotFoundError: httpx | pip install httpx |
| ModuleNotFoundError: mcp | pip install "mcp[cli]" |
| 后端启动超时 | 检查 8800 端口是否被占用 |
| API Key 无效 | 通过 GUI 或直接编辑 config.json 配置 |
| 生成超时(300s) | LLM 响应过慢,尝试更换模型或检查网络 |
引擎桥接功能让 LDT 与游戏引擎(UE5 / Unity)实现不依赖离线导出的双向实时同步。LDD 中的区域、连接、机制等设计数据可以直接推送到引擎关卡中,引擎中的修改也可以同步回 LDT。
LDT (HTTP 客户端) ←→ REST API (端口 24680) ←→ 引擎插件 (HTTP 服务端)进入 设置 → 「引擎桥接」页签,在「一键安装引擎插件」区域:
.uproject 文件Assets/ 文件夹LDT 会自动将内置的 Bridge 插件文件拷贝到引擎识别的位置:
| 引擎 | 安装目标 | 插件内容 |
|---|---|---|
| UE5 | {项目}/Plugins/LDTBridge/ | C++ Editor Plugin(.uplugin + Source,含 HTTP Server、Slate 管理窗口) |
| Unity | {项目}/Assets/Plugins/LDTBridge/ | Runtime + Editor C# 脚本 |
▸ UE5
面板会实时显示连接状态、LDT 实体列表和变更历史。
▸ Unity
打开 Unity 编辑器,菜单栏点击 Tools → LDT Bridge,在弹出窗口中点击 Start Server。
设置 → 「引擎桥接」→ 在「连接引擎」区域:
127.0.0.1(本机),远程协作时填对方 IP24680,与引擎插件启动时一致连接成功后会自动执行首次扫描,并显示引擎中已有的 LDT 实体。
引擎桥接的所有同步操作都基于当前项目的 4 位关卡编号(level_code)进行隔离,确保多个 LDT 项目在同一引擎场景中互不干扰。
LDT:level_code=XXXX 标签引擎插件无需手动填写 Project ID。点击 Import from LDT 时,插件会连接 LDT 后端并自动获取当前打开项目的 ID 和关卡编号。
| 操作 | 方向 | 说明 |
|---|---|---|
| 🔍 扫描关卡 | 引擎 → LDT | 扫描引擎中带有 LDT:* 标签的实体,重建映射关系 |
| ↓ 从引擎拉取 | 引擎 → LDT | 将引擎中实体的最新坐标和属性同步回 LDD 数据 |
| ↑ 推送到引擎 | LDT → 引擎 | 将 LDD 中新增或修改的区域推送到引擎,自动创建/更新 Actor |
| ⟳ 全量同步 | 双向 | 同时拉取和推送,自动合并双向变更 |
| 引擎 | 插件语言 | 状态 |
|---|---|---|
| Unreal Engine 5 | C++ Editor Plugin (Slate UI) | ✅ 可用 |
| Unity | C# (Editor 脚本) | ✅ 可用 |
| Godot / 其他 | — | 🔮 按协议实现插件即可扩展 |
UE5 桥接插件中的白盒形状使用语义化网格材质(ShapeRole),每种角色对应不同颜色。此配色同时用于 LDT 平面图渲染和场景原画 AI 生成提示。
在 UE5 中选中 LDT Shape Actor,在 Details 面板的 LDT | Shape → ShapeRole 下拉菜单中选择角色即可切换材质。
| 角色 | 色块 | 英文 Key | 语义类别 | 说明 |
|---|---|---|---|---|
| 地面 | floor | terrain | 室内地板、平台表面 | |
| 墙壁 | wall | architecture | 垂直墙面、围栏 | |
| 阻挡物 | obstacle | architecture | 不可通行的障碍 | |
| 掩体 | cover | architecture | 战斗掩护物 | |
| 天花板 | ceiling | architecture | 顶部封闭面 | |
| 坡道 | ramp | terrain | 斜坡、缓坡 | |
| 楼梯 | stairs | architecture | 阶梯、台阶 | |
| 装饰 | decoration | prop | 纯视觉装饰物 | |
| 危险区域 | hazard | hazard | 伤害区域、陷阱 | |
| 水体 | water | natural | 河流、湖泊、池塘 | |
| 山石 | rock | natural | 岩石、悬崖 | |
| 建筑 | building | architecture | 建筑结构、房屋 | |
| 植被 | vegetation | natural | 树木、草丛、灌木 | |
| 交互物件 | interactive | interactive | 开关、门、机关 | |
| 奖励物件 | reward | interactive | 宝箱、拾取物 | |
| 可行走地形 | terrain | terrain | 室外地面、泥地、路径 | |
| 自定义 | custom | custom | 用户自定义语义 |
projects/ 文件夹中。备份该文件夹即可备份所有项目。config.json 保存了你的配置信息(包括 API Key)。.uproject 文件;Unity 项目根目录下应有 Assets/ 文件夹。| 快捷键 | 功能 |
|---|---|
| Enter | 发送聊天消息 / 修改意见 |
| Shift + Enter | 聊天输入框换行 |
| Esc | 停止正在进行的 AI 生成 |
| Ctrl + S | 手动保存所有数据 |
| 快捷键 | 功能 |
|---|---|
| W | 切换到移动模式 |
| R | 切换到旋转模式 |
| S | 切换到缩放模式 |
| Delete | 删除选中区域 |
| F | 聚焦选中区域 |
| 1-5 | 切换楼层高度 |
| Ctrl + Z | 撤销 (最多 30 步) |
| Ctrl + Y | 重做 |
| 右键拖拽 | 平移视角 |
| 右键 + WASD | 飞行模式移动相机 |
| 滚轮 | 缩放视角 |
3D 模型 & 引擎
文档
项目备份