一键导入
rpg-scene-image-to-json
將 2D 俯視場景圖(截圖/AI 繪製稿/手繪 mockup)轉換成 RpgRoom 地圖 JSON。當使用者提供場景圖片並要求轉成遊戲室地圖時使用,例如「根據 [圖片] 製作 [場景名],出入口設置在 [場景2名]」。不符合格式的圖片防呆拒絕執行。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
將 2D 俯視場景圖(截圖/AI 繪製稿/手繪 mockup)轉換成 RpgRoom 地圖 JSON。當使用者提供場景圖片並要求轉成遊戲室地圖時使用,例如「根據 [圖片] 製作 [場景名],出入口設置在 [場景2名]」。不符合格式的圖片防呆拒絕執行。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
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 啟不動時使用。
為 RpgRoom 生成 2D RPG 地圖場景 JSON(房屋外觀、室內房間、布置場景)。當使用者要求新增/修改 RPG 地圖、場景、房間布置、NPC 配置時使用。支援「設計 [長x寬] 的 [風格] 場景,出入口接 [場景名]」參數化需求。
| name | rpg-scene-image-to-json |
| description | 將 2D 俯視場景圖(截圖/AI 繪製稿/手繪 mockup)轉換成 RpgRoom 地圖 JSON。當使用者提供場景圖片並要求轉成遊戲室地圖時使用,例如「根據 [圖片] 製作 [場景名],出入口設置在 [場景2名]」。不符合格式的圖片防呆拒絕執行。 |
輸入一張場景圖,轉換成 src/pages/RpgRoom/data/000N_map.json。
與 rpg-map-generator(文字需求 → JSON)互補,本技能是 場景圖 → JSON。
核心策略:轉錄優先——能腳本算出來的(逐格素材對應)不靠人工判讀,
AI 只處理腳本做不了的(前景拆層、未匹配格、遮罩、出入口語意)。
schema / 素材目錄 / 設計規範 / 工具全部共用 rpg-map-generator 的資源:
.claude/skills/rpg-map-generator/references/map-schema.md.claude/skills/rpg-map-generator/references/design-rules.md.claude/skills/rpg-map-generator/references/tile-catalog.md(+分冊)python3 .claude/skills/rpg-map-generator/scripts/map_registry.py --name <場景名>node .claude/skills/rpg-map-generator/scripts/render_map.cjs <json> <png> [--debug]python3 .claude/skills/rpg-map-generator/scripts/validate_map.py [--stage N].claude/skills/rpg-map-generator/scripts/crop_tile.cjs、contact_sheet.cjs從需求解析:圖片路徑(必須)、場景名(缺省時依圖片內容取名並在回報標註)、 出入口目標場景。
map_registry.py --name 解析成 index;找不到 →
❌ 防呆拒絕:參數層 — 找不到場景「X」 — 可用場景:<registry 名單>。拒絕訊息統一格式:❌ 防呆拒絕:<層級> — <具體原因> — <可行的修正建議>
第 1~2 層(自動化):
node .claude/skills/rpg-scene-image-to-json/scripts/precheck_image.cjs <場景圖路徑>
exit 1 即拒絕,直接把腳本輸出轉述給使用者。檢查:路徑存在、PNG/JPG/WebP 點陣圖(magic bytes,SVG/PDF/GIF/BMP 拒絕)、尺寸 ≥320×320 且 ≤8192、 長寬比 ≤3:1;通過時輸出 32px 網格換算比例。
第 3 層(Read 圖判讀內容)——必須全部成立才能繼續:
以下任一成立 → 拒絕:
第 4 層(素材對應比對,自動化;順便輸出轉錄明細):
node .claude/skills/rpg-scene-image-to-json/scripts/precheck_tiles.cjs <場景圖> 0.65 \
--emit-grid /tmp/grid.json
把場景圖對齊 32px 網格後逐格與圖庫做像素比對。exit 1 即拒絕:
通過時 /tmp/grid.json 即逐格匹配明細(直接供下一步轉錄),「未匹配格」
是 NPC/疊層所在的線索。補充判斷:列出場景關鍵元素對照 tile-catalog
分冊確認都有對應素材;有缺仍應拒絕並列出清單。
node .claude/skills/rpg-scene-image-to-json/scripts/grid_to_styles.cjs /tmp/grid.json /tmp/draft.json
地板/牆/家具自動轉成 styles[](已做 rx/ry 合併)。輸出另含
npcCells(匹配到 man.png 的格 = NPC 候選位置)與 unmatchedCells(人工判讀)。map.index 用 map_registry.py --next-index 取得,
檔名 /tmp/000N_map.json;把草稿 styles 填入。crop_tile.cjs 裁切 + Read 確認(絕不憑空猜座標);n 欄位改為語意名稱(地板/牆壁/書櫃…),同素材相鄰塊可再手動合併。e,h:1~8 貼物件下緣)→ 出入口傳送(cm/cmm,目標 =
參數解析出的 index)。[[kbd:]]/[[link:url|text]]/[[mark:]] markup。in[]:門內側可行走區(32×48 全身不相交任何碰撞/NPC),背對入口,對齊 32。validate_map.py --stage 4 /tmp/000N_map.json——修正所有 ERROR。node .claude/skills/rpg-map-generator/scripts/render_map.cjs /tmp/000N_map.json /tmp/render.png
node .claude/skills/rpg-scene-image-to-json/scripts/precheck_tiles.cjs <原場景圖> --compare /tmp/render.png 0.85
逐格一致率 ≥85% 才驗收;未達標依輸出的差異格座標逐格修正後重渲染再比
(差異格集中處通常是:z 層蓋錯、合成格轉錄錯、漏家具)。修正 3 輪仍未達標
→ 停下來,把比對輸出與兩張圖並列回報給使用者裁決。src/pages/RpgRoom/data/000N_map.json;來源地圖補回程傳送
(cm/cmm 雙向成對),兩張地圖不帶參數全量驗證 0 ERROR。render_map.cjs --debug 截圖。e 都有對應 messages[e]。