Wwise SDK 2019.1.11
|
插件媒体系统使插件(效果器、源插件、Sink 插件或混音器)可利用 Wwise 架构存储工程中的二进制数据文件。
以下是在插件中使用插件媒体相对于使用自定义数据的诸多优势:
重载函数 AK::Wwise::IAudioPlugin::SetPluginObjectMedia
,存储指针供今后使用。在 Wwise 插件(设计工具部分)初始化时将调用此功能。通过实现此功能,您将收到 IPluginObjectMedia*
的接口,以便您管理媒体文件。
您可以通过调用 AK::Wwise::IPluginObjectMedia::SetMediaSource
来导入媒体文件。在导入媒体时,媒体将被复制到插件的 Original 目录下,全面由 Wwise 进行管理。在索引 0 处添加插件媒体文件:
后面您可以调用 AK::Wwise::IPluginObjectMedia::InvalidateMediaSource
来请求转码媒体文件。重载函数来接收当插件数据改变时的通知。
请参阅 AK::Wwise::IPluginObjectMedia
的功能文档了解详情。
您可能需要为运行时组件转码您的媒体。要实现转码功能,您需要从 AK::Wwise::IPluginMediaConverter
继承并实现必要的功能(包括 ConvertFile
和 GetCurrentConversionSettingsHash
),这些功能可让您将导入的原始 WAV 转码成实时组件的相应格式。
一旦实现 AK::Wwise::IPluginMediaConverter
中的所有函数,您就可以重载 GetPluginMediaConverterInterface()
函数来告诉 Wwise 您希望转码您的媒体。
以下是 AK::Wwise::IPluginMediaConverter
函数的应用示例:
在插件定义文件中,确保您将 CanReferenceDataFile
元素设为 true
。
在插件的实时组件中实现 AK::IAkEffectPlugin
时,您将在 Init(...)
函数中收到 AK::IAkEffectPluginContext
指针。从 AK::IAkEffectPluginContext
中,您可以调用 AK::IAkPluginContextBase::GetPluginMedia
来获取经过转码的媒体,这些媒体打包存储于 Wwise 的 SoundBank 中。
备注: 本例展示了如何在运行时使用 effect 插件媒体。不过,只需对其中的参数稍作调整,就可用来阐释如何使用另一插件类型,如 source 插件。在这种情况下,要实现 AK::IAkSourcePlugin 接口,并接收 AK::IAkSourcePluginContext 指针 。 |
在 Wwise 中所有总线效果器存储在 Init.bnk 中。为了避免 Init.bnk 过大,插件媒体不会自动添加到 Init.bnk 中。您需要手动添加效果器 ShareSet(共享集),或者将总线添加到单独的 SoundBank中去。