Version

menu_open
Wwise SDK 2024.1.1
Creating Audio Plug-ins

You can create plug-ins with a Python script included with Wwise. Before you do so, ensure that the \Scripts\Build\Plugins directory is writable and not under source control (see Using Wwise with your source control system for more information).

To create a new plug-in, run the following commands and answer the prompts:

python "%WWISEROOT%/Scripts/Build/Plugins/wp.py" new

Here is an example session:

> python "%WWISEROOT%/Scripts/Build/Plugins/wp.py" new
plug-in type {source, sink, object_processor, mixer, effect}: effect
Do you need to do out-of-place processing? (no)
project name: MyNewFX
display name: (MyNewFX) My New FX
author: Audio Kinetic
description: A brand new effect plug-in
About to create project with:
{'author': 'Audio Kinetic',
'description': 'A brand new effect plug-in.',
'display_name': 'My New FX',
'name': 'MyNewFX',
'out_of_place': False,
'type': 'effect'}
Is this OK? (yes)
Generating project structure for MyNewFX

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.
  • 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 Authoring/Help/<PluginName> folder.
  • 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


Cette page a-t-elle été utile ?

Besoin d'aide ?

Des questions ? Des problèmes ? Besoin de plus d'informations ? Contactez-nous, nous pouvons vous aider !

Visitez notre page d'Aide

Décrivez-nous de votre projet. Nous sommes là pour vous aider.

Enregistrez votre projet et nous vous aiderons à démarrer sans aucune obligation !

Partir du bon pied avec Wwise