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
羽毛球分组比赛记分
小程序二维码

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

小夜