【丝之歌】MOD开发案例——移植空洞MOD
名字名字名字aaa
编辑于 2025年10月17日 00:53
收录于文集
共7篇

丝之歌的Mod开发库框架社区目前采用的是BepInEx,由于工作比较忙,本文教程性质会稍弱,更像是笔记一样的东西

目录

  1. 游戏内环境准备:BepInEx和UnityExplorer

  2. 游戏外开发环境准备:.NET SDK和Mod模板

  3. 反编译环境准备:DnSpy和FSMExpress

  4. 迁移空洞摸黑MOD及AI辅助代码优化

  5. MOD效果验证

游戏内环境准备

下载最新的BepInEx

https://github.com/BepInEx/BepInEx/releases

将其解压到游戏根目录,然后打开游戏,让其生成一些配置文件

作为开发者,还需要修改BepInEx\config\BepInEx.cfg文件,将里面的日志打印开启方便调试。

之后去https://github.com/sinai-dev/UnityExplorer 下载BepInEx5.x版本的

安装到plugin目录,类似这样

之后可以打开游戏看看效果,这个工具后面会用来辅助MOD开发。

开发环境准备

1.下载.NET SDK

https://dotnet.microsoft.com/zh-cn/download

这里选择.NET 8.0或者.NET 9.0都行(我用的是8.0)

安装步骤就不说了,网上大把,装完之后确认一下版本

2.安装丝之歌mod模板

参考这里的说明

https://github.com/silksong-modding/Silksong.Modding.Templates

使用dotnet new install Silksong.Modding.Templates命令安装最新模板

3.安装vscode

一般开发MOD还是建议用vs,我这里是嫌vs太大了,直接用vscode+插件

插件如下图,安装microsoft的C#插件即可。

反编译环境准备

下载丝之歌专用的FSMExpress,使用说明看里面的README即可

https://github.com/nesrak1/FSMExpress/tree/skong

下载DnSpy(或者用ILSpy也行)

https://github.com/dnSpy/dnSpy

注:要找HeroController的FSM应该在这里找hero开头的bundle文件

打开这里的Vignette的FSM,发现和一代差不多

迁移实战

1.理解代码

首先看下空洞的摸黑mod代码https://github.com/fifty-six/HollowKnight.Darkness/blob/master/Darkness/Darkness.cs

只有100行左右,非常简单。它的原理,对于这种小MOD,直接让AI读是能读得懂的

2.使用模板创建mod

创建空文件夹,文件夹的名字就是Mod的名字,例如Silksong.Darkness

在这里执行dotnet new silksongplugin后得到一个没有实际功能的Mod

3.执行dotnet build尝试编译空mod,确认编译环境和依赖拉取正常

4.编写mod代码,这里直接用ai帮我写了,不过一般得到的东西不能直接用,需要使用提示词继续调整或者手动调整

这里截图只是一部分,实际上交互了好几次,最终代码可以看

https://github.com/a2659802/Silksong.Darkness

效果测试

安装MOD

打开游戏看看效果