Table of Contents
Wwise SDK 2021.1.2
This page describes the plug-in format as well as the parts that compose a Wwise Authoring plug-in.
A Wwise plug-in dynamic library is a library that exports a plug-in container, listing all plug-ins provided by the library. This container is added to your plug-in library using a set of macros, as shown below:
These macros take a container name as argument that must match your library name without prefix or extension. Each plug-in can then be added using the macro
AK_ADD_PLUGIN_CLASS_TO_CONTAINER. This is all done for you when creating a plug-in using the wp.py development tool.
A plug-in created using the command
wp.py new will have a sound engine part that can be built as a static library and will be automatically linked into the Wwise Authoring plug-in dynamic library. This same sound engine static library can be reused for linking in your game.
For details on the sound engine plug-in implementation, refer to Writing the Sound Engine Part of an Audio Plug-in.
The Wwise Authoring plug-in comes in two parts: a mandatory backend part, implementing the logic behind how the properties of the plug-in are written to SoundBanks and manages any custom data. A frontend part is optional and is created as a separate class. The latter part is responsible for implementing custom graphical user interface. Both parts are added to the plug-in container independently with the
Details on how to implement those two parts are described in more details in the following sections:
Backend of an Authoring Plug-in : Implements the
Frontend of an Authoring Plug-in : Implements a frontend class such as
See also Model of an Authoring Plug-in to learn how to work with the plug-in properties.
Components providing a service such as your plug-in model can be requested using "Request" interfaces, e.g.,
AK::Wwise::Plugin::RequestPropertySet (refer to Property Set). These services are provided to the plug-in instance by the Wwise Authoring application at instantiation time.
Some interfaces add pure virtual methods that must be implemented and that will be called by Wwise. For example, deriving from
AK::Wwise::Plugin::Source requires to implement the method
AK::Wwise::Plugin::Source::GetSourceDuration, which tells the Wwise Authoring the minimum and maximum duration that can be expected from the source.
Components to use as services in your plug-in are all prefixed by "Request". When these services deal with objects that are owned by your plug-in, they provide an instance added as a member variable in your plug-in for use with the service methods (e.g.,
AK::Wwise::Plugin::RequestPropertySet is used with the
m_propertySet object). Here is the list of components that can be requested:
m_hostand functions to interact with the Wwise Authoring application
m_backendand a function to query your backend instance
m_frontendand a function to query an array of frontend instances
m_objectMediaand functions related to media file handling
m_objectStoreand functions related to inner objects management
m_propertySetand functions to get and set property values. This is automatically requested when the plug-in class derives from
m_undoManagerand functions to log custom undo events and groups
AK::Wwise::Plugin::RequestWrite: Provides necessary instance services for
AK::Wwise::Plugin::DataWriter. This is automatically requested when the plug-in class derives from
AK::Wwise::Plugin::RequestXml: Provides necessary instance services for XML Reader and Writers (
AK::Wwise::Plugin::XmlWriter). This is automatically requested when the plug-in class derives from
|Note: Some of those services add notification handler methods that can be optionally overridden.|
Interfaces intended to be implemented are not prefixed. Here is a list of interfaces that can be added:
AK::Wwise::Plugin::CustomData: Adds functions to manage custom data.
AK::Wwise::Plugin::License: Adds a function to check for a license during SoundBank generation.
AK::Wwise::Plugin::MediaConverter: Adds functions for custom media conversions.
AK::Wwise::Plugin::Notifications::Monitor: Adds a function for receiving profiling data from the sound engine plug-in.
AK::Wwise::Plugin::PropertyDisplayName: Adds functions to override XML-defined display names for properties and named values.
AK::Wwise::Plugin::SinkDevices: Adds functions to manage custom audio devices.
AK::Wwise::Plugin::Source: Adds functions related to source plug-ins.
If you run into any problems, Help is available in the Wwise Source and Effect Plug-in Troubleshooting Guide.