
自定义骨架屏加载器
无需修改游戏文件或重新打包。它在运行时用外部自定义Spine资源替换游戏内角色、怪物、UI、视觉特效等的骨骼动画,实现非侵入式资源替换。
查看大图《杀戮尖塔2》自定义骨骼加载器
概述
CustomSkeletonLoader 是《杀戮尖塔2》的一款强大的运行时骨骼替换工具,允许模组制作者在不修改游戏文件的情况下,使用自定义资源替换游戏内的 Spine 骨骼动画。
它支持超过 136 种可替换的骨骼,包括可玩角色、怪物、商人、背景、UI 元素和视觉效果。
该模组内置了一个导出工具包,用于从 PCK 包中提取所有官方骨骼资源,一个能处理多种命名变体的智能名称匹配算法,以及无缝的 ModConfig 面板集成,方便进行调试和一键导出。
如果此模组对您有帮助,请点击“ endorse”按钮以示支持。:)
功能特性
1. 自定义骨骼替换
此模组会自动扫描模组目录下的 ReplaceResources 文件夹,查找自定义骨骼文件(.atlas, .skel, .png),并在运行时使用 Harmony 补丁替换游戏默认骨骼,对原始代码零侵入。
支持替换的资源类型:
- .atlas
- .skel
- .png
替换范围包括:
- 可玩角色: 铁甲战士、静默猎手、故障机器人、死灵法师、摄政王(包含战斗和武器变体)。
- 商人变体: 所有 5 个角色,具有独特的商店待机动画。
- 休息点: 角色专属的休息动画(包括死灵法师的 Osty 同伴)。
- 角色选择: 所有 5 个职业的完整选择界面骨骼。
- 怪物: 超过 90 种跨越所有幕的敌人类型(首领、精英、普通)。
- 背景: 仪式野兽、宝藏室(第1/2/3幕)、商人房间、主菜单、特斯卡特拉。
- UI 元素: 战斗充能球(暗黑、冰霜、玻璃、闪电、等离子)、MegaCrit 标志动画。
- 视觉效果: 首领爆炸、激光束、护盾效果、划痕、刀光、藤蔓触手。
2. 骨骼导出工具
该模组包含一个全面的内置导出功能,可通过 ModConfig 面板访问,该功能会将游戏 PCK 包中所有可替换的 Spine 骨骼资源提取为标准文件格式,方便编辑。
导出能力:
- 从 .spatlas(Godot 压缩格式)中提取完整的 .atlas 文件。
- 将 .spskel 二进制文件转换为与 Spine 编辑器兼容的标准 .skel 格式。
- 导出所有关联的 .png 纹理页,并具有正确的文件名。
- 处理多页纹理集(例如,necrobinder.png + necrobinder_2.png)。
- 自动创建带有重命名文件集的
/unified子目录,便于查看。 - 合并重复的骨骼(通过 MD5 哈希比较)以减少冗余。
导出输出结构:
Spine_resource/
├── ironclad/
│ ├── ironclad.atlas
│ ├── ironclad.skel
│ ├── ironclad.png
│ └── unified/
│ ├── ironclad.atlas
│ ├── ironclad.skel
│ └── ironclad.png
├── necrobinder/
│ ├── necrobinder.atlas
│ ├── necrobinder.skel
│ ├── necrobinder.png
│ ├── necrobinder_2.png
│ └── unified/
│ └── ...
└── ... (130+ 个骨骼目录)
导出总量: 超过136套包含完整纹理数据的骨骼。非常适合创建自定义骨骼模组或研究官方动画结构。
3. 运行时稳定性
稳定性特性:
- 并发安全缓存: 使用 ConcurrentDictionary 进行线程安全的骨骼数据缓存,并具有空值保护(失败的加载永远不会被缓存)。
- 资源生命周期管理: 在 try-catch-finally 块中进行适当的 GodotObject 释放,防止加载失败时内存泄漏。
- Harmony 非侵入式补丁: 所有替换都使用 Harmony 前缀/后缀,保留原始方法行为作为回退。
- 优雅降级: 缺失或无效的自定义文件会被静默跳过;游戏继续使用默认资源。
- 调试日志系统: 可配置的详细日志记录,用于故障排除(通过 ModConfig 开关控制)。
- 导出安全: 具有重复检测的原子导出操作可防止损坏;并发导出请求将排队处理。
- 路径自动解析: 自动定位相对于 DLL 位置的模组目录——无需手动配置。
4. 安装
- 从模组页面下载最新版本。
- 将内容解压到您的《杀戮尖塔2》模组文件夹中:
.../Slay the Spire 2/mods/ - 安装必需的依赖项:
- ModConfig – 游戏内设置面板和导出功能所需(如果不安装,则仅提供基本替换功能)。
模组目录结构:
CustomSkeletonLoader/
├── CustomSkeletonLoader.dll
├── CustomSkeletonLoader.pck
├── CustomSkeletonLoader.json
└── ReplaceResources/
│ (将自定义骨骼文件放置在此处)
│ ├── ironclad/
│ │ ├── ironclad.atlas
│ │ ├── ironclad.skel
│ │ └── ironclad.png
│ ├── silent/
│ │ └── ...
│ └── ... (其他骨骼目录)
配置
所有设置均可通过游戏内的 ModConfig 面板中的“CustomSkeletonLoader”部分进行访问:
- 启用调试日志 (开关,默认开启)
- 导出所有骨骼 (按钮) – 一键提取所有 136+ 个游戏骨骼到
/Spine_resource文件夹。将 Godot 格式(.spatlas/.spskel)转换为标准 Spine 格式(.atlas/.skel),并导出所有 PNG 纹理。 /unified文件夹中的 Spine 文件仅为方便导入编辑工具而重命名,不 用于实际的资源替换。
使用方法
创建自定义骨骼
使用 ModConfig 面板中的 Export 按钮导出基础游戏骨骼。
导航到导出目录:
.../mods/CustomSkeletonLoader/Spine_resource/{skeleton_name}/unified/使用兼容 Spine 的工具(例如,Spine Essential、其他编辑器)编辑骨骼文件。
将修改后的文件放置在:
.../mods/CustomSkeletonLoader/ReplaceResources/{skeleton_name}/检查替换文件的文件名是否与原文件名匹配。
重新启动游戏 – 骨骼在首次访问时于运行时加载(懒加载)。
文件命名约定
自定义骨骼文件必须遵循 ReplaceResources/ 目录内的以下结构:
- 目录名称: 使用目标骨骼标识符
- Atlas 文件:
{name}.atlas - 骨骼数据:
{name}.skel - 纹理页:
{name}.png,{name}_2.png等(如 atlas 所引用)
支持的命名示例:
ReplaceResources/
├── ironclad/ # 替换战斗中的铁甲战士
│ ├── ironclad.atlas
│ ├── ironclad.skel
│ └── ironclad.png
├── ironclad_merchant/ # 替换商店中的铁甲战士(自动匹配)
│ ├── ironclad_merchant.atlas
│ ├── ironclad_merchant.skel
│ └── ironclad_merchant.png
├── necrobinder/ # 替换战斗中的死灵法师
│ └── ...
├── ceremonial_beast/ # 替换首领怪物
│ └── ...
└── dark_orb/ # 替换 UI 充能球动画
└── ...
(支持读取子文件夹中的文件。即使命名有变体,智能匹配也能找到您的文件。)
故障排除
自定义骨骼未加载
- 验证所有三种文件类型(.atlas, .skel, .png)是否存在于同一目录中。
- 检查 PNG 文件名是否与 .atlas 文件内的引用完全匹配(区分大小写)。
- 在 ModConfig 中启用调试日志,并在游戏日志中查找
[CustomSkeletonLoader]消息。 - 确认
ReplaceResources/位于模组文件夹内(而不是在Spine_resource/中)。 - 确保骨骼目录名称与目标匹配。
导出失败或不完整
- 检查模组目录的写入权限。
- 确保有足够的磁盘空间(导出将生成 136+ 个包含纹理的目录)。
- 验证 ModConfig 依赖项已安装并正常工作。
- 检查游戏日志中的导出进度消息和错误详细信息。
替换后出现纹理/图集错误
- 使用文本编辑器验证 .atlas 文件语法(检查 spatlas 转换中是否有损坏的 JSON)。
- 确保 .skel 文件版本与您的 Spine 运行时版本兼容。
- 首先使用原始导出的文件进行测试,以确认替换流程工作正常。
- 检查图集中引用的所有 PNG 纹理页是否存在于同一目录中。
游戏崩溃或性能问题
- 在生产环境中禁用调试日志(详细日志记录会影响性能)。
- 减少同时替换的骨骼数量,以隔离有问题的资源。
- 验证自定义骨骼文件未损坏(先在 Spine 编辑器中测试)。
- 检查 .png 文件是否过大(建议每页保持在 2048×2048 以下)。
点击导出按钮后游戏冻结
- 资源正在后台导出,请耐心等待 10–30 秒,导出速度取决于您的设备性能。
相关工具:
- Godot RE Tools – 从其他 STS2 模组或游戏版本中提取资源以供参考。
- Custom Card Texture Loader SG - 加载自定义卡牌纹理,支持 GIF 动画、交互式播放模式和纹理导出功能。
本模组旨在为动画师和模组制作者提供无缝的骨骼定制能力,无需复杂的重新打包,同时提供专业级的资源提取和替换工具。
来自 STS2 模组创作者的爱。 :)
还没有人评论,去客户端里说两句吧。
评论在新手盒子客户端中发表,这里同步展示。