Sts2 皮肤管理器

Sts2 皮肤管理器

在游戏内通过下拉菜单即时切换已安装的角色皮肤模组——无需手动整理文件夹。

游戏玩法

功能简介

《杀戮尖塔2》的模组社区已经拥有了大量角色皮肤(例如 Regent 的 Mesugaki、Necrobinder 的 Booba 等)、卡牌美术/肖像重绘,以及将角色骨骼与卡牌美术捆绑在一起的整合包(例如 AncientWaifus)。如果你同时安装了多个此类模组,通常只有一个能生效,或者你需要手动切换文件夹。Sts2 Skin Manager 让你可以同时安装所有这些模组,并在角色选择界面轻松开关或自由组合你喜欢的部分。

功能特性

  • 自动检测 —— 任何其 .pck 文件覆盖了角色骨骼路径或卡牌美术/肖像的皮肤模组都会被自动识别。无需注册,无需兼容性文件。
  • 角色皮肤下拉菜单 —— 在角色选择界面直接为每个角色选择要激活的皮肤变体。混合模组(骨骼+额外内容捆绑)会显示 📦 图标和逐项提示。
  • 卡牌皮肤面板 —— 同时开关多个卡牌皮肤包,通过拖放或 ↑/↓ 箭头调整优先级(顶部优先处理重叠卡牌),每行显示明确顺序号和 ✓/✗ 状态图标。
  • 混合模组面板(v0.6.0 新增) —— 针对将角色骨骼与卡牌美术/事件场景捆绑的模组。在其独立标签页中独立开关,以便在其他主骨骼选择之上叠加额外内容。示例:选择 Mesugaki 作为骨骼,在此处开启 AncientWaifus 以使用其卡牌美术——下拉菜单中的骨骼始终优先处理重叠路径。
  • 可折叠的皮肤管理器开关 —— 整个界面位于单个 ▶ 皮肤管理器 开关内,默认折叠以保持角色选择界面整洁。无论主体状态如何,“保存/放弃”按钮始终与开关并排显示。
  • 标签式内部布局 —— 卡牌皮肤和混合模组是同一面板内的标签页——一次只显示一个行列表,展开时提供充足的内容区域。
  • 悬停预览 —— 在提交前查看皮肤效果。悬停角色下拉菜单旁的 👁 图标,或悬停卡牌皮肤行的标签。读取与 .pck 同目录的 preview.png(或 .jpg / .webp,如果作者提供);否则,自动从 .pck 中提取合理的默认图像(角色为选择界面美术,卡牌包为第一张卡牌美术)。不支持实时骨骼切换,不修改游戏状态。
  • 内联重命名模组 —— 为任何角色变体或卡牌皮肤设置友好的显示名称。点击 ✏️,输入,点击 ✓ 保存(或按 Enter),点击 ✕ 取消。模组 ID 在底层始终是唯一键;别名永远不会破坏匹配。与其他 ID/别名的冲突会在内联处以红色高亮和提示拒绝。
  • 统一保存/放弃 —— 每个面板共享一个保存按钮。进行任意组合修改,单击一次“保存”,一个弹窗,一次重启。“放弃”则将所有更改回滚到启动状态。
  • 通过 Steam 自动重启 —— 确认弹窗后,模组将通过 Steam 重新启动《杀戮尖塔2》(约5-10秒)。取消则保留更改,等待下次启动时应用。
  • 可配置覆盖层位置(v0.9.0 新增) —— 角色选择覆盖层默认停靠在右上角,避开了多人游戏大厅面板和游戏自身放置在其他左上角的 UI。安装可选的 ModConfig 模组后,你会获得一个游戏内下拉菜单,可切换回原始的左上角布局——更改立即生效,无需重启。
  • 多语言界面 —— 跟随游戏的当前语言。内置 16 种语言环境,英语为后备。

安装方法

  1. 下载最新发布的 zip 文件。
  2. Sts2SkinManager 文件夹解压到 <杀戮尖塔2安装目录>/mods/
  3. 首次启动会进行一次性自举(重写加载顺序)。一个 10 秒倒计时弹窗提供通过 Steam 自动重启的选项——确认后即可应用。
  4. 在角色选择界面,你将看到 皮肤 [角色]: 下拉菜单和 卡牌皮肤 面板。

兼容性

任何覆盖 res://animations/characters/{characterId}/ 路径下的角色皮肤模组,以及任何覆盖 card_art/... 或提供 card_portraits/ 路径的卡牌美术/肖像模组,均可兼容。模组作者无需进行任何特殊操作。

与原版角色模组完美兼容。 添加全新角色的模组(例如 Ryoshu)与皮肤模组共享 animations/characters/{char}/ 路径模式,因此早期版本可能会拦截其 .pck,导致新角色从角色选择界面消失。SkinManager 现在从 SlayTheSpire2.pck 读取基础游戏角色名单,并且只管理针对基础角色的模组——自定义角色始终保持自动挂载,无冲突。

阻止非活动皮肤模组的强制覆盖。 某些角色皮肤模组(例如 Booba-Necrobinder-Mod)注册了 Harmony 补丁,会对基础角色的每个实例应用缩放/位置/骨骼覆盖——即使你选择了不同的皮肤。SkinManager 会拦截 ModManager.TryLoadMod,并阻止非活动角色模组的 DLL 加载,从而确保未选择的皮肤无法干扰你实际选择的皮肤。

致皮肤作者 —— 在 .pck 旁边放置一个 preview.png(或 .jpg / .jpeg / .webp)文件,管理器将使用它进行悬停预览。这是可选的——如果你不提供,管理器会自动从 .pck 中提取一个。

限制

  • 视觉更改需要重启游戏 —— 《杀戮尖塔2》的骨骼角色不支持在运行时热替换其数据,因此模组会通过 Steam 自动重启(约5-10秒)。
  • 检测模式仅限于战斗骨骼路径(角色)和卡牌美术/肖像路径(卡牌)。仅包含图标的模组无法被识别。
  • 不支持加密的 .pck 文件。

问题反馈

如果某个皮肤或卡牌模组未被检测到或被错误分类,请在反馈时附上你的启动日志。日志包含每个模组的分类行,精确显示管理器识别到的资源域,这将大大加快诊断速度。

日志位置 —— <用户数据>/SlayTheSpire2/logs/godot.log(Windows 上通常为 %APPDATA%\SlayTheSpire2\logs\godot.log)。每次启动都会在同一文件夹中创建带时间戳的备份;最新的始终是 godot.log

查找内容 —— 搜索带有 [Sts2SkinManager] 标签的行。检测块会列出每个模组及其匹配的资源域:spinechar_selectcard_artcard_portraitscustom_char。将此块(连同周围几行内容)粘贴到 GitHub issues 或 Nexus 评论中。

源代码

GitHub:https://github.com/ing-gom/Sts2SkinManager

采用 MIT 许可证。欢迎提交错误报告和拉取请求。