丝之歌的Mod开发库框架社区目前采用的是BepInEx,由于工作比较忙,本文教程性质会稍弱,更像是笔记一样的东西
游戏内环境准备:BepInEx和UnityExplorer
游戏外开发环境准备:.NET SDK和Mod模板
反编译环境准备:DnSpy和FSMExpress
迁移空洞摸黑MOD及AI辅助代码优化
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

打开游戏看看效果

