First the user must create Auxiliary busses in the Wwise project that will represent the environments, one aux bus per environment. The option "Use game-defined auxiliary sends" must have been set in the object properties or in the object it inherits its properties from for sounds that should use this feature. For the game to use these parameter sets, the effect in question must be registered in the sound engine. You do this in exactly the same way you register other effect plug-ins (see Plug-in Example for more details), as demonstrated in the following example:
The appropriate factory header file must be included so the four arguments passed to AK::IAkPluginMgr::RegisterPlugin() can be found at compile time. To allow the creation functions to be found at link time, your C++ project must link with the appropriate plug-in library. Refer to Overview of Libraries and Header Files Contained in the SDK for more information on libraries.
After the effect to be used as environmental is registered and applied to one control bus in the Wwise project (refer to the Wwise Help for more information), your game can start setting the ratio of each environment for each game object to be affected by those environments.
You can set the dry ratio for each game object with AK::SoundEngine::SetGameObjectOutputBusVolume(). To set the ratio for each environment that should be considered for that game object, use AK::SoundEngine::SetGameObjectAuxSendValues(), as described in the following example:
Refer to Integration Details - Environments and Game-defined Auxiliary Sends for information on the meaning of these ratios.
In the sample program you can experiment with Environments by moving the first three sliders in the "Environments: Footsteps" group, which let you set the ratio (0% on the left, to 100% on the right) for Dry, Hangar, and Tunnel environments.
Refer to Integration Details - Environments and Game-defined Auxiliary Sends for more details, and to Integration Demo Sample for the sample project.
Obstruction and occlusion can be computed for each game object relative to each listener, as it depends on the environment and positions of game objects and listeners.
Setting obstruction and occlusion is done by calling AK::SoundEngine::SetObjectObstructionAndOcclusion() as demonstrated here:
In the sample program you can experiment with Obstruction and Occlusion by moving the last two sliders in the "Environments: Footsteps" group which let you set the ratio (0 to 100%) for obstruction and occlusion.
Refer to Obstruction and Occlusion in Environments for more details, and to Integration Demo Sample for the sample project.
|
Note: This sample code comes from the Sound Engine Integration Sample Project available in the Samples section. Refer to Integration Demo Sample for more information. |