杀戮尖塔 2 皮肤 MOD 制作教程:使用 Spine 动画替换原版角色动画
雷桑Rex
编辑于 2026年08月04日 18:47
杀戮尖塔2

制作皮肤mod不需要写代码,只要替换对应的图片与动画素材即可,以下为具体制作步骤。

一、前期准备

1. 必备工具与文件

1.1 Godot相关文件

需提前准备Godot 引擎Fmod、游戏反编译文件(借助 grde 工具完成反编译)。

整体流程参考:超详细教程 真·0基础完成杀戮尖塔2Mod开发​强烈建议看完前两 P后再来看本教程!

游戏反编译教程:[教程]反编译杀戮尖塔2可执行文件到可运行项目​(反编译导出时,若弹出插件安装提示,请选择No。)

1.2 Godot Spine 插件

先下载对应插件文件,下载链接可查阅:

https://tutorials.sts2modding.com/docs/05-card-art-and-skin-replacement/#spine%E5%AF%BC%E5%85%A5

2. Spine 动画文件规范

制作角色皮肤需准备对应场景动画,分为战斗、商店、火堆三大类,动画可整合至同一个 Spine 模型,也可拆分制作。

战斗模型必备动画 :

attack(攻击)、cast(施法)、die(死亡)、hurt(受击)、idle_loop(待机循环)

各角色专属额外战斗动画:

战士:attack_heavy(重击)

猎手:shiv(投掷小刀)

亡灵:cast_mighty(强力施法)

机器人:process(能力 / 加费)

储君:attack_sovereign(愤怒攻击)

商店场景动画: relaxed_loop(商店待机动画)

火堆场景动画: overgrowth_loop(一层密林・绿色火焰)、hive_loop(二层巢穴・橙色火焰)、glory_loop(三层荣耀・蓝色火焰)

补充说明:商店、火堆场景支持用静态图片替代动画,下文会讲解具体设置方法。

二、文件整理与预处理

1. Spine 文件导出设置

打开 Spine 软件,按下Ctrl+E或点击左上角「导出」,按以下参数配置:

1. 数据格式选择二进制,生成.skel文件;

2. 纹理图集勾选打包为单个图集

3. 根据素材尺寸,在左下角调整模型整体缩放比例,避免模型过大 / 过小;

4. 完成设置后点击导出,最终会得到三类核心文件:.skel、.atlas、.png。

Spine导出设置

2. Godot 插件部署

1. 启动 Godot 引擎,新建空白项目,项目名称就是你的mod名;

2. 关闭 Godot,将下载好的 Spine 插件文件(windows文件夹和spine_godot_extension.gdextension)放入项目根目录;

3. 后续重新打开项目即可加载插件。这里可以先不打开,先准备下面的文件素材。

3. 反编译文件拷贝

从游戏反编译目录中,按原路径结构复制以下文件至 Godot 项目目录(以战士为例),替换其他角色时,对应更换角色名称文件即可。

3.1 静态 PNG 素材

下面这些png图片素材可以直接用你准备好的要替换的图片改成相同的文件名后,直接覆盖替换即可。

选人界面头像:images/packed/character_select/char_select_ironclad.png和char_select_ironclad_locked.png

地图角色标记:images/packed/map/icons/map_marker_ironclad.png

角色小头像:images/ui/top_panel/character_icon_ironclad.png和character_icon_ironclad_outline.png

目标选择框素材(不用替换):images\ui\combat\combat_reticle.png

3.2 场景文件

这些场景后续会在 Godot 内编辑。

战斗动画场景:scenes/creature_visuals/ironclad.tscn

商店角色场景:scenes/merchant/characters/ironclad_merchant.tscn

火堆角色场景:scenes/rest_site/characters/ironclad_rest_site.tscn

选人界面背景:scenes/screens/char_select/char_select_bg_ironclad.tscn

3.3 脚本文件

复制以下.cs脚本文件,缺失会导致场景打开报错(仅防报错,无需修改):

src/Core/Nodes/Combat/NCreatureVisuals.cs和NSelectionReticle.cs 

src/Core/Nodes/RestSite/NRestSiteCharacter.cs 

src/Core/Nodes/Screens/Shops/NMerchantCharacter.cs

4. spine动画文件存放

将 Spine 导出的.skel、.atlas、.png文件,统一放置到项目目录,推荐路径:animations/characters/自定义角色名(与游戏原生文件路径保持一致,或者自己建一个文件夹放进去也可以正常使用)。 全部文件部署完成后,重新启动 Godot 项目。

准备好素材的项目根目录

三、Godot 引擎场景编辑

1. 导入 Spine 动画资源

1. 在 Godot 左下侧文件栏右键 → 新建资源,搜索并创建 SpineSkeletonDataResource 资源(后缀.tres)。如果没搜到,说明你可能是忘记加之前的Spine插件了;

2. 选中新建的.tres文件,在右侧「检查器」面板中,依次绑定导出的.atlas图集文件与.skel骨架文件;

3. 若拆分了多套 Spine 模型,需按照以上步骤,分别创建对应.tres资源文件。

参考文档:https://tutorials.sts2modding.com/docs/05-card-art-and-skin-replacement/#spine%E5%AF%BC%E5%85%A5

2. 替换各场景角色动画

2.1 战斗动画替换

1. 双击打开ironclad.tscn场景,弹出「缺失文件」提示可直接忽略,打开即可;

2. 在场景层级中选中Visuals节点;

3. 在右侧检查器面板,将Skeleton Data Res绑定为上一步创建的.tres动画资源;

4. 预览区可查看动画播放效果;在Transform栏调整模型位置、大小、旋转,角色头顶高度建议设置在 260~280,最终效果可进游戏复测微调。

左下方的资源窗口
左上方的场景窗口
右上方的检测器窗口
坐标轴X轴就是血条的位置

2.2 商店动画替换

1. 双击打开ironclad_merchant.tscn场景,绑定对应.tres动画资源(若商店动画与战斗动画共用一套 Spine 模型,可直接复用已有.tres文件);

2. 角色头顶高度建议设置在 440~480,根据游戏内实际显示效果微调。

方案:静态图片替代商店动画

1. 在当前场景右键 → 添加子节点,选择 TextureRect(图片显示节点);

2. 将准备好的商店静态立绘(立绘图片文件建议放到之前放Spine文件资源的文件夹里),从资源窗口里拖拽至该节点中即可生效;

3. 原有 Spine 动画节点无需额外修改。

右键,添加子节点

2.3 火堆动画替换

操作逻辑与商店动画一致,双击ironclad_rest_site.tscn,绑定对应.tres资源即可。

方案:静态图片替代火堆动画(解决功能 BUG)

直接使用静态图会出现 BUG:在火堆选择休息后,「前进」按钮无法正常显示,修复步骤如下:

1. 新建TextureRect节点,导入火堆静态立绘;

2. 从游戏反编译目录animations/rest_site/ironclad中,复制原版火堆动画文件夹至项目目录;

3. 为场景内原有SpineSprite节点绑定原版动画.tres文件,再点击节点旁眼睛图标隐藏该节点(只加载文件、不显示画面),即可修复按钮异常问题。

关闭眼睛图标即可隐藏

3. 替换选人界面背景

1. 双击打开char_select_bg_ironclad.tscn,忽略缺失文件提示直接打开并进入编辑;

2. 若使用静态背景:新建TextureRect节点,导入背景图片;

3. 若使用动态背景:参照前文步骤,为SpineSprite节点绑定 Spine 动画.tres资源;

4. 原版场景内多余组件可直接隐藏;

注意:背景的尺寸、位置大概率需要进游戏测试后,返回 Godot 反复调整

四、导出文件 & 部署 MOD

1. 导出 PCK 文件

Godot 顶部菜单栏选择:项目 → 导出,选择 Windows 格式(第一次导出需要下载模板,导出部分教程可参考教程开头的视频教程),导出后缀为.pck的文件,文件名即为你的 MOD 名称。

2. 游戏目录部署

1. 打开《杀戮尖塔 2》游戏根目录,新建文件夹并命名为mods;

2. 在mods文件夹内,新建 文件夹(文件夹名即为 MOD 名称);

3. 将导出的.pck文件放入该 MOD 文件夹中。

3. 配置 MOD 说明文件

1. 在 MOD 文件夹内新建文本文档,将后缀改为.json(也可直接复制其他 MOD 的 json 文件修改);

2. 写入以下配置内容,按需修改对应参数:

{

  "id": "你的MOD名称",

  "name": "游戏内显示的MOD名称",

  "description": "MOD功能/介绍描述",

  "author": "作者名称",

  "version": "0.1.0",

  "has_dll": false,

  "has_pck": true,

"affects_gameplay": false

}

参数说明:

· version:自定义 MOD 版本号;

· has_dll:纯皮肤 MOD 未编写代码,固定为false;

· has_pck:依赖 pck 资源文件,固定为true。

·"affects_gameplay": false 使用创意工坊的话要加上这条才能在多人模式里使用。

完成后,你的mod文件夹里应该就只有这两个文件

4. 最终测试

启动游戏,右下角出现「已加载模组:*游戏内显示的mod名称*」提示即代表mod加载成功。

进入游戏,逐一检查选人界面、战斗、商店、火堆的角色显示效果,若尺寸、位置异常,返回 Godot 调整后重新导出.pck文件覆盖即可。

五、创意工坊

将mod上传到创意工坊的方法请查阅该视频【杀戮尖塔2】安东尼也懂的创意工坊上传​