River Implementation
Large areas that emit sound, such as rivers or traffic roads, can be challenging to implement. Based on the proximity of the player, various levels of details are needed, from general ambiences to specific sound events, and the areas can have very irregular shapes, making it tricky to decide where to place emitters. However, thanks to Atom Craft and its Unreal Engine Plugin, this can be done easily!
Atom Craft
First, let’s create the audio assets for the river:
- Prepare three stereo loops that will correspond to different distances (close, medium, far). This will allow us to have a more natural roll-off when moving away from the river.
- Import the assets in AtomCraft’s Materials folder. Set the Override loop information Flag to True for the 3 Materials.
Now, add the Cue for the River:
- Create a Polyphonic Cue.
- Drag and drop the three River Materials onto the Cue, creating three new tracks, one for each distance.
- Select the Cue and change its Pan Type to 3D Positioning.
- Set the 3D Positioning Inside and Outside Angle properties to 0.65 and 1, respectively.
- Min Attenuation Distance should be set to 3.00 and Max Attenuation Distance to 50.00.
- Finally, select the three Waveform Regions in the Cue and set the Fixed Pan property to True.
An AISAC will be used to crossfade between the three sounds as the distance of the listener from the river changes:
- Create an AISAC named 3DDistance, and assign to control the Distance of the Cue (in the 3D Positioning properties).
- For each track, create a Volume graph controlled by the 3DDistance AISAC, effectively designing a crossfade from the close to far distances.
The main attenuation will be done at the Cue level:
- Create new graphs for the Volume and the Bandpass – Cutoff High parameters, both with a fade-out curve.
- Finally create a Pan – Spread graph going from 0.9 to 0.2. This will implement a more natural panning as the listener come closer to the river.
Now the Atom CueSheet Binaries can be built. Once it is done, switch to Unreal, and drag and drop the .acf and .acb files to generate the corresponding Unreal Assets, including the River Cue.
Unreal Engine
We designed a simple map that includes a flowing river. The first step is to create a volume that will delimit where the sound of the river comes from. Fortunately, the Criware Unreal Plugins provides a dedicated class for this purpose:
- In the Place Actors browser, search for Atom Area Sound Volume.
- Drag and drop this class directly onto the view port. It will create a special Brush object that can be moved and extended to match the length and the position of the river.
The Area Sound Volume calculates the shortest distance between the boundary of the Brush object – representing the river shape – and the listener’s coordinates. If the listener moves while outside the Brush object, the sound source will follow it along the shape of the river. The whole length of the river will be considered for the 3D positioning, as you can see in the introduction video.
All that remains to do to achieve this is to assign our Cue:
- In the Content Browser, double click on the Cue to open its settings window.
- Enable the Use Area Sound Volume property.
- Then, in the World Outliner, select the Atom Area Sound Volume to show its details panel, and in the Sound Atom Cue section, add a new Sound, and assign the River Cue.
When playing the level, you will hear the sound following you as you move along the river!