【绝地潜兵2mod开发】语音自带之混响效果的移除方法与运作原理
Fisher_Cat
编辑于 2025年01月19日 21:37
收录于文集
共2篇

各位晚上好,

考虑到会点进来看的应该都是在语音模组的开发上遇到问题的圈内人,

所以一些过于基础的环节请容我省略,这部份真的有需要的话,

可以去看看下面这篇由@Rnoisul_D​老师出品的专栏文章,这边就不再赘述。

琪露诺也能看懂的绝地潜兵2mod安装教程&音频mod制作相关网站​

=====

本篇文章将会分为两部份

第一部份是移除方法的原理讲解,如果你只是想要帮自己的模组去除混响效果的话,这部份不用理解也不影响你实际操作的,可以略过不看

第二部份则是移除混响的实务操作方法

=====

原理讲解:

Soundbank 是游戏用来整理与管理音效的一种资料结构,其内部除了有我们日常模组制作上常常接触到的音效资源外,也包含了诸如音量、播放条件、声道方向、混响效果(如回音、无线电)这类设定资讯

所以要移除音效的混响效果的话,对Soundbank拆包拆出的音效檔做编辑是无效的,正确的做法应该是不拆开Soundbank,直接对Soundbank本身下手

而为了提取代表Soundbank的.bnk文件,我们会需要给HD2的游戏资源作拆包,方法和工具由于不是本文重点,这边就不赘述了。

提取出满山满谷的.bnk文件后,你可以根据hd2-audio-modder中给出的Sound Bank挡案名,来精确地定位你需要的.bnk文件

找到文件之后,你还需要一个Soundbank的解析软体,以读取.bnk檔案。

不过当你实际尝试去解析时,你会发现HD2给.bnk檔做了加密处理,无法读取。

所以为了解析我们需要的.bnk檔,我们还会需要制作一份解密密钥(xorpad.bin),但这部份由于不是本文主题所以这边不赘述了。

成功解码并读取.bnk檔后,我们只需要将其中所有的OverrideBusId(这玩意决定了音讯资源的类别)的参数从会受到混响影响的"语音"类别更改为不会受到混响影响的"音乐"类别(D6 36 F0 ED)或"音效"类别(EA 18 AD 4A)即可,需注意的是这个方法的副作用是你语音模组中语音的音量大小将会变为由"音乐音量"或"音效音量"控制,而不是"语音音量",身为模组作者有必要告知使用模组的玩家这一点。

但由于实务上的操作需要修改动辄几百个OverrideBusId,因此人工进行处理并不是很现实。为此需要做的是,将我们的模组的.patch檔以HEX模式(16进位)读取,并找出OverrideBusId参数所在位置的规律,这样一来我们就只需要直接进行一个"搜寻并取代"即可。

至于如何找出规律?上面读取过.bnk檔案后,我们已经得知我们要修改的OverrideBusId参数为"1037004500",只要将其拿去16进位模式下进行"搜寻",即可找到他的编码位置。

然后就只需要多这样干几次直到找出可以通用所有情况的规律即可,这边不赘述。

以上原理介绍结束,感谢所有看完原理篇的人愿意听我废话。下面是实务操作方法环节,只是要帮自己模组移除混响的话,实际上你们只需要知道那个就行。

=====

实务用批量操作方法:

1.安装Hextor(https://github.com/digitalw0lf/hextor),这是一个16进位文本编辑器

2.使用Hextor开启你模组的.patch檔

3.功能列-Seacrh-Find/Replace

4.Find那栏输入"07 (31 00 00 00 ?? ?? ?? ??) (?? 00 ?? 00 00) (?? ?? ?? ??)",Replace那栏视你偏好输入以下几个选项中的其中一个:

A.如欲使用音乐线路(这会导致该语音的音量由"音乐音量"决定),Replace那栏输入"07 $1 $2 D6 36 F0 ED"

B.如欲使用音效线路(这会导致该语音的音量由"音效音量"决定),Replace那栏输入"07 $1 $2 EA 18 AD 4A"

5.按下Replace all,并再次进行步骤4,但是这次Find那栏改为输入"07 (2C 00 00 00 ?? ?? ?? ??) (?? 00 ?? 00 00) (?? ?? ?? ??)"

6.按下Replace all,然后储存檔案,就修改好了。

附注A:使用Find/Replace功能时请确保Find栏及Replace栏都有勾选Hex模式

附注B:身为模组制作者,我们有必要告知模组使用者,模组的语音音量是由"音乐音量"还是"音效音量"控制。

=====

没错,就是这麽简单,连琪露诺也能跟着操作,

我期望随后能看到各形各色的语音mod如雨后春笋般的冒出, 在此提前感谢各位点进来的模组制作者对HD2社群的付出。

特别感谢:

Rnoisul_D​大佬,除了感谢他提供混响可以被移除的相关情报与资讯给我,也感谢他制作的Neuro​语音包模组间接促使我成为Neuro蜂群的一员及加入制作HD2模组的行列。