Community影像github.com

michaelweber/page-to-poster

將文字冒險地點(PDF 頁面或文字)加上粗略地圖指引,轉換成 3D Blender 模型和可列印的等角剖面海報,採用網版印刷風格,提供 GM 與玩家版本。用於 RPG 冒險中的地城、地堡、船艦、太空站或建築物等地點繪製、建模或製作海報。

page-to-poster 是什麼?

這個 AI 技能「Page to Poster」能將 RPG 冒險腳本或文字描述的地點轉化為等角剖面海報。它透過 AI 解讀冒險文字,自動生成簡要描述、空間佈局 JSON、物品放置 Python 腳本與海報設定 JSON,並使用無頭 Blender 進行 3D 建模與渲染。支援 GM 與玩家兩種版本,可透過調整參數控制視角、裁切高度、材質調色盤等,並可產生戰鬥地圖或房間視角渲染,甚至整合 ComfyUI 進行 AI 繪圖。此技能適用於 Claude Code、Cursor 等支援 Python 腳本的開發環境,能將文字迅速轉換為專業品質的 RPG 冒險輔助素材,是 GM 與地圖製作者的強大工具。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/michaelweber/page-to-poster/tree/HEAD

Installed? Explore more 影像 skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

Page to poster – 頁面轉海報

你閱讀冒險內容,然後撰寫五個小檔案來描述該地點。這個資料夾中的程式碼會檢查這些檔案,在無頭 Blender 中建立 3D 模型、渲染它,並組成海報。

adventure (PDF/text) + guidelines
   -> brief.md        文字中關於該地點的說明          (你撰寫)
   -> layout.json     房間、通道、入口,單位為公尺       (你撰寫;`check` 會驗證並繪製)
   -> props.py        每個房間中的物品               (你撰寫;`build` 會建模)
   -> poster.json     標題、標籤、標註、文字框        (你撰寫;`poster` 會渲染並組成)
   -> out/poster_gm.png, poster_player.png, poster_bare.png  (+ .jpg)

p2p.py 位於此資料夾。從使用者的工作目錄呼叫其完整路徑,這樣專案資料夾會建立在該目錄中,而不是在此處;下方指令簡寫為 python p2p.py。如果 python 不是 Python 3,請使用 python3。

全程適用的規則

  1. 查看你產生的每一張圖片。 每個步驟都會寫入一張圖片;在繼續之前,用你的圖片閱讀工具打開它。步驟說明了檔案名稱。大多數錯誤在圖片中一目了然,但在數字中難以察覺。
  2. 單位為公尺,+x 向東,+y 向北,地板位於 z = 0。 props.py 中的角度為弧度。
  3. 說明你估算的內容。 冒險內容很少給出尺寸或精確位置。請估算,在 brief.md 中寫下「est.」,並在回報時列出估算值。切勿將虛構的事實呈現為書籍的內容。
  4. Blender 透過 p2p.py 以無頭模式執行。 不要開啟它的視窗,也不要使用 Blender MCP 伺服器。
  5. 草稿很便宜。 使用 --dpi 100 製作草稿海報;一旦草稿正確,再以 --dpi 200 渲染最終版本。
  6. 專案資料夾包含冒險的文字和地圖。除非你有權發布該冒險,否則請將其保存在公開儲存庫之外。

步驟 0:檢查機器

python p2p.py doctor

必須以 Core pipeline: ready 結束。如果缺少 Python 套件:pip install -r requirements.txt。如果缺少 Blender,請依照 docs/setup.md 操作。不需要 GPU(渲染會回退到 CPU),ComfyUI 為選用:只有在使用者提供 URL 時才傳入 --comfy URL(請參閱 docs/comfyui.md)。

步驟 1:開始專案並閱讀來源

python p2p.py new PROJECT --source adventure.pdf --pages 53-56

PROJECT 是用於此地圖的新資料夾,例如使用者工作目錄下的 maps/the-site-name。--pages 是要映射的位置在 PDF 中的頁碼(第一頁為 1);如果是短 PDF,可以忽略此參數。文字或 Markdown 來源會直接複製。此指令會為五個檔案寫入範本,對於 PDF,還會產生 source/page_NNN.txt 和 source/page_NNN.png。

閱讀所有文字。然後查看每一頁的圖片:地圖、圖表和側邊欄只會出現在圖片中。如果書中有地圖,該地圖會決定房間的位置;文字則決定房間內的物品。

根據使用者的要求填寫 guidelines.md;他們沒有提到的部分保留預設值。只有在你無法判斷要映射哪個位置時,才詢問使用者。

填寫 brief.md:每個房間一行,每個連通處一行,每個入口一行。引用頁碼。這是決定哪些是已知資訊、哪些是估算資訊的步驟。

當文字沒有給出尺寸時:門為 1 公尺,走廊為 2.5 到 3.5 公尺,牢房或辦公室為 4 x 5 公尺,一般房間為 6 x 8 公尺,大廳為 15 x 25 公尺,洞穴或飛機棚為 30 x 50 公尺。天花板:一般房間 3 公尺,大廳 5 到 8 公尺。在奇幻遊戲中,一個地圖方格通常是 5 英尺(1.5 公尺);一個「步幅」約為 1 公尺。

步驟 2:layout.json

用該地點的房間、通道和入口替換範本。docs/layout.md 包含所有鍵值。兩個可學習的完整專案:examples/brine-chapel/(一個石造地城,來自沒有地圖的文字)和 examples/kestrel-9/(一個預製太空站,來自帶有草圖地圖的 PDF)。基本要點:

  • 房間是一個軸對齊的清晰地板矩形:`

相關技能