AkAcousticTexture
Unreal object that represents a Wwise Acoustic Texture. This object can be applied to a AkSurfaceReflectorSetComponent's polygons or to a AkSpotReflector.
You can associate AkAcousticTextures with Unreal Physical Materials through the AkGeometry Surface Properties Map in the Integration Settings.
- Properties:
- Edit Color: Editor-only property that defines the color to use when coloring AkSurfaceReflectorSetComponent polygons that have an
AkAcousticTexture
assigned. The Edit Color is automatically retrieved from the Acoustic Texture in the Wwise project. If there is an active WAAPI connection, changes to Acoustic Texture colors in Wwise are immediately applied to the AkAcousticTexture
Edit Color.
- See also
-
AkSpotReflector
You can use the Spot Reflector actor to place an omnidirectional point reflector in the 3D world. Spot reflectors are useful when they are placed on distant objects that have large radii, such as distant mountains.
There are several options you can use to control Spot Reflector behavior:
Spot Reflectors reflect any sound that comes from an AkComponent that has Enable Spot Reflectors enabled.
To ensure that the Spot Reflector only reflects sounds from the same Spatial Audio Room, enable Same Room Only. In this case, an AkComponent feeds a Spot Reflector if they are both outside Rooms or if they are both in the same Room. Rooms can be created with a volume that has an AkRoomComponent attached.
To override the Room that contains the Spot Reflector, enable Enable Room Override and assign a Room to Room Override. If you do not set a Room Override, the Spot Reflector is virtually placed outside Rooms.
AkSpotReflector
calls AK::SpatialAudio::AddImageSource()
from the Spatial Audio API on BeginPlay.
Properties:
- Aux Bus: UAkAuxBus that has the
AkReflect
plug-in for early reflection DSP. This aux bus enables game-defined auxiliary sends, with Listener Relative Routing enabled but 3D Spatialization set to None.
- Acoustic Texture: AkAcousticTexture that filters sounds reflected by the image source.
- Distance Scaling Factor: Image source distance scaling. This number scales the
sourcePosition
vector relative to the listener and, consequently, scales distance and preserves orientation.
- Level: Game-controlled linear level for the source.
AkSurfaceReflectorSetComponent
This component is equivalent to AkGeometryComponent, but must be attached to an AVolume actor. On BeginPlay, all of the volume's enabled polygons are sent to the Spatial Audio engine.
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
Properties:
- Enable Surface Reflector Set: Enables this component.
- Acoustic Surfaces: 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 selected actor or actors.
- Enable Edit Surfaces/Disable Edit Surfaces: When enabled, the Unreal Editor switches to Brush Editing mode and hides all non-selected actors in the level. 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. In Brush Editing mode, you can change AkSpatialAudioVolume objects from rectangles into other shapes. For more information on Brush Editing, see Geometry Brush Actors.
- AkAcousticTexture: The AkAcousticTexture associated with the selected faces. The texture's Edit Color determines the color of the faces, and the texture's name is displayed on the faces in the Game Viewport. For completely reflective surfaces, set this to None, so that 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: Enables geometric diffraction for this Geometry.
- Enable Diffraction on Boundary Edges: Enables geometric diffraction on boundary edges for this Geometry. Boundary edges are edges connected to only one triangle. Depending on the specific shape of the geometry, boundary edges might or might not be useful and it is beneficial to reduce the total number of diffraction edges to process.
- Bypass Portal Subtraction: Prevents Portal bounding boxes from being subtracted from this geometry.
- Solid: Applies transmission loss once for each time a transmission path enters and exits its volume, using the max transmission loss between each hit surface. A non-solid geometry instance is one where each surface is infinitely thin, applying transmission loss at each surface. This option has no effect if the Transmission Operation is set to Max.
- Associated Room: (Deprecated) Associate this AkSurfaceReflectorSetComponent with a Room. This property is deprecated and will be removed in a future version. We recommend not using it by leaving it set to None. Associating an AkSurfaceReflectorSetComponent with a particular Room limits the scope in which the geometry is accessible. Doing so reduces the search space for ray casting performed by reflection and diffraction calculations. When set to None, this geometry has a global scope. Note if one or more geometry sets are associated with a Room, that Room can no longer access geometry that is in the global scope.
- See also
-
AkRoomComponent
You can add this component to any UPrimitiveComponent
to register a Spatial Audio Room with the Wwise sound engine. Rooms have two purposes:
- Oriented reverb. All Auxiliary Busses applied to a game object within a Room are oriented towards the volume's front vector.
- When used in conjunction with AkAcousticPortal or AkPortalComponent, you can route the wet signal from one Room through a Portal to another Room.
In both cases, in the Auxiliary Bus you must have enable Listener Relative Routing for Positioning to specify a 3D Spatialization and assign an attenuation.
Properties:
- Enable Room: Enables this component.
- Is Dynamic: Enables runtime changes to the Portal connections for this Room based on the Room's movement. When the value for this property is set, bWantsOnUpdateTransform is also set to the same value. For worlds that contain many Portals, enabling this property can be computationally expensive. When this option is disabled, the Room's Portal connections might still change if dynamic Portals are moved (that is, Portals with Is Dynamic enabled).
- Priority: Determines the order in which the Rooms are applied. If Rooms overlap, the one with the highest priority is selected. If two or more overlapping Rooms have the same priority, it is not possible to predict which Room will be selected.
- Transmission Loss: Sets the transmission loss value on the direct sound emitted in the Room when the listener is in another Room. Think of this value 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. If the Room has a parent or sibling AkGeometryComponent or AkSurfaceReflectorSetComponent, the transmission loss of these component surfaces is used, unless they are set to 0.
- Ak Event
- Aux Send Level: Send level for sounds that are posted to the Room. Valid range: (0.f-1.f). A value of 0 disables the aux send.
- Auto Post: Automatically post the audio event posted to the Room on BeginPlay.
- Ak Audio Event: The event to post to the Room game oject.
- Reverb Zone
- Enable Reverb Zone: Sets this Room as a Reverb Zone. A Reverb Zone models a region that has a distinct reverb effect or ambience but does not require Portals to connect to neighboring Rooms. Use Reverb Zones instead of standard Rooms whenever there are no obvious walls, or generally when there is more negative space than positive space at the interface between the two regions.
- Parent Room Actor: Establishes a parent-child relationship between two Rooms and allows for sound propagation between them as if they were the same Room, without the need for a connecting Portal. A parent Room can have multiple Reverb Zones, but a Reverb Zone can only have a single Parent. The Reverb Zone and its parent are both Rooms, and as such, must be specified using Enable Room. The automatically created 'outdoors' Room is commonly used as a parent Room for Reverb Zones, because they often model open spaces. When set to None (the default value), the Reverb Zone is automatically attached to the 'outdoors' Room.
- Parent Room Name: The name of the Parent Room of this Reverb Zone. If the Parent Room Actor is None, or if the Parent Room Actor is not valid, the 'outdoors' Room is chosen and printed here.
- Transition Region Width: Width of the transition region between the Reverb Zone and its parent. The transition region acts the same way as Portal depth, but is centered around the Reverb Zone geometry (see AkPortalComponent for more details about the Portal depth). It only applies where surface transmission loss is set to 0. The value must be positive. Negative values are treated as 0.
| 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 is logged and the component does not have effect.
- 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 does not have an effect.
- In order to avoid repeating expensive computations, dynamic Rooms wait until they have stopped moving for .1 seconds before processing the change in position. This involves updating the Room index and re-evaluating Portal connectivity in Unreal, and sending updated Room parameters to the Spatial Audio engine. Therefore, a continuously moving AkRoomComponent behaves as if it were stationary.
- When you use an
AkRoomComponent in a custom Blueprint class, we recommend that you use a simple collision component as the parent, such as BoxCollision , SphereCollision , or CapsuleCollision . Refer to Spatial Audio Blueprint Components for more information.
|
- See also
-
AkPortalComponent
You can add this component to any UPrimitiveComponent
to register a Spatial Audio Portal with the Wwise sound engine. This component allows sounds contained in an actor with AkRoomComponent attached (for example, AkSpatialAudioVolume) to leak into other actors with AkRoomComponent attached. Such actors that overlap with Portals are detected at initialization time. Both panned and 3D-spatialized sounds can be routed through Portals. Portals have a front and a back Room. They must have at least one Room connected, the front Room must be different than the back Room, and the front and back Rooms cannot have a parent-child relationship (see AkReverbZone for more information). The depth of a Portal determines the crossfade distance for both reverb sends and spread transition between the front and back Rooms. A deeper Portal (along its local X-axis) results in a longer crossfade distance when an AkComponent
transitions through the Portal.
If you are using built-in game parameters to drive RTPCs, any obstruction and occlusion values set on the Portal do not affect the RTPC values. This behavior is intentional and occurs because RTPCs only provide one value per game object, but a single game object can have multiple paths through different Portals, each with different obstruction and occlusion values.
You can view Rooms and Portals in the Viewport to adjust their positions, and to visualize Portal-Room connections. You can enable or disable visualization from the Wwise Integration Settings under Viewports - Visualize Rooms and Portals. You can also toggle this setting directly from the Unreal Level Editor Viewport menu.
Visualize Rooms and Portals in the Level Editor Viewport Menu
Properties:
- Is Dynamic: Enables runtime changes to the Room connections for this Portal based on the Portal's movement. When the value for this property is set, bWantsOnUpdateTransform is also set to its value. For worlds that contain many Rooms, enabling this property can be computationally expensive. When this option is disabled, the Portal's Room connections might still change if dynamic Rooms are moved (that is, Rooms with Is Dynamic enabled).
- Initial State: Initially enables or disables the Portal. When the Portal is enabled, emitters positioned in the AkRoomComponent in front of and behind the Portal emit through it.
- Initial Occlusion: The initial occlusion value applied to the Portal. When the occlusion value is set to 0, the Portal is not occluded, and when it is set to 1, the Portal is completely occluded. The occlusion value is directly applied to the Portal with AK::SpatialAudio::SetPortalObstructionAndOcclusion. Portal occlusion can be used to modulate sound in response to a door opening or closing.
- Obstruction Refresh Interval: Set the time interval between obstruction checks (direct line of sight between game objects or other Portals and this Portal). Set to 0 to disable obstruction checks. Only use this feature if you plan to obstruct this Portal with geometry that is neither AkSurfaceReflectorSetComponent nor AkGeometryComponent. If not, we recommend that you disable obstruction checks and exclusively use Spatial Audio Geometric Diffraction and Transmission.
- Obstruction Collision Channel: The object collision channel that creates the collision of the obstruction ray-casts between game objects and this Portal 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 is logged and the component does not have an effect.
- When a Portal is selected, the names of its connected Rooms are displayed on each side.
- An AkPortalComponent uses the position and bounds of its parent (
UPrimitiveComponent ) when updating Wwise. Any translation, rotation, or scaling applied directly to an AkPortalComponent does not have an effect.
- If you add multiple AkPortalComponents to a custom Blueprint Class, the Unreal Editor might become unresponsive when you move 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:
- Open the custom Blueprint Class in the Blueprint Editor.
- Click Class Settings.
- In the Details Panel, under the Blueprint Options, disable Run Construction Script on Drag.
|
- See also
-
AkSpatialAudioVolume
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 must be added to a StaticMeshComponent. The AkGeometryComponent
converts its mesh to Spatial Audio Geometry. The static mesh and the simple collision mesh are the two meshes from which it can be converted. In the case of simple collision, sphere and capsule primitives are approximated to a bounding box mesh.
When debugging a game, you can see the spatial audio geometry in the Wwise Authoring Game Object 3D Viewer. With the AkGeometryComponent
, you can send more complex shapes, which can prevent the Game Object 3D Viewer from displaying the geometry. Ensure that the Monitor Queue Pool Size in the Platform Initialization Settings is set accordingly to compensate for the additional data the game sends.
When you choose either mesh type, the Acoustic Textures and transmission loss values are deduced from the Physical Materials of the mesh. Use the Geometry Surface Properties Table in the Integration Settings to associate Physical Materials with AkAcousticTextures and transmission loss values.
- For static meshes, the surface properties are deduced from the Physical Material of each Material the static mesh uses.
- For simple collisions, the surface properties are deduced from the Simple Collision Physical Material.
Note that in Unreal, when no Physical Material is chosen (set to None), the DefaultPhysicalMaterial is used instead. Associate Geometry Surface Properties to the DefaultPhysicalMaterial for meshes that do not have assigned Physical Materials.
Properties:
- Geometry
- Mesh Type: Determines whether the geometry is converted from the static mesh or the simple collision mesh.
- LOD (Level Of Detail): If you select Static Mesh in the Mesh Type list, you can use this parameter to choose the level of detail to use as spatial audio geometry.
- Welding Threshold: If you select Static Mesh in the Mesh Type list, you can use this parameter to choose the local distance in Unreal units between two vertices to weld together. Any two vertices closer together than this threshold are treated as the same unique vertex and assigned the same position. Increasing this threshold decreases the number of gaps between triangles, which results in a more continuous mesh and less sound leaking through, and eliminates triangles that are too small to be significant. Increasing this threshold also helps Spatial Audio's edge-finding algorithm find more valid diffraction edges.
- Enable Diffraction: Enables geometric diffraction for this Geometry.
- Enable Diffraction on Boundary Edges: Enables geometric diffraction on boundary edges for this Geometry.
- Bypass Portal Subtraction: Prevents Portal bounding boxes from being subtracted from this geometry.
- Solid: Applies transmission loss once for each time a transmission path enters and exits its volume, using the max transmission loss between each hit surface. A non-solid geometry instance is one where each surface is infinitely thin, applying transmission loss at each surface. This option has no effect if the Transmission Operation is set to Max.
- Surface Overrides
- AkAcousticTexture: Overrides the acoustic texture that is automatically chosen based on the physical material of the mesh. If you select Static Mesh in Mesh Type, you can override the acoustic texture of each material individually.
- Override Transmission Loss: Overrides the transmission loss value.
- Transmission Loss: Overrides the transmission value that is automatically chosen based on the physical material of the mesh. If you select Static Mesh in Mesh Type, you can override the transmission loss value of each material individually. 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.
- Advanced
- Associated Room: (Deprecated) Associate this AkGeometryComponent with a Room. This property is deprecated and will be removed in a future version. We recommend not using it by leaving it set to None. Associating an AkGeometryComponent with a particular Room limits the scope in which the geometry is accessible. Doing so reduces the search space for ray casting performed by reflection and diffraction calculations. When set to None, this geometry has a global scope. Note if one or more geometry sets are associated with a room, that room can no longer access geometry that is in the global scope.
| Note:
When you add an AkGeometryComponent in the Blueprint Editor in Unreal, the acoustic textures array is not automatically filled in when Mesh Type is set to Static Mesh because Component Details panels in the Blueprint Editor show details for template Component instances, which are not connected to other Components in the Blueprint. |
- See also
-
AkReverbZone
A Reverb Zone is useful in situations where two or more acoustic environments are not easily modeled as closed Rooms connected by Portals. Possible uses for Reverb Zones include: a covered area with no walls, a forested area within an outdoor space, or any situation where multiple reverb effects are desired within a common space. Reverb Zones have many advantages compared to standard Game-Defined Auxiliary Sends (that is compared to the AkLateReverbComponent or the AkReverbVolume). They are part of the wet path, and form reverb chains with other Rooms; they are spatialized according to their 3D extent; they are also subject to other acoustic phenomena simulated in Wwise Spatial Audio, such as diffraction and transmission.
The AkReverbZone Actor is the same as an AkSpatialAudioVolume Actor, but with different default values optimized for Reverb Zones.
- The AkRoomComponent has Enable Reverb Zone set to True and its Transmission Loss value set to 0.
- The AkSurfaceReflectorSetComponent component is disabled. This allows sound to pass through all of the volume's surfaces and for the transition region to be applied to all of them.
The Room's transmission loss value can be set to something other than 0. In this case, it is applied to all sounds emitted by the Room itself (for example, Room tones or ambience) and to the wet path (the chain of Room Auxiliary Busses) of sounds crossing the Room boundary.
Another kind of transmission loss is the geometric transmission loss that can be set on the Room's surfaces. The geometric transmission loss value is applied to the direct path of sounds crossing these surfaces, in other words the transmission path. When the AkSurfaceReflectorSetComponent component is disabled, the geometry is sent to Spatial Audio to define the shape of the room, but is not used for reflection and diffraction. Defining a room shape with geometry makes it possible to enable only certain surfaces, in which case, their transmission loss values are set to 1. It is possible to enable the AkSurfaceReflectorSetComponent to set surfaces with different acoustic textures and transmission loss values. Surfaces with a transmission loss value between 0 and 1, or, in other words, semi-transparent surfaces, do not let diffraction and reflection paths pass through. Only direct transmission paths pass through such surfaces. The final effective geometric transmission loss value is the maximum transmission loss value of all the different surfaces a sound path passes through.
- See also
-