首先感谢@狱寺川川子 教你如何在3分钟内解包崩坏3音频文件【所有PCK文件均可使用】提供的解包方法
感谢@水滴魚- 原神语音文本整理 提供的语音文本信息
本文所使用到的工具:
解包工具:Extractor、vgmstream(之前的ww2ogg019在2.7版本更新后失效)
十六进制编辑器:C32Asm
本文按手机版原神的pck文件,电脑版类似
(由于2.7版本原神调整了语音包,已经不存在 VO_x.x_x.pck,转而改为 xxxx.pck,但文件结构并无区别,同样,Externalx.pck的文件结构也是如此)
(2.8版本更新,VO_x.x_x.pck 再次出现)
首先使用 Extractor 将pck文件解包得到被加密的wav文件(以 VO_2.2_0.pck 为例)

解包结果示例
任取其中一个被加密的wav文件(以 VO_2.2_0 00001.wav 为例)
使用 C32Asm 打开 VO_2.2_0.pck 和 VO_2.2_0 00001.wav 得到如下结果:

VO_2.2_0.pck

VO_2.2_0 00001.wav
对 pck 文件进行分析:

如图,红色区域为头部信息,共 0x38 个字节,包含pck文件的整体信息
其中,黄色区域代表此 pck文件 解包后得到的 wav文件 数量
例如,图中为 0x02BA ,因此一共有698个文件

接下来的紫色区域为各 加密wav文件 的信息,每块区域占 0x18 个字节
由于一共有698个文件,因此一共有698块这样的区域(图中圈出了前三个)
在紫色区域中的绿色区域,为该 加密wav文件 的文件大小信息
例如,图中第一个绿色区域为 0x5E80 ,因此该加密wav文件大小为24192字节

在紫色区域中的蓝色区域,为该 加密wav文件 在 该pck文件中的位置
例如,图中第一个蓝色区域为 0x41A8,所以我们来到此位置


对比二者,可以看到完全一致
电脑版和手机版存在差异,电脑版 pck文件 的头部信息(既红色区域)比手机版多四个字节,因此在计算紫色区域位置时,要多偏移四个字节
简言之,如下图所示:

综上,我们可以知道,要修改角色语音,需要修改pck文件里的紫色区域和数据区域
为了方便地找出所需语音,我们可以利用原神语音文本整理中提供的文件,同时配合使用vgmstream将选出的 加密 wav 文件 解析为可直接播放的 wav 文件。这里注意实际替换时应使用 加密 wav 文件 而非解析后的
2.7版本更新后,手机和电脑各语音文件一一对应,省去了互相转化的麻烦。
在2.7版本前的转化方式如下:
例如,假设电脑版原神有以下pck文件:
VO_2.2_0.pck(假设有100个文件)、
VO_2.2_1.pck(假设有150个文件)、
VO_2.2_2.pck(假设有100个文件)
手机版原神有以下pck文件:
VO_2.2_0.pck(假设有200个文件)
VO_2.2_1.pck(假设有300个文件)
VO_2.2_2.pck(假设有250个文件)
如果一个 加密wav文件 在电脑版原神 VO_2.2_2.pck 中的第50个文件
那么它在此版本为第 100+150+50=300 个文件
因此它在手机版原神 VO_2.2_1.pck 中的第100个文件
为了方便修改,我写了一个python脚本以供使用
百度网盘:https://pan.baidu.com/s/12UEF_zzNOAx_JGD_eota5w
提取码:oju1
(以上脚本仅对手机版本有效)
百度网盘:https://pan.baidu.com/s/1xXuaJksT6hoi9LqirDp_GA
提取码:4sn2
使用方法:
首先输入是电脑版(Y)还是手机版(N)
然后输入要修改的 pck文件 的地址
再输入用以替换的 加密wav 文件 的地址(此前需要先用 Extractor 对另一pck文件进行解包)
最后输入被替换的 加密wav文件 在pck文件中的序号(起始序号为1)
最后会在源目录生成一个新的pck文件,将此新pck文件替换掉原来的pck文件(注意修改文件名)即可实现语音的替换
除此之外,若为电脑版,则还需要修改audio_versions_streaming文件中pck文件对应项,将其扩展名更改为.txt即可编辑
为了方便查找语音文件,除了上述文章外,还可以使用如下程序对查找之前已查找过的加密wav文件进行查找。具体操作方式是,在第一次查找到被替换的 加密wav文件 后,将此文件保存下来,当版本更新或因为其他原因导致语音位置发生变动时,便可利用先前保存的 加密wav文件 快速找到。原理是,语音一般不会发生变动,加密方式(准确而言应当为压缩方式)也不会变动,故 加密wav文件 不会发生变动,因此只需要简单地搜索文件内容即可快速找到。
具体使用方式与前一个python脚本相接近,按照提示输入即可。
链接:https://pan.baidu.com/s/1Uu0ltMnAHdNKLdg096gAOA
提取码:qbpv