博德之门3如何正确将wav转换为wem,以便这些文件在游戏的配音中工作?

问题描述 投票:0回答:2

问题:如何正确地将

wav
文件转换为博德之门 3 的
wem
格式,以使这些文件在游戏的配音中正常工作?

  1. 我使用
    ExportTool-v1.18.5
    提取
    Voice.pak
    English.pak
    文件的内容。
  2. 然后,我在文件中搜索所需的对话
    C:\UnpackedData\English\Localization\English\english.xml
    并记下该行中的
    contentuid
  3. 我使用
    contentuid
    文件夹中的
    C:\UnpackedData\Voice
    搜索音轨。
  4. 例如,我找到文件
    v2c76687d93a2477b8b188a14b549304c_hcb228250g01eeg4e3cg88abg3f55fb87ee71.wem
  5. 我使用
    v2c76687d93a2477b8b188a14b549304c_hcb228250g01eeg4e3cg88abg3f55fb87ee71.wem
    将文件
    wav
    转换为
    vgmstream
    格式,以确保我找到了正确的音轨。
  6. 我以
    wav
    格式合成了新的录音。
  7. 然后,我尝试通过
    wav
    wem
    文件转换为
    Wwise
    格式。转换成功,连
    vgmstream
    都可以正确播放转换后的
    wav
    。然而,在游戏中,音轨不播放,一片寂静。
  8. 我用合成的
    wem
    音轨替换了原始
    wem
    音轨。
  9. 使用
    ExportTool-v1.18.5
    ,我编译了一个新的
    pak
    文件,确保选择
    No compression
    Solid
  10. 然后,我通过启动游戏来测试游戏画外音的变化。目前,用原始音轨的副本替换原始
    wem
    文件的方法是有效的,我给复制的轨道赋予相同的名称,以确保编译过程正确。这样,游戏中的音轨就被修改了。但是,如果我尝试合成新的音轨并将其转换为
    wem
    格式,游戏中的对话期间会出现沉默。
wav modgrammar
2个回答
0
投票

使用命令检查您的初始 .wem(例如):

vgmstream-cli.exe 103010647.wem

它将显示解码后的 .wem 格式:

 decoding 103010647.wem
sample rate: 48000 Hz
channels: 1
channel mask: 0x4 / FC
stream total samples: 82148 (0:01.711 seconds)
encoding: Custom Vorbis
layout: flat
metadata from: Audiokinetic Wwise RIFF header
bitrate: 76 kbps
play duration: 82148 samples (0:01.711 seconds) 

但是如果您使用 wwise“按原样”将 .waves 编码为 .wems,它将像这样编码:

decoding 103010647.wem_818F3B66.wem
sample rate: 48000 Hz
channels: 1
channel mask: 0x4 / FC
stream total samples: 82148 (0:01.711 seconds)
encoding: Little Endian 16-bit PCM
layout: flat
metadata from: Audiokinetic Wwise RIFF header
bitrate: 768 kbps
play duration: 82148 samples (0:01.711 seconds)

因此您需要更改 wwise 转换格式,使其比特率更接近您的初始 .wem: 默认工作单位 - 单击导入的文件之一 -> 转换 -> 默认转换设置 -> 选择格式并在 Adv 中选择比特率。

之后像往常一样在 wwise 中 -> 转换所有文件


0
投票

对于后人来说,我在研究《古墓丽影:暗影》时遇到了同样的问题,并发现问题出在 .bnk 文件(Wwise SoundBanks)中。通常,声音要么完全嵌入到 SoundBank 中,要么单独存储为 .wem 文件。然而,介于两者之间的东西显然也是可能的:完整的声音存储为 .wem 文件,并且声音的第一部分也嵌入到 .bnk 文件中。我猜这是一种延迟对策:在游戏准备流式传输外部 .wem 时为游戏提供一些要玩的数据。

在任何情况下,如果 .bnk 包含(例如)声音的前 300 个字节,游戏将

跳过 .wem 文件的前 300 个字节。您可以将原始 .wem 的整个标头清零,它仍然可以播放。但如果您将 .wem 替换为自定义的,它将不再与 .bnk 中的预取数据匹配并拒绝播放。

解决方案是从 .bnk 中删除此预取数据。您可以使用 010 Editor 的此模板来执行此操作:

https://github.com/eXpl0it3r/bnkextr/blob/master/bnk.bt

您会想要:

    打开.bnk
  • 应用模板
  • 展开“didx”(数据索引)部分
  • 找到 id = 您的 .wem 文件 ID 的条目
  • 将“长度”字段更改为 0。
© www.soinside.com 2019 - 2024. All rights reserved.