版本
Wwise SDK 2023.1.3
|
插件媒体系统使插件(效果器、源插件、Sink 插件或混音器)可利用 Wwise 架构存储工程中的二进制数据文件。
以下是在插件中使用插件媒体相对于使用自定义数据的诸多优势:
您可以通过在后端获取 AK::Wwise::Plugin::RequestObjectMedia
来请求 Object Media 服务。 藉此,可提供成员 m_objectMedia
以访问相应的服务方法。若要接收有关对象媒体的通知(比如在用户执行更改后),请从 AK::Wwise::Plugin::Notifications::ObjectMedia
获取,并覆盖 AK::Wwise::Plugin::Notifications::ObjectMedia::NotifyPluginMediaChanged()
方法。
您可以通过调用 AK::Wwise::Plugin::ObjectMedia::SetMediaSource()
来导入媒体文件。 在导入媒体时,其将被复制到插件的 Originals 目录下,并完全由 Wwise 进行管理。 在索引 0 处添加插件媒体文件:
覆盖函数 NotifyPluginMediaChanged
以在插件数据发生更改时接收通知。NotifyPluginMediaChanged
is triggered by any modifications to the media source.
请参阅 AK::Wwise::Plugin::ObjectMedia
的功能文档了解详情。
If the plug-in definition file uses CanReferenceDataFile
, you must convert your imported original WAV media at runtime to an appropriate format for the real-time component.
To implement conversion functions, inherit from AK::Wwise::Plugin::MediaConverter
and implement the required functions:
AK::Wwise::Plugin::MediaConverter::ConvertFile
AK::Wwise::Plugin::MediaConverter::GetCurrentConversionSettingsHash
以下是 AK::Wwise::Plugin::MediaConverter
函数的应用示例:
In the plug-in definition file (the plug-in XML file), ensure that the CanReferenceDataFile
element is set to 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。您必须手动将 Effect ShareSet 或总线添加到单独的 SoundBank。