圖片背景幻化 是做什麼的?
桌面只會將修改的背景繪製為模組自己渲染的 scene,且不會在其中繪製任何光柵圖像。
因此,圖片會被追蹤為向量路徑,在嚴格且無聲的大小限制下打包,並由一個小型模組繪製。
在變更模組的繪製方式之前,請先閱讀 references/limits.md;它列出了我們測量過的內容以及哪些情況會無聲失敗。
工作流程
- 取得圖片。 一張圖片,或一張淺色(日間)和一張深色(夜間)圖片。橫向約 1600x1000 的效果不錯;
應用程式會使用
xMidYMid slice進行裁切,因此請將主體遠離頂部和底部。帶有筆觸感、柔和的藝術風格 比帶有輪廓的賽璐珞風格更容易逐個字元追蹤;照片也可以。如果使用者要生成藝術圖像, 請在他們操作前告知。 - 在臨時資料夾中安裝工具(不在模組中):
python -m pip install --target "$TMP/pb-vtracer" vtracer mkdir -p "$TMP/pb-svgo" && cd "$TMP/pb-svgo" && npm init -y >/dev/null && npm install svgo@4 - 建立模組資料夾 在
~/.claude/skills/<id>/下(每次工作階段都會載入):複製 assets/mod-template/,然後從外掛編寫技能中複製make-colors.js和make-colors.d.ts到其hooks/目錄中,保持不變。填寫每個__PLACEHOLDER__(__ID__是資料夾 名稱,使用小寫字母和連字號)。對於單張圖片,請刪除另一個匯入、其場景和外觀,並將auto指向該張圖片。 - 查看圖片 並列出其區域(裁切和檢視它們):主體、臉部、皮膚區域、每一側。
在模組旁邊(而非
hooks/內部)為每張圖片編寫一個設定檔,使用 references/tracing.md 選擇區域和設定,並以 assets/example-night.json(一個坐在入口右側的女孩)作為範例。對於一組晝夜圖片,為每個設定檔給予"scheme"和兩個預算:{"FULL": 259500, "HALF": 129500};對於單張圖片,僅使用FULL且不要有scheme。 - 追蹤,在背景執行(一次執行需要幾分鐘):
它會對每個區域的每個選項進行一次追蹤,符合每個預算(首先所有區域,然後按優先順序補充細節), 並寫入python -I scripts/trace_scene.py night.json --vtracer "$TMP/pb-vtracer" --svgo "$TMP/pb-svgo" --preview "$TMP/pb-preview/night.html"scene-<name>.ts。將設定檔的out指向模組的hooks/目錄。 - 預覽 在瀏覽器面板中開啟 HTML(使用
python -m http.server提供其資料夾服務)。以 2 倍裁切檢查 主體,因為應用程式會放大圖片。根據 tracing.md 中的表格修正看起來不對的地方,然後重新追蹤。 - 顏色。 從圖片中取樣表面顏色(主要的牆壁或天空色調;深色模式保持深色)
並執行
makeColors;其問題清單不得包含「Desktop 不會繪製」的條目。 - 驗證並移交:
claude plugin validate <模組資料夾>。告訴使用者重新載入視窗或開始一個 新的工作階段,輸入任何訊息(主題會在第一次提示時設定),然後嘗試/backdrop day|night|auto。 請他們查看特定區域;他們的螢幕截圖才是真正的測試。之後刪除臨時工具資料夾。
會咬人的規則
- 僅使用單引號括住 SVG,任何 Svg 中不得使用
"、\或反引號:跳脫字元會計入總字元數。 - 一個場景的所有 Svgs 總和 ≤ 約 259500 個字元;每個 Svg ≤ 約 98000 個字元。超過任一限制,桌面就會什麼都不顯示且什麼 都不說;模版會在工作階段開始時記錄過大的場景。
- 保持
glass為開啟狀態;為同時適用於兩種模式的畫面保留tint。 - 不要使用
image、color、gradient或vector背景、<image>或overrideColorScheme:它們都不會繪製 或產生效果。 - 在
prompt.submit時設定主題,而非session.start。 - 改善某個區域時,保留使用者表示喜歡的部分:為該區域指定自己的區域或優先順序, 而不是重新調整所有內容。每次變更時都要報告受影響的區域。