版本

menu_open
Wwise Unreal Integration Documentation
音频素材的本地化
注記: 只有在启用 Event-Based Packaging 时才能使用此功能。

使用本地化素材时的特别注意事项

在对本地化声音实施更改时要特别注意,因为目前 SoundBank 生成过程无法检测所作的某些更改。下面列出了本地化素材的已知问题以及如何加以避免。

在实施以下更改后必须清除本地化素材中的数据:

  • 为引用本地化媒体的 Event 设置 Required Bank。
    • 只需清除 Event 的数据。
  • 在将声源由 Voice 改为 SFX(反之亦然)之后。
    • 所有引用此源媒体的 Event 都要清除其数据。

如需详细了解如何清除特定素材的 Sound Data,请参阅 清理 Sound Data 章节。

若要通过 WwiseConsole 而非 WAAPI 生成 SoundBank,必须留意 GeneratedSoundBanks 文件夹中残留的生成但已过时的 SoundBank 元数据。在 SoundBank 生成过程中仍会解析这些元数据,而且可能会导致无法预测的行为。最好的做法是定期清除此文件夹。

在 SoundBank 生成过程中,可能会不对称加载和卸载本地化 SoundBank 和媒体,继而导致引用计数出现错误。若在生成 Sound Data 后无法在 Editor 中正常切换语言,请尝试在保存所作更改后重新启动 Editor。

Profile and Edit 模式下连接 Wwise 设计工具的 Profiler 时,可能会在设计工具中加载当前区域设置的 SoundBank,并会对本地化 SoundBank 加载状态产生无法预测的影响。在对本地化 SoundBank 实施性能分析并与之进行交互时,建议使用 Profile Only 模式。

如何使用本地化素材

本地化 SoundBank 和 Event 的使用方式与普通 SoundBank 和 Event 相同,只不过其特定于语言的数据存储在单独的素材中。所有本地化素材数据都会生成到 Wwise Sound Data Folder 下的 Localized 文件夹。本地化的 Event、SoundBank 和 Media 会放在对应语言的文件夹内,便于在打包时轻松排除特定的语言。

要想从打包的游戏中排除某些语言,请将 [Wwise Sound Data Folder]/Localized/[Language Name] 文件夹添加到工程的打包设置中的 Directories to never cook

若要更新音频语言,既可使用 “Set Current Audio Culture” Blueprint 节点:

也可使用 “Set Current Audio Culture Async” Blueprint 节点:

还可使用 C++ API FAkAudioDevice::Get()->SetCurrentAudioCulture()

您可以将 Wwise Language 或 Unreal Culture 传给 C++ 函数或 Blueprint 节点。

警告: 鉴于 Wwise 声音引擎方面的限制,若正在播放本地化声音,则无法卸载与之对应的 SoundBank 且该声音会无法切换语言。最好的做法是确保在调用 SetCurrentAudioCulture 前没有播放任何本地化声音。 在从语言 A 切换到语言 B 时,后续通过调用切换到语言 B 对切换失败的声音不起作用,即便其已不再播放。要想修复该声音的本地化状态,只能切换回语言 A。

在 Wwise Integration Settings 中,可将 Unreal Culture 映射到 Wwise Language。

您可以针对 Unreal Culture 使用任意一种 ISO 639-1 语言代码或选用 ISO 3166 国家/地区代码(如 fr-CA、en-GB)。

在调用 SetCurrentAudioCulture() 时:

Integration 迭代所有 UAkAudioEvent 和 UAkAudioBank,同时卸载旧的本地化 SoundBank 数据和媒体素材,并加载新的本地化 SoundBank 数据和媒体素材。

  • 素材对 SoundBank 数据和媒体素材进行硬引用,不过只有与当前语言匹配,媒体素材才会加载其数据。
  • 在切换语言时,在 SetCurrentAudioCulture 被调用和媒体素材从磁盘加载完数据之间会存在一定的延迟。
  • 使用 UAkAudioEvent::IsLocalizationReady 函数检查是否加载了 Event 所需的全部本地化媒体。
    • 在此基础上,"SetCurrentAudioCulture" Blueprint 函数先检查是否完成了语言更改然后再继续。

Integration 设置 AK::StreamMgr 的 CurrentLanguage。

  1. 强制执行 Garbage Collection,清理内存中原有的本地化素材。
注記: 鉴于 Unreal Asset Registry 方面的限制,请务必在生成新的本地化 Sound Data 时保存新的素材。否则,在 Editor 中进行播放时会出现媒体丢失问题。

此页面对您是否有帮助?

需要技术支持?

仍有疑问?或者问题?需要更多信息?欢迎联系我们,我们可以提供帮助!

查看我们的“技术支持”页面

介绍一下自己的项目。我们会竭力为您提供帮助。

来注册自己的项目,我们帮您快速入门,不带任何附加条件!

开始 Wwise 之旅