dsh-wtskin-project:面向《戰爭雷霆》的自定義塗裝插件

前言

在《戰爭雷霆》中製作自定義塗裝,傳統流程是「量 UV → 逐面放置角色 → 合成 → 導出 DDS + blk」。這個鏈路涉及多個步驟,每一步都需要手動操作,容易出錯,尤其對於需要精細控制每個圖層位置的用戶來說,效率較低。

DSH(DeepSeek Harness)的理念是「一切皆插件」,通過插件可以擴展工具鏈。dsh-wtskin-project 就是這樣一個插件,它把上述流程變成可調用的工具,並內置了四點多邊形取點器。

這是什麼

dsh-wtskin-project 是一個面向 DeepSeek Harness 的《戰爭雷霆》自定義塗裝插件。由 Wuqiu-Ying 維護,屬於「趣味換裝」分類。插件提供了一套聲明式圖層系統,支持 4K DDS 紋理與 .blk 文件導出,讓用戶通過配置文件控制塗裝流程,而不是手動操作。

核心功能

插件提供以下工具:

工具 作用
dsh_wtskin_project 創建 / 讀取 / 更新 project.json(畫布尺寸、底漆、輸出設置)
dsh_wtskin_layer 增刪改查圖層:圖片 + 4 點四邊形 + 旋轉 / 翻轉 / 偏移 / 裁切線
dsh_wtskin_export 合成底漆與全部圖層,輸出 PNG、DDS、預覽圖和 .blk
dsh_wtskin_presets 列出內置機型預設(貼圖名與 blk 條目)
dsh_wtskin_measure 啓動本地取點頁(四點多邊形模式)並返回 URL

取點器

dsh_wtskin_measure 會在 127.0.0.1 上起一個只服務單頁的本地服務器(隨機端口),把內置的 assets/measure.html(基於 image-pixel-coords.html 擴展)發給你:

  • 拖入 / 粘貼一張貼圖預覽
  • 點「四點框選」,依次點 4 個點,自動畫出四邊形
  • 「縮放 ×」默認取工程的 quadScale(比如 1600 預覽對應 2.56)
  • 保存到工程:直接把四邊形寫進 project.json 的指定圖層(該圖層帶自己的 quadScale,不會被二次縮放)
  • 複製:輸出 [[x,y],[x,y],[x,y],[x,y]],可以手動交給 dsh_wtskin_layer

頁面只用原生 JS,不依賴網絡。

安裝與啓用

插件通過本地路徑安裝,不需要從 GitHub 直接添加。

# 有 dsh CLI
dsh plugin --profile desktop add link:D:/path/to/dsh-wtskin-project

# 沒有 CLI
node install.mjs --profile desktop

安裝後需要重啓 DSH,工具會在啓動時註冊。

典型用法

1. 創建工程

dsh_wtskin_project  dir=D:/skins/q5l action=create data={"quadScale":2.56,"width":4096,"height":4096}

這裏創建了一個 4096×4096 的工程,quadScale 爲 2.56。

2. 啓動取點器

dsh_wtskin_measure  dir=D:/skins/q5l id=wing_u scale=2.56

打開返回的 URL,量完點「保存到工程」。

3. 更新圖層

dsh_wtskin_layer    dir=D:/skins/q5l action=update id=wing_u layer={"image":"p8.png","size":"chord","factor":1.3,"rotate180":true}

這裏指定了圖片路徑、尺寸模式、縮放因子和旋轉。

4. 導出

dsh_wtskin_export   dir=D:/skins/q5l

導出會合成底漆與全部圖層,生成 PNG、DDS、預覽圖和 .blk 文件。

尺寸模式

  • chord:按四邊形前後緣中點距離縮放(最常用)
  • quadHeight:按四邊形包圍盒高度
  • height:直接給像素高度
  • widthAdapt:窄條面板(翼根)用,按寬度適配

圖層字段

{
  "image": "path/to/character.png",
  "quad": [[x0,y0],[x1,y1],[x2,y2],[x3,y3]],
  "quadScale": 1,
  "size": "chord",
  "factor": 1.2,
  "offset": [0, -40],
  "rotate180": true,
  "flip": false,
  "clipLine": [[x0,y0],[x1,y1]],
  "expand": 8,
  "opacity": 1
}

前兩個點是前緣,後兩個點依次是後緣 —— 引擎用它算弦長和中點。quadScale 是該圖層自己的座標縮放,覆蓋工程級設置。

產物

導出後的文件位於 out/ 目錄:

out/
├── q_5l_c.png       合成結果(4096)
├── q_5l_c.dds       32 位未壓縮 DDS(約 64MB)
├── preview.png      1600 預覽
└── q_5l.blk         引導文件

整個 out 複製進 War Thunder/UserSkins/ 即可。

原理

插件的工作原理分爲三步:

  1. 底漆:讀一張現有貼圖做細節載體(鉚釘、蒙皮線),按亮度映射到自定義色帶,可選邊緣發光與點陣。
  2. 圖層:仿射變換(旋轉 → 縮放 → 平移到四邊形中心),再用四邊形做 alpha 裁切,可選沿直線做半平面裁切。
  3. 導出:Pillow 寫 32 位未壓縮 DDS(BGRA),並生成 blk。

適用場景與注意

適合需要批量處理《戰爭雷霆》塗裝、希望用配置文件控制圖層參數的用戶。插件以當前 dsh 進程權限運行,安裝前應檢查源碼與許可證。

限制

  • 不自動測量 UV:四邊形要靠取點器人工量。
  • DDS 未壓縮:4K 約 64MB;需要 DXT5 請用 PS + NVIDIA DDS 插件另存。
  • 法線貼圖(_n)不自動生成。

許可

MIT。用戶素材(角色立繪等)的版權由使用者自行負責。

結語

dsh-wtskin-project 把《戰爭雷霆》塗裝流程從手動操作變成了可配置的聲明式工作流。如果你正在用 DSH 做這類任務,可以嘗試用它來簡化圖層管理和導出過程。

  • 目錄頁:https://www.skillhub.cn/plugins/Wuqiu-Ying/dsh-wtskin-project
  • GitHub:https://github.com/Wuqiu-Ying/dsh-wtskin-project
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜