WG-24215 重大变化:插件的动态和静态库系统 为了更好地支持商用游戏引擎(列如 Unity 和 Unreal 4)和第三方插件制造商,对插件系统进行全面修改。现在的插件有两种类型:静态库和动态库 。静态链接照常工作,值得注意的例外是AK::SoundEngine::RegisterPlugin()
现在不再是必需的,已经被废弃。保留此功能的目的是提供向下兼容。
由于此次全面修改,更改了插件工厂(位于 AK/Plugin/)的某些 include 文件名,以实现一致性。如果您通过 AllPluginRegistrationHelpers.h 和 AK::SoundEngine::RegisterAllPlugins()
链接所有插件,则您将不会受到更改的影响。否则,只要加入新文件,将自动执行注册。一个显著的变化是 AkVorbisFactory.h 已经重命名为 AkVorbisDecoderFactory.h。
按照以下步骤使用 2016.1 及其新的插件系统编译您的游戏:
AK::SoundEngine::RegisterPlugin()
的所有调用。(无替代。)另外,为避免支持不同接口的插件之间存在不匹配(可能导致崩溃),现在插件加入了版本概念。Wwise 以前版本的 Plugin 库不可用于当前版本;您需要安装正确的版本。
|
Note: 有关插件实现器的注意事项:使插件在 2016.1 工作的最小改动是:
所有插件示例(SDK/samples/Plugins)均已更新。比较它们作为参考。 如果您想为 Unity 或 Unreal 提供 DLL,则注意这个和设计工具的 DLL 是不同的文件。检查如何创建 Wwise 声音引擎插件 了解有关如何执行这些步骤的详情和例子。 |
WG-27060 (Android) 取消了对非 NEON CPU 设备(例如 Tegra 2)的支持。 现在所有 Android 预编译库都使用 NEON 指令。这带来了极大的性能提升。如果您针对的是非 NEON 设备,则仍可针对该目标编译代码(使用 2 级源代码)。
WG-28482 MP3 源插件示例已被移除。 MP3 源插件示例仅支持 Windows,它使用的是无法移植的 Windows API。现在它已经从发行版本中删除。
WG-28509 删除了 AkInitSettings 结构中的 uMaxNumTransitions 参数。 现在可按需求增长而自由提高过渡段的最大数量。现在已移除过渡段"剥夺"系统,除非系统内存不足,否则将执行所有过渡段。正确使用过渡段属于游戏的职责。
WG-28982 移除 iOS、tvOS 和 Android 中的声道限制 为了支持 iOS、tvOS 和 Android 的多声道数据, SoundBank 生成操作不再将输入数据下混为立体声。因此,为这些平台重新生成的 SoundBank 如果包含多声道声音,它们的大小可能会增大。如果资源管理需要它,则仍可在设计工具中将声音显式下混到立体声。
WG-28789 支持音频设备插件参数。
AkInitSettings
参数:AkAudioAPI eMainOutputType
已经被移除。AkPlatformInitSettings
。AkAPI_Default
将支持 XAudio2。AkPlatformInitSettings
中。AkAPI_Default
相当于 WASAPI。AK::IAkSinkPlugin::Init()
现在有一个新参数:AK::IAkPluginParam * in_pParams;
in_pParams
即可。AkOutputSettings::pfSinkPluginFactory
参数已从AkOutputSettings
初始化结构中移除。从现在起,要初始化接收端插件(音频设备),您需要在Wwise工程中创建音频设备共享集,并使用相应的一组参数生成 SoundBank。AkInitSettings
: AkOutputSettings::audioDeviceShareset = AK::SoundEngine::GetIDFromString("InsertYourAudioDeviceSharesetNameHere") 中指定音频设备名称;
in_iDeviceType
参数进行或运算。现在必须在新的 in_uOutputFlags
参数中单独提供它们。WG-28254 查询 API 更新:AK::SoundEngine::Query::GetRTPCValue()
中添加了一个新参数,以便通过播放 ID 检索 RTPC 值。为了迁移现有代码,只需将播放 ID 参数(in_playingID
)设为 AK_INVALID_PLAYING_ID
。请参阅 SDK 文档了解如何通过播放 ID 查询 RTPC 值的信息。
WG-29474 弃用的 AkSoundPosition 和 AkListenerPosition AkSoundPosition
(游戏对象位置)以及 AkListenerPosition
已经替换成一个类型:AkTransform
。因此现在的游戏对象朝向完全由指向上方和前方的向量限定。成员必须带有赋值方法,迫使您改写填充这些结构的方式。
|
Note: 声音引擎没有用于检测游戏对象朝向有效性的内部检查。上方向量必须垂直于前部向量,并且归一化。然而,它只用于环绕立体声旋转。如果您没有使用环绕立体声文件,并且上方向量不太好用,则可将它们设为任意值,例如听者的上方向量。 |
WG-29828 (iOS) 对于 iOS,现在没有必要为正常的应用程序中断(后台/前台、音乐等)调用Suspend()
和 WakeupFromSuspend()
。应用程序生命周期的管理由内部监控,这些调用由声音引擎处理。它只对 iOS 有效。
WG-30376 (Windows) 现在如果在 Windows 上使用 AkSoundEngineDLL ,就必须先安装 Visual Studio 2013 包。但是,这个DLL文件兼容用任何版本 Visual Studio 所做出的工程。