Wwise SDK 2019.2.15
|
由于部分 2019.2 新增功能 的原因,您在迁移到 Wwise 2019.2 时需要注意以下事项。
因为取消了对 Visual studio 2013 的支持,所以要想获取声音引擎的预编译版 Windows 运行时 DLL,必须随 Wwise 一并安装 Windows SDK for Visual Studio 2017。
设计工具现在使用 Visual Studio 2019 而非 Visual Studio 2015 构建。Visual C++ Redistributable 对 Visual Studio 2015、2017 和 2019 来说都是一样的,所以插件开发人员可使用其中任一工具集来进行编译。 注意,鉴于 Visual Studio 版本 (16),我们将 Visual Studio 2019 工具集表示成了 vc160。不过,该工具集的官方版本其实是 vc142,代表其与 Visual Studio 2015 工具集 (vc140) 和 2017 (vc141) 兼容。 同理,我们将 vc150 表示成了 vc141。
Wwise SDK 头文件现在需要有效的 C++11 来进行正常编译。如需查看支持的编译器列表,请参阅 平台要求 章节。
Wwise 设计工具所生成的文本文件的编码格式现在为 UTF-8。我们删除了在 ANSI 和 Unicode 之间选用编码格式的选项。同时弃用了 SoundBank 生成前/生成后步骤所用的内置宏 ContentFileFormat,并将在下一版本中彻底将其移除。在 2019.2 中,提供的值将始终为 Unicode。另外,SoundFrame 收到的 SoundBank 生成设置将忽略 AK::SoundFrame::SoundBankGenerationSettings::eContentTxtFileFormat,而直接默认为 AK::SoundFrame::SoundBankContentTxtFileFormat_UNICODE。
SoundBank 的 PluginInfo.json 元数据文件的格式跟以前不一样了。确切地说,Plugins 现在只是一组简单的映射,而不是一个包含重复键值的嵌套映射。有些 JSON 读取器之前无法正确解析原来格式的数据。
为了实现 使用 Memory Categories 替代和扩展 Memory Pools 中所述的改进,我们对多个相关接口进行了修改。
针对 AK::MemoryMgr 接口 (AkMemoryMgr.h):
在 AK::MemoryMgr (AkModule.h) 的默认实现中:
针对其他接口(考虑到移除了内存池):
如果您要使用 AK::IAkStdStream 的自定义实现,必须使用针对接口指定的新函数 AK::IAkStdStream::WaitForPendingOperation()
。这时必须中断操作并只在完成待处理 I/O(如有)后返回结果,同时返回流的新状态。
Wwise 2019.2 对 Spatial Audio 进行了多项重要改进:该版本简化了工作流程以及 Spatial Audio 功能的集成和使用,并大大提升了性能和灵活性。不过,这些改进可能会影响到现有的工程。2019.1 中的有些功能并不会直接映射到 2019.2 中,因此需要手动进行迁移。为了给想要进行迁移的用户提供参考,此指南特地阐明了为何我们要实施这些改进以及它们将如何提升整体的用户体验。
Wwise 的核心理念在于为声音设计师提供有力的帮助,从而使其尽量减少对程序员的依赖。所以,我们觉得非常有必要允许设计师直接在 Wwise 设计工具内而非另外在游戏引擎中配置 Spatial Audio 设置。*为此,我们将以下属性添加到了 Wwise 中的声音和总线对象:*
既然现在可以直接在工程中指定设置,那么在定义了 Spatial Audio 属性并需要加以处理的对象播放声音时,Spatial Audio Runtime 就能及时获知。如此一来,便*不必再将游戏对象注册为 Spatial Audio Emitter*。另外,我们还移除了 AkEmitterSettings。为了让 Spatial Audio 更加易于理解和使用,相较于 AkEmitterSettings,设计工具中*减少了不必要的设置*。您可以参考以下内容来迁移 AkEmitterSettings 中的各个字段,并在 Wwise 工程中的相应位置设置新的值。
在 Wwise 2019.1 及较早版本中,Spatial Audio 中的很多 API 其实跟声音引擎中的 API 是重复的,但却专门应用于了注册为 Spatial Audio Emitter 的游戏对象。这样不仅容易产生混淆,而且无法确保用户调用正确的 API。在 2019.2 中,因为不再需要注册发声体,所以我们*移除了以下 API*。
在大部分情况下,*用户需在 Wwise 设计工具中移除 Room 总线上所应用的全部衰减*。在 Wwise 2019.2 中,Spatial Audio 会将发声体和听者之间整条路径的距离应用于声音的衰减,所以现在不需要再在 Room 对象上设置衰减。
在 Wwise 2019.2 之前,用户使用 Portal 时常会遇到以下问题:对于通过 Portal 传播的混响,两个带有不同衰减的声音的相对混音不一致。比如,脚步声的衰减较短,枪炮声的衰减较长,两种声音都通过同一 Portal 传播。两种声音在 Portal 位置混合在一起,然后在同一位置重新进行空间定位。声音的衰减通过发声体和 Portal 之间的距离估算,而这段距离只是发声体和听者之间总距离的一部分。这时 Spatial Audio 依赖 Portal 的衰减来进一步对混响实施衰减。这样的话,随着听者离 Portal 越来越远,两个声音的相对音量保持不变,而不是像声音的原始衰减曲线指示的那样,脚步声比枪炮声衰减得要快。注意,只有湿声路径存在这种问题,直达路径还跟预期一样。
在 Wwise 2019.2 的 Spatial Audio 中,通过有效地将 Portal 的拾音位置设定到听者所在位置解决了此问题。如此一来,就可在将声音在 Room 的 3D 总线中混音之前,将声源和听者之间路径的总距离应用于声音的衰减曲线。现在没必要再将衰减应用于 Portal(即 Room 总线),不过有时候可能还会用到。通过对衰减进行后期混音,可进一步降低混响的音量,或对穿过 Portal 的混响额外进行滤波。
现在使用 WwiseConsole 替代了 WwiseCLI。不过,WwiseCLI 跟以前一样仍然可用。之前在 WwiseCLI 中执行的所有操作都可在 WwiseConsole 中完成,只需要更改一下语法就可以。建议最好迁移到 WwiseConsole,因为今后的新功能只会添加到 WwiseConsole。
WwiseConsole 会自动存档。在不带参数运行时,会列出支持的操作。然后,就可显示特定操作的相应 Help。WwiseConsole 信息也可在 SDK 文档中找到,提供有在线页面和离线文档两种形式。
比如,显示有关如何生成 SoundBank 的 Help:
WwiseConsole generate-soundbank --help
标准语法为:
WwiseConsole operation project --option1 valueOfOption1 --option2 valueOfOption2
下面对照原有的 WwiseCLI 列出了一些 WwiseConsole 语法示例。
仅针对 Windows 和 Linux 平台生成 SoundBank。
WwiseCLI C:\MyProject\MyProject.wproj -GenerateSoundBanks -Platform Windows -Platform Linux
WwiseConsole generate-soundbank C:\MyProject\MyProject.wproj --platform Windows Linux
运行 WAAPI 服务器并启用详细日志记录。
WwiseCLI C:\MyProject\MyProject.wproj -Waapi -Verbose
WwiseConsole waapi-server C:\MyProject\MyProject.wproj --verbose
创建支持 Windows 和 Linux 平台的新工程。
WwiseCLI C:\MyNewProject\MyNewProject -CreateNewProject -Platform Windows -Platform Linux
WwiseConsole create-new-project C:\MyNewProject\MyNewProject.wproj --platform Windows Linux