文本修改器

创作者: kahshmick
已更新:2025-09-22 19:57:13
7KB

前置 MOD

使用 文本修改器 时将自动安装

关于此 MOD

一个允许编辑、覆盖及新建《丝之歌》内部数据文本条目的模组。可用于修改对话、名称、教程文本、菜单项等内容。
丝之歌文本修改器

一个模组,可用于编辑、覆盖及创建《丝之歌》游戏内部数据中的新文本项目。可用于修改对话、名称、教程文本、菜单项等内容。

源代码
文本资源解密器 (简易程序助你查看《丝之歌》游戏内文本)

如何修改文本?

该模组会读取位于以下路径的文件中的文本: 《空洞骑士:丝之歌》_数据\模组\文本修改器
这些文件的格式非常严格,需按顺序依次填写:本地化语言代码、工作表ID、条目ID,最后是文本值。所有值需用">"分隔。我曾尝试使用XML或JSON解析,但不知为何BepInEx/Harmony在解析时会崩溃。如果反馈人数足够多,我可能会修改这一格式。


例如,一个包含该行文本的文件会将主菜单的退出按钮文字(通常为“退出游戏”)替换为“放弃”。请注意,此修改仅对“EN”语言代码生效。你可将此行代码放置于 《空洞骑士:丝之歌》安装目录下Mods文本修改器的测试文件 并且在你下次启动游戏时生效。
放弃


为找到你想要修改的文本所在的具体“表格”和“条目”,你需要先查看游戏现有的文本资源。详见下方说明。

还可以添加原版游戏未使用的新表单和条目。这些或许能用于模组内容,不过我尚未对此进行测试。祝好运!

如何提取游戏中的现有文本作为参考?

太长不看:
我已提取并固定了当前英文文本快照并添加到该模组的文件中,否则你需要自行提取数据。

《丝之歌》内部将本地化文本存储于大型XML表格中,这些表格被称为“数据表”。开发者按功能对文本进行归类整理(例如EN_Song表收录了NPC尼多林的伴唱台词)。所有数据表以文本资源形态保存在资源包文件中。空洞骑士:丝之歌). 我用了 资源提取器 解包AssetBundle以查看内容。

备注: 使用 AssetRipper 时,请务必在其设置中指定 Unity 版本。《丝之歌》基于 Unity "6000.0.50f1" 版本,可通过查看可执行文件属性确认。

通过反编译《丝之歌》的“Assembly-CSharp.dll”可以看到,表格文件经过了一些可笑的代码混淆处理。 Dnspy 我找到了下面粘贴的混淆函数。

解密功能
public static byte[] Decrypt(byte[] encryptedBytes)
{
  byte[] result;
  使用(RijndaelManaged rijndaelManaged = new RijndaelManaged
{
 key = _key数组
 模式 = CipherMode.ECB,
 填充方式 = 填充模式.PKCS7
})
  {
result = rijndaelManaged.CreateDecryptor().TransformFinalBlock(encryptedBytes, 0, encryptedBytes.Length);
  }
  返回结果;
}
private static readonly byte[] _keyArray = Encoding.UTF8.GetBytes("UKu52ePUBwetZ9wNX88o54dnfKRu0T1l");

使用 Xmod 解锁 空洞骑士:丝之歌(Steam) 的全部潜力 — 今天就探索这些顶级 MOD!