Version

menu_open
Wwise Unreal Integration Documentation
Upgrading Projects to Wwise 2023.1

Spatial Audio

Integration Settings

Before 23.1, Spatial Audio used the Integration Settings to store look up tables. They were then saved in the DefaultGame.ini file. Some of them could be modified by the user or by asset changes in the project, which often made the DefaultGame.ini file dirty. AcousticTextureParamsMap This array previously stored the absorption values of all the acoustic textures of the project. It has been removed from DefaultGame.ini and made private. AkGeometryMap This array previously associated the Physical Materials of the project with Acoustic Textures and Transmission Loss values. It has been replaced by a Data Table asset of row type FWwiseGeometrySurfacePropertiesRow. When updating to 23.1, a new asset is created, the contents of AkGeometryMap are moved into it, and the new asset is associated with the Integration Setting's Geometry Surface Properties Table property. A new "Verify and Update" button has been added to remove invalid rows. EnvironmentDecayAuxBusMap This array previously associated Reverb Decay values with Reverb Auxiliary Busses. It has been replaced by a Data Table asset of row type FWwiseDecayAuxBusRow. When updating to 23.1, a new asset is created, the contents of EnvironmentDecayAuxBusMap are moved into it, and the new asset is associated with the Integration Settings's Reverb Assignment Table property.

Reverb Estimation Service

Before 23.1, the reverb estimation service in Unreal estimated the decay of a room with a Default Surface Absorption value defined in the Project Settings. It now uses the absorption values of the room's textures to estimate this decay. Expect a change in decay value for rooms that have specified acoustic textures. If no textures are specified for a room, then the Default Surface Absorption value is used.

Continuous Ray Casting

Spatial Audio uses a raytracing engine to efficiently evaluate reflection and diffraction paths. In the previous version of Wwise, when the emitter or listener movement exceeded a predefined threshold (see the Movement Threshold Spatial Audio Setting), a number of rays were cast, and the reflection and diffraction paths were recalculated. The combination of the ray casts with the recalculation increased the load on the frame, which caused CPU peaks. In Wwise 2023.1, rays are continuously cast on each frame until a recalculation is triggered. This helps spread the load of ray casting over several frames, which prevents CPU peaks. For this reason, the default value of the Number Of Primary Rays Spatial Audio Setting has been lowered from 100 to 35. Make sure you re-evaluate the preferred number of primary rays for your project after migrating.

Watertight Geometry

In 23.1, we have introduced new Spatial Audio features that require the Geometry of Rooms to be watertight in order to calculate containment and proximity to transition regions. This means that there can be no holes in the Geometry; every edge connects exactly two triangles. When a Room is sent to Spatial Audio, the Room's Geometry is searched for boundary edges. If any boundary edges are found, the Geometry is not watertight and an error message appears. If the Room is a Reverb Zone, its Geometry must be watertight. If you encounter the error message, fix the Geometry by looking for holes and boundary edges. Any hole can be covered by a surface with a Transmission Loss value of 0. If there are no apparent holes, look for boundary edges caused by overlapping edges or surfaces. Note that it is also important to have a watertight Geometry if you depend on Spatial Audio to do room containment. However, the Unreal integration does not use this feature by default. In any other scenario, you can disregard the error message.

Deprecation

The following functions, blueprint nodes and properties were deprecated in the 2022.1.0 Unreal Integration and were removed in the 2023.1.0 Unreal Integration:

Removed Functions

  • FAkAudioInputManager:
    • PostAudioInputEvent: EventName parameter has been removed.
  • UAkComponent:
    • PostAkEvent: EventName parameter has been removed.
    • PostAkEventAndWaitForEnd: EventName parameter has been removed.
    • PostAkEventByIdWithCallback: Use PostAkEvent instead.
    • PostAkEventByNameWithDelegate: Use PostAkEvent instead.
    • PostAssociatedAkEventAndWaitForEndAsync: Use PostAkEventAndWaitForEnd instead.
    • UseEarlyReflections
  • UAkGameObject:
    • PostAkEvent: EventName parameter has been removed.
    • PostAkEventAsyncByEvent: Use PostAkEvent instead.
    • PostAkEventByNameWithDelegate: Use PostAkEvent instead.
    • GetRTPCValue
  • FAkAudioDevice:
    • PostAkAudioEventOnActor: Use UAkAudioEvent::PostOnActor instead.
    • PostAkAudioEventOnComponent: Use UAkAudioEvent::PostOnComponent instead.
    • PostEventOnActor: Use UAkAudioEvent::PostOnActor instead.
    • PostEventOnGameObjectID: Use UAkAudioEvent::PostOnGameObjectID instead.
    • PostEventOnActorWithLatentAction: Use UAkAudioEvent::PostOnActor instead.
    • PostEventOnComponentWithLatentAction: Use UAkAudioEvent::PostOnComponent instead.
    • PostEventOnAkComponent: Use UAkAudioEvent::PostOnComponent instead.
    • PostEventOnAkGameObject: Use UAkAudioEvent::PostOnAkGameObject instead.
    • PostAkAudioEventAtLocation: Use UAkAudioEvent::PostAtLocation instead.
    • PostAkAudioEventAtLocationAsync: Use UAkAudioEvent::PostAtLocation instead.
    • PostAkAudioEventOnActorAsync: Use UAkAudioEvent::PostOnActor instead.
    • PostAkAudioEventOnAkGameObjectAsync: Use UAkAudioEvent::PostOnAkGameObject instead.
    • PostAkAudioEventWithLatentActionOnActorAsync: Use UAkAudioEvent::PostOnActor instead.
    • PostAkAudioEventWithLatentActionOnAkComponentAsync: Use UAkAudioEvent::PostOnComponent instead.
    • ExecuteActionOnEvent: Use UAkAudioEvent::ExecuteAction instead.
    • ExecuteActionOnPlayingID: Use UAkAudioEvent::ExecuteAction instead.

Removed Blueprint Nodes

  • PostAndWaitForEndOfEventAsync: Use PostAndWaitForEndOfEvent or UAkAudioEvent::PostOnActorAndWait instead.
  • PostEventByName: Use PostEvent or UAkAudioEvent::PostOnActor instead.
  • PostEventAtLocationByName: Use UAkAudioEvent::PostAtLocation instead.
  • PostEventAtLocation: EventName parameter has been removed.
  • ExecuteActionOnEvent: Use UAkAudioEvent::ExecuteAction instead.
  • UseEarlyReflections
  • ClearBanks
  • LoadBankByName
  • UnloadBankByName

Removed Properties

  • UAkComponent:
    • EarlyReflectionOrder
    • EarlyReflectionMaxPathLength
    • roomReverbAuxBusGain
    • diffractionMaxEdges
    • diffractionMaxPaths
    • diffractionMaxPathLength
  • UAkGameObject:
    • EventName

Was this page helpful?

Need Support?

Questions? Problems? Need more info? Contact us, and we can help!

Visit our Support page

Tell us about your project. We're here to help.

Register your project and we'll help you get started with no strings attached!

Get started with Wwise