generate2dmap 用于规划和构建 2D 游戏地图与场景,包括俯视和横版关卡、瓦片地图、道具包、视差背景,以及带灯光和运动的 HD-2D 战斗或剧情画面。它的核心原则是:构建请求所需的最小场景包,并遵循游戏自身的美术、相机、渲染器和数据约定。一张背景图不需要游戏系统;一张可玩地图则需要明确的几何和数据,而不仅仅是一幅画。
适用场景包括:需要碰撞和出口的可玩地图、关卡、房间组、瓦片地图、地形或道具套件;视差背景、战斗、标题或剧情背景,或带灯光和运动的 HD-2D 画面;地图数据需要验证、预览或导出到 Tiled、Godot 或 LDtk。不适用场景包括:角色、物品和攻击特效(应使用 generate2dsprite);从视频生成角色运动(应使用 video2dsprite);用户要求代码绘制的瓦片、布局或视差(应使用 codeart2d);仅需 API 或 CLI 调用(应使用 generate2dmedia)。
使用前需进行能力检查,运行 forge_doctor.py 并传入主机工具列表,其 ROUTES 块会显示哪些 API 密钥已配置、本地就绪情况和解析顺序。美术来源方面,图像生成是地图美术的默认方式,包括地形和瓦片表、道具套件、HD-2D 画面、手绘背景和视差层。地图数据(布局、碰撞、出口、生成点)是需要编写和验证的数据,不是美术。每个资产需记录 art_source,并在回复中说明路由。用户明确指定的路由优先。
API 路由在配置密钥时可用,支持 OpenAI、Google Gemini、xAI、BytePlus Seedream 或 fal.ai。本地路由可使用自己的图像工具,或用户已登录的 Codex CLI、Grok CLI。codeart2d 仅在用户明确要求代码绘制美术,或 route_media.py 输出 no-route 时使用。每张图像通过 route_media.py 命令生成,输出包含路由、产物、sha256 和估算费用的 JSON 行。
使用方式上,每个工具从用户项目根目录以单行命令运行,输入输出保持在项目内。工具会写入新的输出目录或文件,拒绝已存在的路径,并在检查通过后才发布。需要 Python 3.10+、numpy 和 Pillow,推荐 scipy;场景运动需要 ffmpeg 5.1+;浏览器运行时需要 node。
流水线为:先规划导航,再制作美术和套件,放置,验证数据,预览,最后导出。可玩地图是 map_bundle.v2。具体工具包括:从图集提取道具包、提取地形瓦片、提取平台条带、代码绘制自动瓦片(仅按请求)、代码绘制可玩地图(仅按请求)、合成分层预览、验证可玩地图、构建场景预览、导出到 Tiled/Godot/LDtk、验证房间块和布局、验证视差、适配背景、HD-2D 画面、灯光与氛围、局部编辑检查、背景运动、全帧场景循环,以及 Web 游戏中的碰撞和路径。
验收标准:可玩地图只有在 map_bundle.py validate 和 map_nav.py check 通过,且 build_scene_preview.py 的路线检查对每条路线都返回 ok: true 后才被接受。map_nav 证明的是数据可达性,而非碰撞与绘制美术是否匹配。需在游戏尺度下用代表性角色合成,检查生成点间隙、碰撞体与树冠、门户到达、接缝和相机覆盖。对于画面,最佳状态是 needs-visual-review。引用 scene_motion.py qa 的数字后才能称循环无缝。原生 alpha 必须保持紫色;RGB 棋盘格不是透明。在声称移动性能前需测试设备。交付时需提供原始文件和提示词及其来源、运行时资产和数据、预览和已运行的检查,以及剩余限制。必须逐字报告每个已发布 QA 信封中的 WARN 或 FAIL 检查,当任何已发布信封有警告时,绝不能说“所有检查通过”。
参考资料包括 map-strategies.md、map-presets.md、layered-map-contract.md、prop-pack-contract.md、side-scroll-scenes.md、parallax-backgrounds.md、background-scenes.md、hd2d-plates.md、hd2d-presentation.md、scene-preview.md、engine-maps.md,以及 references/schemas/map.schema.json 中的数据契约。