원클릭으로
rpg-map-generator
為 RpgRoom 生成 2D RPG 地圖場景 JSON(房屋外觀、室內房間、布置場景)。當使用者要求新增/修改 RPG 地圖、場景、房間布置、NPC 配置時使用。支援「設計 [長x寬] 的 [風格] 場景,出入口接 [場景名]」參數化需求。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
為 RpgRoom 生成 2D RPG 地圖場景 JSON(房屋外觀、室內房間、布置場景)。當使用者要求新增/修改 RPG 地圖、場景、房間布置、NPC 配置時使用。支援「設計 [長x寬] 的 [風格] 場景,出入口接 [場景名]」參數化需求。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Godot 遊戲開發循環(匯出、測試、產物 commit)。當需要修改 godot-src/(RPG)或 godot-candy-src/(糖果)的 GDScript/場景/關卡,或要重新匯出 Web build、同步地圖 JSON 時使用。
使用 Google libwebp CLI (`cwebp`) 將 JPG/PNG 圖片批次轉換為 WebP 格式。當需要壓縮圖片、批次轉檔、或將專案圖片統一為 WebP 時使用。
2D 地圖場景動態繪製與 RPGRoom 擴展指南。提供如何使用編輯器、匯出場景 JSON、設定碰撞邊界、NPC 對話、場景傳送門以及離屏 Canvas 預渲染機制的標準化流程。
Design intelligence skill providing professional UI/UX knowledge for building production-grade interfaces. Includes design system architecture, token management, color palettes, typography, UX guidelines, and accessibility standards. Adapted for Vue 3 + Quasar + Tailwind CSS v4 stack.
本專案網頁驗證流程(Playwright、hash 路由、Godot iframe、多人對戰)。當需要在瀏覽器中驗證頁面行為、截圖、測 /battle 多人同步、或 Playwright MCP 啟不動時使用。
將 2D 俯視場景圖(截圖/AI 繪製稿/手繪 mockup)轉換成 RpgRoom 地圖 JSON。當使用者提供場景圖片並要求轉成遊戲室地圖時使用,例如「根據 [圖片] 製作 [場景名],出入口設置在 [場景2名]」。不符合格式的圖片防呆拒絕執行。
| name | rpg-map-generator |
| description | 為 RpgRoom 生成 2D RPG 地圖場景 JSON(房屋外觀、室內房間、布置場景)。當使用者要求新增/修改 RPG 地圖、場景、房間布置、NPC 配置時使用。支援「設計 [長x寬] 的 [風格] 場景,出入口接 [場景名]」參數化需求。 |
為 src/pages/RpgRoom/ 生成符合統一 Schema 的地圖 JSON。一張地圖 = 一個
src/pages/RpgRoom/data/000N_map.json,存檔後由 data/index.ts 的
import.meta.glob 自動註冊,遊戲直接可玩,不需要改任何 code。
工作流對齊人工製作順序:骨架 → 場景擺設 → NPC → 遮罩 → 出入點, 每階段有自動驗證點(早期抓錯),機械性內容全部腳本化(降低失敗率)。
scripts/ 下,路徑從專案根目錄起)| 工具 | 用途 |
|---|---|
python3 scripts/scaffold_map.py | 骨架產生:地板/牆/天花板外框/邊界碰撞/門口,一鍵產出 |
python3 scripts/map_registry.py [--name X] | 地圖清單、場景名→index 解析(出入口防呆) |
node scripts/render_map.cjs <json> <png> [--debug] | 離線渲染預覽(含碰撞/傳送/出生點 overlay),免開 dev server |
python3 scripts/validate_map.py [--stage N] <json> | 驗證器;--stage 1~4 配合階段早期抓錯 |
node scripts/crop_tile.cjs / contact_sheet.cjs | 素材裁切驗證(▢ 條目用) |
node ../rpg-scene-image-to-json/scripts/precheck_tiles.cjs <render.png> | 跨 skill 借用:對渲染圖逐格比對圖庫,自動驗證素材座標沒切錯 |
從需求中解析:尺寸(如 960x640,自動 snap 32 倍數)、室內/室外、 風格/特色(家具主題、NPC 數量與對話主題)、出入口接哪張地圖。
map_registry.py --name <場景名> 解析;找不到時把可用場景
名單列給使用者選——不可猜(單向/斷鏈傳送是 ERROR)。先讀參考資料(references/ 下,只讀需要的):map-schema.md(欄位語意)、
design-rules.md(設計規範)、tile-catalog.md + 分冊(素材座標,▢ 條目要先驗證)、
examples/(範例)。
python3 .claude/skills/rpg-map-generator/scripts/scaffold_map.py \
--size 960x640 --type indoor --name 書房 --doors "S:448:64:房屋(2F)"
產出到 /tmp/000N_map.json(編號自動取最大 +1)。門格式 EDGE:OFFSET[:WIDTH[:TARGET]]。
驗證:validate_map.py --stage 1 /tmp/000N_map.json。
依 design-rules 在骨架上布置家具/裝飾:先大型家具靠牆、再小物件;
「會遮住角色的部分」(樹冠/屋簷/家具上半/天花板)拆 z:2。善用 rx/ry。
驗證(兩道):
render_map.cjs /tmp/000N_map.json /tmp/preview.png → Read 圖自查布局合理、無破圖。precheck_tiles.cjs /tmp/preview.png 0.9 → 純圖庫素材構成的渲染圖匹配率應 ≥90%;
明顯偏低 = 有素材座標切錯(切到鄰格素材),依未匹配格座標逐筆修正。NPC 對齊 32 網格;行走型(type:4)活動範圍不可含碰撞區;對話依「哆拉◯」
命名慣例 2~4 句,支援 [[kbd:]]/[[link:url|text]]/[[mark:]] markup。
驗證:--stage 2;render_map.cjs --layers=bg,npc,fg,area 檢視站位(NPC 缺
messages[e] 時渲染統計會直接警告)。
邊界牆(骨架已有)→ 家具碰撞(比視覺窄、只擋下半)→ 對話薄條(h:1~8 貼物件
下緣)。樓梯/大樹碰撞的觸發計算見 design-rules.md。
驗證:--stage 3;render_map.cjs --debug → Read 圖比對紅框是否貼齊視覺。
cm/cmm:cmm 必須指向目標地圖 in[] 的正確索引。in[] 落點在門內側可行走區(32×48 全身不相交碰撞/NPC)、背對入口、對齊 32。validate_map.py --stage 4(= 全量,單向傳送會報 ERROR)。/tmp/000N_map.json → src/pages/RpgRoom/data/000N_map.json。render_map.cjs --debug 截圖附在回報中。讀取現有 JSON 後在空區域追加 styles/isMove/npc/messages,不要移動既有
元素;messages 是陣列索引制(e 對應 messages[e]),只能往後追加,
不可在中間插入。改完跑全量驗證 + render 自查。
絕對不要憑空猜測圖庫座標——猜錯的後果是渲染出完全不相干的圖。 階段 1 的 precheck_tiles 會自動抓出大部分切錯的座標;其餘流程:
node .claude/skills/rpg-map-generator/scripts/crop_tile.cjs <b> <x> <y> <w> <h> /tmp/check.png
(批次對照用 scripts/contact_sheet.cjs,spec 一張 ≤12 筆)