星川栀子的杂物铺

堆放着信息时代的文字垃圾

怎么我的秘书舰又变成了大叔? - 战舰世界语音包修复指北

几日前看到 Sbeam 突然跳出了一条叉鸡启动了窝窝屎的提示,我半开玩笑地私信他说下次喊我。又想想看确实可以稍稍回坑一下,于是更完了十几个 G 的文件,进游戏打算开两把找找手感。谨慎如我当然提前换好了以前打的语音包的路径,结果一进战斗,一股饱经风霜的混着海腥味的粗重男声扑面而来,吓得我船也不开了赶紧看设置哪儿是不是我没改。

检查结果是一切正常。

中国有句古话说得好,游戏不打萌化就如同炒菜不加盐,是万万不可的。按捺着想立马冲进敌阵送死的冲动,忍着这味同嚼蜡的原汁原味语音好不容易打完一局,我二话不说打开 Google 查询原因与解决方案。

出乎我预料的是查询过程颇为顺利,早有同道中人 NGA 老哥在萌化包发布楼下回帖,提出了浅显易懂的解决方案。

对于更换语音包之后开局和消耗品之类无语音的情况,简单调查了一下发现是因为 mod.xml 里的项目名被毛子更新过了。修复方法就是对比 res里的 mod.xml 和 res_mod 里的 mod.xml 中 <ExternalId> 这一项(注意是 Id 不是 id),把 mod 里的名字更新成 res 文件夹里的 mod.xml 中 <ExternalId> 使用的名字。

这个方案是如此简单,简单得令人跃跃欲试。然而当我顺利地找到了这两个文件打算进行一场浅浅的人工查找替换时,屏幕上长达千行的 xml 文件让我的笑容僵在了脸上。更糟糕的是,由于 ExternalId 这个值本身被改过了,导致两个文件中已经没有相同的词条能够令我确定哪个语音对应哪个配置项。唯一的希望是这个值的含义本身可以新旧比对,通过读文本来猜测究竟谁对谁,但这可是 NLP 啊,我总不能因为一个语音包训练一个模型吧。

经过一番思想斗争后,我瞄了一眼各个语音包的修改日期。我一直以来使用的是 Kancolle Hibiki 的语音包,修改日期赫然写着 26/02/2023,再瞄一眼舰 B 语音包,修改日期 04/03/2023。抱着一丝丝侥幸心理,我打开了舰 B 大凤的语音包稍作比对——得,这是更新过的。

尽管内容有所不同,但由于各个语音包的配置文件总体结构是相似的,也有相同的词条可以作为对照项,之后的事情就变得顺理成章了起来。随手写了个程序用来比对两个配置文件之间 ExternalId 的差异项,然后再对这不到 20 个的差异项进行手动增删改即可。

再开一把。嗯!是熟悉的响爷的声音。

但令我有些许不满的是,其中依然有一部分原版语音混杂。这能忍?响爷之位不容亵渎!

于是我又将游戏原版的配置文件与语音包配置文件的 ExternalId 作了一次比对。根据输出结果我推测,以“VVO”开头的 ExternalId 很可能是语音,而还未写入配置文件的 VVO 只剩下四五项了。接下来的事情就十分顺理成章,手动添加就是。

在这个过程中我顺手为这些新项目加了几条新语音。语音源倒是很好找,Wiki 上到处都是。只不过,语音包的语音文件是 .wem,即 Wwise 封包的 Asset。于是又是顺理成章地安装了 Wwise,稍微捣鼓两下把格式转好拖进语音包,大功告成!

再开一把。嗯!终于没有大叔了。

后记

本着互联网的分享精神,就把我修改好的响爷语音包放这儿了。至于别人的……嘛,我不用改它干嘛。

云盘下载

不过令我比较吃惊也比较遗憾的是居然萌化包里没有雪风的语音包,不知道是不是因为不吉利。或许哪天闲下来了我会自制一份雪风的语音包吧。再考虑做一份 Lady 晓的,听着晓自己的声音开晓一定很有趣。

点赞
  1. xj233说道:

    不准萌化,赶紧听海盗大叔声 :twisted: :twisted:

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注