Wwise Unreal Integration Documentation
Spatial Audio Objects

AkAcousticTexture

Unreal object representing a Wwise Acoustic Texture. Can be created either by drag-and-drop from the Wwise Picker or by right-clicking in the Unreal Content Browser. Once created, it can be applied on a AkSurfaceReflectorSetComponent's polygons or on a AkSpotReflector.

With the AkGeometry Surface Properties Map, in the Integration Settings, it is possible to associate AkAcousticTextures to Unreal Physical Materials.

  • Properties
    • Edit Color: Editor-only property defining the color to be used when coloring AkSurfaceReflectorSetComponent polygons that have an AkAcousticTexture assigned. The Edit Color will be automatically pulled from the Acoustic Texture in the Wwise project. If there is an active WAAPI connection, changes made to Acoustic Texture colors in Wwise will immediately be applied to the AkAcousticTexture Edit Color.

AkSpotReflector

The Spot Reflector actor allows one to place an omnidirectional point reflector in the 3D world. Spot reflectors make sense when they are placed on far away objects that have a large radius; like a distant mountain.

Spot Reflectors will reflect any sound coming from an AkComponent that has Enable Spot Reflectors enabled and that is positioned in the same area. An AkComponent will feed to spot reflectors if they both are outside rooms. If the AkComponent is in a room, it will only feed to spot reflectors inside the same room. Rooms can be created with a volume that has an AkRoomComponent attached.

Calls AK::SpatialAudio::AddImageSource() from the Spatial Audio API on BeginPlay.

  • Properties:
    • Aux Bus: AkAuxBus that has the AkReflect plug-in for early reflection DSP. This aux bus should enable game-defined auxiliary sends, with Listener Relative Routing enabled but 3D Spatialization set to None.
    • Acoustic Texture: AkAcousticTexture used to filter sounds reflected by this image source.
    • Distance Scaling Factor: Image source distance scaling. This number effectively scales the sourcePosition vector with respect to the listener and, consequently, scales distance and preserves orientation.
    • Level: Game-controlled linear level for this source.

AkSurfaceReflectorSetComponent

This component is equivalent to AkGeometryComponent, but it needs to be attached on an AVolume actor. On BeginPlay, all of the volume's enabled polygons will be sent to the SpatialAudio engine.

  • Properties
    • Enable Surface Reflector Set: Enables or disables this component
    • Acoustic Surfaces: You can use these controls to edit the properties associated with one or more faces on the volume. By default, changes to these properties are applied to all faces on the currently selected actor(s). To change which faces you are editing, you can enable Edit Surfaces mode by clicking the Enable Edit Surfaces button. This will switch the Unreal editor to Brush Editing mode and will hide all non-selected actors in the level. To return to the standard editor mode, you can click the Disable Edit Surfaces button. While in Edit Surfaces mode, you can select one or more individual faces on the volume. Changes to the acoustic surface properties are applied to all selected faces. The text in brackets after each property indicates how many faces are being edited.
      • AkAcousticTexture: The AkAcousticTexture associated with the selected faces. The faces are colored using the texture's Edit Color, and the texture's name is displayed on the faces in the Game Viewport. Setting this to None makes the surface(s) completely reflectible. In other words, no additional texture filter is applied.
      • Transmission Loss: Indicates how much sound is transmitted through the surface. The valid range is 0.0 - 1.0. A value of 0.0 indicates that sound passes through the surface completely. A value of 1.0 indicates that sound is blocked by the surface.
      • Enable Surface: Indicates whether the selected faces are sent to the Spatial Audio engine. Disabled faces do not display any texture name or Transmission Loss value.
    • Geometry Settings:
      • Enable Diffraction: Enable or disable geometric diffraction for this Geometry.
      • Enable Diffraction on Boundary Edges: Enable or disable geometric diffraction on boundary edges for this Geometry. Boundary edges are edges that are connected to only one triangle. Depending on the specific shape of the geometry, boundary edges may or may not be useful and it is beneficial to reduce the total number of diffraction edges to process.
      • Associated Room: (Optional) Associate this Surface Reflector Set with a Room. Associating a surface reflector set with a particular room will limit the scope in which the geometry is visible/accessible. Leave it as None and this geometry will have a global scope. It is recommended to associate geometry with a room when the geometry is (1) fully contained within the room (not visible to other rooms except by portals), and (2) the room does not share geometry with other rooms. Doing so reduces the search space for ray casting performed by reflection and diffraction calculations. Take note that once one or more geometry sets are associated with a room, that room will no longer be able to access geometry that is in the global scope.

Note:
When working with an AkSurfaceReflectorSetComponent, be sure to set the viewport to Realtime so that the visualizations are updated correctly.

Enable Realtime in the Viewport Options
See also

AkRoomComponent

This component can be added to any UPrimitiveComponent to register a Spatial Audio Room with the Wwise sound engine. Rooms have two purposes:

  • Allow for oriented reverb. All Auxiliary Busses applied on a game object within a Room will be oriented towards the volume's front vector.
  • Used in conjunction with AkAcousticPortal or AkPortalComponent, allow for routing the wet signal from one Room through a Portal, to another Room.

In both cases, the Auxiliary Bus used should have its positioning options set to enable Listener Relative Routing for Positioning to specify a 3D Spatialization and assign an attenuation.

  • Properties
    • Is Dynamic: Enables or disables runtime changes to the portal connections for this room based on the room's movement. For worlds containing many portals, enabling this property can be computationally expensive. Note that when disabled, the room's portal connections may still change if dynamic portals are moved (i.e. portals with bDynamic enabled).
    • Enable Room: Enables or disables this component
    • Priority: The precedence in which the rooms will be applied. In the case of overlapping rooms, the one with the highest priority is chosen. If two or more overlapping rooms have the same priority, the chosen room is unpredictable.
    • Transmission Loss: Used to set the transmission loss value on the direct sound emitted in the Room, when the listener is in another room. This value can be thought of as 'thickness', because it relates to how much sound energy is transmitted through the room's walls. The valid range is 0.0f-1.0f, and is mapped, by default, to the occlusion curves of the Wwise project.
    • Room Tone
      • Ak Audio Event: The event to be posted on the room game oject.
      • Aux Send: Send level for sounds that are posted on the room. Valid range: (0.f-1.f). A value of 0 disables the aux send.
      • Auto Post: Automatically post the audio event posted on the room on BeginPlay.
Note:
An Ak Room Component must be attached to a UPrimitiveComponent in the component hierarchy. If an Ak Room Component does not have a UPrimitiveComponent as its parent, an error will be logged and the component will have no effect.
Note:
An Ak Room Component uses the position and bounds of its parent (UPrimitiveComponent) when updating Wwise. Any translation, rotation, or scaling applied directly to an Ak Room Component will have no effect.
Note:
When using an AkRoomComponent in a custom Blueprint class, it is recommended to use a simple collision component as the parent. For example, you could use a BoxCollision, SphereCollision, or CapsuleCollision component. Refer to Spatial Audio Blueprint Components for more information.
See also

AkPortalComponent

This component can be added to any UPrimitiveComponent to register a Spatial Audio Portal with the Wwise sound engine. Allows for sounds contained in an actor with AkRoomComponent attached (e.g. AkSpatialAudioVolume) to leak into other actors with AkRoomComponent attached. Such actors overlapping with Portals are detected at initialization time. Both panned and 3D-spatialized sounds can be routed through a portal. Portals have a front and a back room. They must have at least one room connected, and the front room must be different than the back room.

  • Properties
    • Is Dynamic: Enables or disables runtime changes to the room connections for this portal based on the portal's movement. For worlds containing many rooms, enabling this property can be computationally expensive. Note that when disabled, the portal's room connections may still change if dynamic rooms are moved (i.e. rooms with bDynamic enabled).
    • Initial state: Whether this Portal should be initialized in an open (enabled) or closed (disabled) state.
    • Obstruction Refresh Interval: Set the time interval between obstruction checks (direct line of sight between listener and portal opening). Set to 0 to disable obstruction checks. We recommend disabling it if you want to use full Spatial Audio diffraction.
    • Obstruction Collision Channel: The object collision channel used for creating the collision of the obstruction ray-casts (between the Portal and the listener) with the desired geometry.
Note:
An AkPortalComponent must be attached to a UPrimitiveComponent in the component hierarchy. If an AkPortalComponent does not have a UPrimitiveComponent as its parent, an error will be logged and the component will have no effect.
Note:
When working with rooms and portals, they can be visualized in the Viewport in order to help with position adjustment, and to visualize portal-room connections. This can be enabled / disabled from the Wwise Integration Settings under Viewports - Visualize Rooms and Portals.
Note:
An AkPortalComponent uses the position and bounds of its parent (UPrimitiveComponent) when updating Wwise. Any translation, rotation, or scaling applied directly to an AkPortalComponent will have no effect.
Note:
If multiple AkPortalComponents are added to a custom Blueprint Class, the Unreal Editor may become unresponsive when moving an instance of that class in the Level Editor. To avoid this issue, disable Run Construction Script on Drag in the Class Settings as follows:
  1. Open the custom Blueprint Class in the Blueprint Editor.
  2. Click Class Settings.
  3. In the Details Panel, under the Blueprint Options, disable the Run Construction Script on Drag option.
See also

AkSpatialAudioVolume

For your convenience, an AkSpatialAudio volume is included in the integration. It consists of a simple volume with a AkSurfaceReflectorSetComponent, a AkRoomComponent and a AkLateReverbComponent attached.

AkAcousticPortal

A convenience actor that can be spawned in the world, which has an AkPortalComponent attached.

AkGeometryComponent

This component is equivalent to AkSurfaceReflectorSetComponent, but instead of brushes, it needs to be added to a StaticMeshComponent. The AkGeometryComponent will convert its mesh to Spatial Audio Geometry. The static mesh itself and the simple collision mesh are the two meshes from which it can be converted. Note that in the case of simple collision, sphere and capsule primitives are approximated to a bounding box mesh.

When debugging a game, it is possible to see the spatial audio geometry in the Wwise Authoring Game Object 3D Viewer. With the AkGeometryComponent, it is now possible to send more complex shapes. This can cause the Game Object 3D Viewer to not display the geometry. Make sure the Monitor Queue Pool Size in the Initialization settings is set accordingly to compensate for the additional data sent by the game.

Choosing either mesh type, the Acoustic Texture(s) and transmission loss values will be deduced from the Physical Material(s) of the mesh. Use the AkGeometry Surface Properties Map in the Integration Settings to associate Physical Materials to AkAcousticTextures and transmission loss values.

  • In the case of a static mesh, the surface properties are deduced from the Physical Material of each Material used by the static mesh.
  • Choosing simple collision as the mesh, the surface properties will be deduced from the Simple Collision Physical Material.

Take note that, in Unreal, when no Physical Material is chosen (left to None), the DefaultPhysicalMaterial is used instead. Associate an AkAcousticTexture to DefaultPhysicalMaterial for meshes with no Physical Material assigned.

  • Properties
    • Geometry
      • Mesh Type: Whether the geometry will be converted from the static mesh or the simple collision mesh.
      • LOD: If Static Mesh is selected in the Mesh Type list, this parameter allows you to choose the level of detail (LOD) to use as spatial audio geometry.
      • Welding Threshold: If Static Mesh is selected in the Mesh Type list, this parameter allows you to choose the local distance in Unreal units between two vertices to be welded together. Any two vertices closer than this threshold will be treated as the same unique vertex and assigned the same position. Increasing this threshold decreases the number of gaps between triangles, resulting in a more continuous mesh and less sound leaking though, as well as eliminating triangles that are too small to be significant. Increasing this threshold also helps Spatial Audio's edge-finding algorithm to find more valid diffraction edges.
      • Acoustic Properties Override
        • Acoustic Texture: An Acoustic Texture entered here will override the acoustic texture that would be automatically chosen based on the physical material of the mesh. If static mesh is selected in Mesh Type, it is possible to override the acoustic texture of each material individually.
        • Enable Transmission Loss Override: Enables overriding the transmission loss value.
        • Transmission Loss: A transmission loss value entered here will override the transmission value that would be automatically chosen based on the physical material of the mesh. Again, if static mesh is selected in Mesh Type, it is possible to override the transmission loss value of each material individually.
    • Diffraction
      • Enable Diffraction: Just like the AkSurfaceReflectorSetComponent, this will enable or disable geometric diffraction for this Geometry.
      • Enable Diffraction on Boundary Edges: Just like the AkSurfaceReflectorSetComponent, this will enable or disable geometric diffraction on boundary edges for this Geometry.
    • Optimization
      • Associated Room: (Optional) Associate this Geometry with a Room. Associating a geometry with a particular room will limit the scope in which the geometry is visible/accessible. Leave it as None and this geometry will have a global scope. It is recommended to associate geometry with a room when the geometry is (1) fully contained within the room (not visible to other rooms except by portals), and (2) the room does not share geometry with other rooms. Doing so reduces the search space for ray casting performed by reflection and diffraction calculations. Take note that once one or more geometry sets are associated with a room, that room will no longer be able to access geometry that is in the global scope.
Note:
When adding an AkGeometryComponent in the Blueprint Editor in Unreal, the acoustic textures array will not be automatically filled when Mesh Type is set to static mesh. This is because Component Details panels in the Blueprint Editor show details for template Component instances, which have no knowledge of other Components in the blueprint.
See also