Table of Contents
Wwise SDK 2021.1.1
To create a new plug-in, simply run the following in a command-line and answer the prompts:
Here is an example session:
This will create a directory that is named after your plug-in's current working directory. The directory contains a skeleton for the type of plug-in to create.
MyNewFX/ ├── FactoryAssets │ └── Manifest.xml ├── Help ├── MyNewFXConfig.h ├── PremakePlugin.lua ├── SoundEnginePlugin │ ├── MyNewFXFX.cpp │ ├── MyNewFXFX.h │ ├── MyNewFXFXFactory.h │ ├── MyNewFXFXParams.cpp │ ├── MyNewFXFXParams.h │ └── MyNewFXFXShared.cpp ├── WwisePlugin │ ├── MyNewFX.def │ ├── MyNewFX.xml │ ├── MyNewFXPlugin.cpp │ ├── MyNewFXPlugin.h │ └── Win32 │ ├── MyNewFXPluginGUI.cpp │ └── MyNewFXPluginGUI.h │ └── res │ └── Md │ └── en │ └── Placeholder.md ├── additional_artifacts.json └── bundle_template.json
The purpose of these files and directories is as follows:
- PremakePlugin.lua -> Premake file used to generate platform-specific solutions for a plug-in.
- ProjectNameConfig.h -> Header file containing global identification variables for a plug-in. This is where the Company ID and Plugin ID can be modified.
WwisePlugin -> The directory containing the authoring part of the plug-in and it is used as a dynamic library by the Authoring application.
- ProjectName.def -> DLL module definition file used to export the plug-in library (Windows only).
- ProjectName.xml -> Description file containing information about several aspects of the plug-in. For more details, see Wwise Plug-in XML Description Files.
- ProjectNamePlugin.h/.cpp -> Class that implements the backend part of the plug-in. For more details, see Authoring Plug-in Library Format.
- Win32/ProjectNamePluginGUI.h/.cpp -> Class that implements the frontend part of the plug-in for Authoring on Windows. For more details, see Authoring Plug-in Library Format.
- res/Md/en directory -> Files used to build the documentation of the plugin's properties in HTML format.
SoundEnginePlugin -> The directory containing the sound engine part of your plug-in. It is used in your game by the sound engine and can be built as a static library or a shared library.
- PluginNameFactory.h -> Factory header containing the registration macro for the plug-in.
- PluginNameParams.h/.cpp -> The plug-in parameter interface. For more details, see Parameter Node Interface Implementation.
- PluginNameShared.cpp -> Defines the plug-in's dynamic library export symbol.
- PluginName.h/.cpp -> Class that implements the sound engine part of the plug-in. See Writing the Sound Engine Part of an Audio Plug-in for details.
- FactoryAssets -> The directory containing any factory assets that should be installed with the plug-in. A Manifest.xml file in this directory specifies the required dependencies for any factory assets to be included in a project.
Help -> The directory containing plugin's documentation files that will be packaged and installed in the
- additional_artifacts.json -> A JSON file listing the paths of additional files to package.
- bundle_template.json -> A JSON file containing plug-in's metadata used when creating the plug-in's bundle.
You can now successfully start writing your plug-in! Refer to Audio Plug-ins for more information on how to write audio plug-ins.
|Note: Plug-in tools use a hash of the plug-in name to generate the Plug-in ID. If a user wants to change the Company ID or the Plug-in ID, they must change them in three files: ProjectNameConfig.h, FactoryAssets/Manifest.xml and WwisePlugin/ProjectName.xml.|
Note: If you are generating plug-ins using the same settings and want to automate a task, prompts can be pre-filled by passing them as command-line arguments.
python "%WWISEROOT%/Scripts/Build/Plugins/wp.py" new [--sink | --mixer | --object_processor | --source | --effect] [--out-of-place] [-a AUTHOR] [-d DESCRIPTION] [-t DISPLAY_NAME] [-n NAME] [--no-prompt]
See the help of new command for the meaning of each argument.
python "%WWISEROOT%/Scripts/Build/Plugins/wp.py" new -h
Next section: Configuring Your Project With Premake