以下各节列举并阐述了 2022.1.1 和 2022.1.2 版本之间针对 Wwise 所作的改进。
此处提供了有关平台的特定信息:
有关早期版本的信息,请参阅 过往版本的发行说明 章节。
API 改进
- WG-63183 现在为
AK::MemoryMgr
添加了新的 API 函数 AK::MemoryMgr::TrimForThread 。此函数为游戏集成提供了在线程进入非活跃状态时释放线程本地资源的额外机会。对于 Wwise 的内置内存分配器 rpmalloc,可藉此完成线程上所有延迟的释放操作,并将线程本地内存堆恢复为全局存储,以供其他线程稍后重复使用。此函数在 EventMgr
线程上执行 CAkAudioMgr::Perform
后和在 CAkThreadedBankMgr
在 BankMgr
线程上处理一组命令后调用。建议游戏集成在工作线程上不时调用此函数,比如在执行 AK::JobMgr
工作函数返回后。
行为改进
- WG-63468 在结合 WwiseConsole 使用 generate-soundbank 操作的情况下,现在会在 SoundBank Settings 中启用相应选项时自动完成版本控制操作。同时,可通过在命令行使用 –no-source-control 标记来禁用版本控制操作。在必要时,会加载 User Project Settings 以获取版本控制设置。
性能改进
- WG-57458 对
AK::JobMgr
中的作业调度进行了调节,以便在作业满足所有依赖项时自动予以执行,而非先加入队列再移出队列。这样应当可以降低 Job Manager 系统的开销(尤其是在运行包含很多条小总线的声部图时),并在很多情况下提高缓存利用率,从而提升作业的执行效率。
- WG-60124 整个声音引擎的调度(即
CAkAudioMgr::Perform
的执行)现在作为 AkJobType_AudioProcessing
类型的作业运行。如果游戏集成已经支持 Wwise Job Manager,即便只有一个 AkJobType_AudioProcessing
类型的作业,也应可以消除 AK::EventMgr
线程上执行的几乎所有作业,转而在声音引擎线程池上运行整个声音引擎的调度。比如,这样应当可以消除游戏引擎线程池上执行的作业因为被 AK::EventMgr
抢占而可能遇到的性能问题,从而提升游戏引擎性能在整体上的稳定性。
- WG-63532 在
AK::JobMgr
分派空白作业时不再发出作业请求。关键在于,这样应当可以消除很多由 _CallGlobalExtensionsAsync
发起但实际并不会执行任何操作的作业请求。
其他改进
- WG-62516 现在会将在运行时实施 Spatial Audio 性能分析占用的 CPU 时间计入单独的 Spatial Audio CPU 计时器区间。之前将其计入了 "Global Extension"。
- WG-63055 将 Visual Studio 2022 版本升级到了 17.4.2。
- WG-63517 现在运行 wp.py 构建命令会将 CL_MPCount 作为参数包含到 MSBuild 流程中。
漏洞修复
- WG-57678 已修复:(Spatial Audio) 一个表面跟另一表面完全重合时,反射声断断续续且不稳定。
- WG-61025 已修复:设置 AK Convolution 插件 IR 响应时间窗为 0 帧时,Wwise 设计工具发生崩溃。
- WG-61974 已修复:在 Timeline 中拖动光标时,Voice Inspector 有时无法显示影响衰减的因素。
- WG-62515 已修复:(Spatial Audio) 在对 Spatial Audio 实施性能分析时,CPU 用量突然增加。
- WG-62774 已修复:(Spatial Audio) 在衍射角度很小时,二阶或更高阶的衍射路径会被切断。
- WG-62988 已修复:在 Profiler 中加载 Profiler 会话(.prof 文件)时可能会发生崩溃。
- WG-63307 已修复:(Spatial Audio) 直达路径穿过几个 Room 以外的 Portal 时,直达声可能会丢失。
- WG-63330 已修复:在执行 WG-61727 修复后,Wwise 2021.1.11 和 2022.1.1 中出现不符合预期的行为变化。在特定情形下,具有目标过渡且淡变偏置值为正的 Music Switch Container 会受到影响。
- WG-63422 已修复:
AkArray::Reserve
的大小有时会不必要地增大。
- WG-63475 已修复:在使用 Paste Properties 将对象列表复制到一个或多个目标对象时可能会发生崩溃。
- WG-63493 已修复:在 SoundBank Generation 期间,Version Control 操作可能会超时。
- WG-63495 已修复:在重新加载一个或多个 Work Unit 后没有清理 Wwise Profiler 视图,并可能因而引发崩溃。
- WG-63519 已修复:在没有打开任何工程的情况下,WAAPI 函数调用迟缓。
- WG-63577 已修复:(Spatial Audio) 对于缩放不均匀的几何构造,反射的衍射角度计算有误。
- WG-63580 已修复:没有为 Sound 对象显示 Media Size 预览。
- WG-63764 已修复:声部图中存在反馈 Aux Send 连线,导致 Wwise Profiler Voice Graph 中的一些非反馈 Aux Send 连线反向,进而导致音频渲染期间的混音不正确或行为不明确。
- WG-63769 已修复:在重新加载的 Work Unit 包含 Wwise 中当前检视的 Music Switch Container 使用的 State Group 或 Switch Group 时发生崩溃。
- WG-63862 已修复:在连接的情况下更改 Attenuation 上的 RTPC 曲线时,Wwise 设计工具可能会发生崩溃。
- WG-63880 已修复:在放大时间线的情况下向后移动时间光标时,Voice Inspector 无法对齐到恰当的时间点。
- WG-63882 已修复:在内存不足的情况下终止引擎会导致 AkPath.cpp 发生崩溃。
- WG-63887 已修复:Auto-Defined SoundBank 对应的 SoundBank Editor 快捷菜单项 Open Containing Folder 没有包含 .bnk 文件条目。
社区报告的漏洞修复
- WG-58892 已修复:无法将 Spread 和 Focus 不为零的单声道声音精确摆位到听者后方。
- WG-60199 已修复:在使用将字符串作为参数的插件(如 Recorder 插件)时进行连接可能会引发崩溃。
- WG-61907 已修复:在几何构造包含无效的三角形时发生崩溃。
- WG-62393 已修复:Stereo Delay 效果器插件没有将干声增益应用到高度声道。
- WG-63034 已修复:在 Mastering Suite 初始化失败时报告了一般性错误。现在会在遇到相应情形时报告声道配置无效。
- WG-63088 已修复:在调用
AK::SoundEngine::PostMIDIOnEvent()
时无法释放部分分配的内存。
- WG-63242 已修复:在通过 WwiseConsole 生成 SoundBank 并启用将所生成文件添加到 Source Control 的选项时出现卡顿。
- WG-63247 已修复:在连续生成 SoundBank 时可能会删除 SoundSeed Grain 插件的源文件。
- WG-63270 已修复:在 Reflect 调用内部 Wwise 声音引擎函数时,若 Wwise 音频源发生改变,可能会导致兼容性问题。这些内部函数调用被替换为了对公共 API 的调用。
- WG-63379 已修复:在加载工程时显示了 Motion 插件通知。
- WG-63425 已修复:AkConversionTable(RTPC 支持)发生崩溃。
- WG-63465 已修复:缺失了新建 User-defined SoundBank 的按钮。该按钮已被重新添加,就跟 Wwise 2021.1 中的按钮一样。
- WG-63512 已修复:IAkPluginMemAlloc.h 头文件中的断言使得调试字符串出现在优化目标中。
- WG-63545 已修复:在以下情况下调用 UnloadBank 时发生死锁:
- 在调用 UnloadBank 的过程中以过渡方式停止声音。
- 在调用 UnloadBank 的同一帧暂停以上所述声音。
- WG-63585 已修复:(Spatial Audio) Spatial Audio 内存池出现缓慢而持续的内存泄漏。
- WG-63588 已修复:在打开的工程包含 Music Event Cue 和 Event 之间的循环引用时可能会发生崩溃。
- WG-63691 已修复:在启用了版本控制集成的工程中使用 List View Size Previews 时发生崩溃。
- WG-63749 已修复:在调用
AK::SoundEngine::ExecuteActionOnEvent
时,会针对所有活跃的 MIDI 媒体项执行操作(从 AK::SoundEngine::PostMIDIOnEvent
开始),而不管 Event 动作的目标是什么。
- WG-63860 已修复:在正在执行长的版本控制操作时关闭 Wwise 工程会引发崩溃。