AkLateReverbComponent
You can add this component to any UPrimitiveComponent
to create a reverb zone from that Primitive Component. To obtain the reverb effect, assign a Wwise Auxiliary Bus to the component and route all AkComponents
that enter this volume to the associated Wwise Auxiliary Bus. If there is volume overlap, a Priority
property determines which Auxiliary Busses the target AkComponent
is routed to. A temporal fade in/out Effect is applied to the level of the Auxiliary Bus when entering/exiting a AkReverbVolume
. If an Ak Late Reverb Component is active on an actor that also has an AkRoomComponent, the Late Reverb Component is disabled and reverb is handled by the AkRoomComponent, which uses the Spatial Audio engine to render Effects.
Information about the reverb parameters is displayed above any objects with attached Ak Late Reverb Components. You can enable or disable this text in the Wwise Integration Settings under Viewports - Show Reverb Info, or from the Unreal Level Editor Viewport menu.
Show Reverb Info in the Level Editor Viewport Menu
Properties:
- Enable Late Reverb: Enables or disables this component.
- Send Level: Maximum Send Level associated with the Wwise Auxiliary Bus.
- Fade Rate: Rate at which to fade in/out the Send Level of the current Late Reverb Component when entering/exiting it, in percentage per second. For example, a value of 0.2 makes the fade time 5 seconds.
- Priority: The order in which to apply the Late Reverb Components. In the case of overlapping volumes, only the ones with the highest priority are chosen (the number of simultaneous Late Reverb Components is configurable in the Unreal Editor Project Settings under Wwise > Integration Settings). If two or more overlapping Late Reverb Components have the same priority, it is not possible to predict which Late Reverb Component will be applied first.
- Auto Assign Aux Bus: Automatically assigns the aux bus for this reverb component by estimating the decay time of the reverb produced by the parent Primitive Component, given its volume and surface area. This decay value is used to select an aux bus from the Automatically Assigning a Reverb Aux Bus in the integration settings. Enabled by default.
- Aux Bus: UAkAuxBus assigned to this volume. In the Wwise project, this aux bus enables game-defined auxiliary sends. If you are using Late Reverb with AkRoomComponent and AkPortalComponent, Listener Relative Routing for Positioning must also be enabled and must have a 3D Spatialization assigned.
- Environment Decay Estimate: An estimation of the T60 (the time taken for the sound pressure level to reduce by 60dB) for the reverb's environment, based on the Primitive Component to which the late reverb is attached. This T60 value can be used to automatically assign an aux bus using the Automatically Assigning a Reverb Aux Bus in the integration settings, and/or to drive the Decay Estimate RTPC, from the Driving Reverb RTPCs in the integration settings.
- HFDamping: An estimation of the high-frequency damping produced by the environment, based on an associated AkGeometryComponent (or AkSurfaceReflectorSetComponent if the owning Actor is a Volume). To estimate the HF damping, a geometry component must be associated with this reverb component through the AssociateAkTextureSetComponent function. If this late reverb component has a sibling geometry component (or surface reflector set component), it is associated automatically and there is no need to call AssociateAkTextureSetComponent. If AssociateAkTextureSetComponent is used, the HFDamping value is only accurate during play. A value of 0.0 indicates uniform damping across all frequencies. A value greater than 0.0 indicates more damping for higher frequencies than lower frequencies. A value less than 0.0 indicates more damping for lower frequencies than high frequencies. This value can be used to drive the HFDamping RTPC, from the Driving Reverb RTPCs in the integration settings. Average absorption values are calculated using each of the textures in the collection, weighted by their corresponding surface area.
- Time to First Reflection: An estimation of the time required for the first reflection to reach the listener, based on the primitive component to which the late reverb is attached. The estimate is based on an emitter and listener positioned at the centre of the parent primitive component. This value can be used to drive the Time To First Reflection RTPC, from the Driving Reverb RTPCs in the integration settings.
Blueprint Functions:
![](/images/2023.1.6_8555/?source=UE4&id=Note.gif) | Note:
- An Ak Late Reverb Component must be attached to a
UPrimitiveComponent in the component hierarchy. If an Ak Late Reverb Component does not have a UPrimitiveComponent as its parent, an error is logged and the component does not have an effect.
- If you use an
AkLateReverbComponent in a custom Blueprint class, we recommended that you use a simple collision component as the parent, such as BoxCollision , SphereCollision , or CapsuleCollision component. Refer to Spatial Audio Blueprint Components for more information.
- To use the Environment Decay Estimate, HFDamping, and Time to First Reflection values with the Driving Reverb RTPCs in the integration settings, the reverb component must have a sibling AkRoomComponent (in other words, an AkRoomComponent that shares the same Primitive parent component). The RTPC values are set on the Room IDs.
- When working with Ak Late Reverb Components in the level editor, we strongly recommended that you enable Realtime in the Viewport Options. If Realtime is disabled, the reverb parameter estimation values are not updated when actors are scaled or when acoustic texture parameters are changed in the Wwise project.
|
AkComponent
The AkComponent
acts as a proxy for a GameObject
, and registers and unregisters its associated AkGameObjectID
at the appropriate time.
If you look at the Unreal Integration C++ files, you can see that UAkComponent
offers many of the same functions that receive an AkGameObjectID
as AK::SoundEngine
, and that UAkGameObject
has a GetAkGameObjectID()
function that returns a casted this
pointer.
If you are adding functionality to an AkAudioDevice
, for example, you can use GetAkGameObjectID()
to obtain the AkGameObjectID
that you need for any of the SoundEngine functions.
Properties:
- Attenuation Scaling Factor: If the Ambient Sound uses attenuation in Wwise, you can use this property to modify the attenuation computations on the ambient sound to simulate sounds with a larger or smaller area of effect.
- Use Reverb Volumes: Determines whether or
AAkReverbVolumes
influences the component.
- Obstruction Occlusion
- Collision Channel: The object collision channel to use when doing line of sight traces for obstruction/occlusion calculations. When set to 'Use Integration Settings Default', the value is taken from the DefaultOcclusionCollisionChannel in the Wwise Integration Settings.
- Refresh Interval: Set the time interval between obstruction/occlusion checks (direct line of sight between the listener and this game object). Obstruction is used if Spatial Audio Rooms are present in the map. Otherwise, occlusion is used. Set to 0 to disable obstruction/occlusion on this component. The obstruction/occlusion value is directly applied with AK::SoundEngine::SetObjectObstructionAndOcclusion. When using Spatial Audio, obstruction checks are also done between portals in the same room and this game object. Only use this feature if you plan to obstruct this game object with geometry that is neither AkSurfaceReflectorSetComponent nor AkGeometryComponent. If not, we recommend that you disable obstruction/occlusion checks and exclusively use Spatial Audio Geometric Diffraction and Transmission.
- Spatial Audio
- Enable Spot Reflectors: Enable reflections on AkSpotReflector for this
AkComponent
.
- Radial Emitter
- Outer Radius: Set the field to the desired outer radius size. The specified number is sent directly to the Spatial Audio AK:SpatialAudio::SetGameObjectRadius() call without any transform. When the actor is selected, a yellow sphere outline is drawn around the game object's position to visualize the size.
- Inner Radius: Set the field to the desired inner radius size. The size must be equal to or smaller than the size of the outer radius. The specified number is sent directly to the spatial audio AK:SpatialAudio::SetGameObjectRadius() call without any transform. When the actor is selected, a yellow sphere outline is drawn around the game object's position to visualize the size.
- Reflect
- Early Reflection Aux Bus: Set the early reflection auxiliary bus for the current game object. The component calls AK::SpatialAudio::SetEarlyReflectionsAuxSend() with the selected auxiliary bus. The auxiliary bus parameter applies to sounds playing on the game object that have not specified an early reflections auxiliary bus in the authoring tool. The early reflection auxiliary bus parameter specified on individual sounds takes priority over the value passed here.
- Early Reflection Bus Send Gain: Set an early reflection send volume for the current game object. The component calls AK:SpatialAudio::SetEarlyReflectionsVolume() with the specified volume value. The value is combined with the early reflections volume specified in the authoring tool, and is applied to all sounds playing on the game object. Valid values are [0, 1]. When set to 0, all reflection processing for this game object is disabled.
- Debug Draw options: Use these options to visualize the raycasts performed by the Spatial Audio Engine, as well as the triangles hit by those raycasts. The visualizations are helpful when you have to debug the Spatial Audio engine. This only works on one component at a time.
- AkEvent
- Ak Audio Event: The UAkAudioEvent that is posted when the AkAmbientSound object is instructed to start playing. If you want to use Spatial Audio features, the sound effect of the Event should enable game-defined auxiliary sends.
- See also
-
AkAudioInputComponent
AkAudioInputComponent
is derived from AkComponent
and represents an audio input instance.
Blueprint Functions:
- Post Associated Audio Input Event: Starts playback of the specified Event and registers the appropriate callbacks.