Water Flow

Water can be used in many ways in games, from environments to gameplay, in simple puzzles or elemental magic attacks. In this post, we will implement a dynamic water flow in Atom Craft, that can later be adapted to many of these scenarios.

Asset Creation

For the source materials, we need to record variations of water movements, or streams flowing at different speeds. The goal is to be able to create smooth transitions between tiny streams and turbulent flows of water.

For a slow stream, it may be easier to manually create the water flow with your hand or a stick in a puddle or a pond, where you can precisely control the movement of the water. Recording a river or even the ocean may be the most convenient for larger water movements.

Using procedural audio to produce the sounds may also help ensure consistency across the assets. For instance, GameSynth offers dedicated sound generators for liquid sounds.

  • Once your sources are gathered, create five sounds going from tiny to large streams.
  • If your sounds are too similar, adding some layers with splashes or bubbles is a great way to bring more fluctuations.
  • Make sure the five sounds are looping and export them.

Import the files into Atom Craft and set the Override loop information Flag to True for each Material.

Implementation

We will start by creating the Cue:

  • Select your Cue Sheet and create a Polyphonic Cue.
  • Drag and drop your Materials onto the Cue to automatically create the associated Tracks and Waveform Regions.
  • Make sure the Tracks are sorted by density from top to bottom.
  • Set the Voice Behavior property to Virtual Voice.
  • Set the Cue Limit Flag to True and the Cue Limits to 1.

01 Water Cue

Unless you want everything to play at the same time, we will need an AISAC to control the flow of the water.

  • Start by creating an AISAC Control named “Water Power”.
  • Then, for each Track, create an AISAC with a Volume Graph that uses the Water Power control.
  • Edit the Volume graphs to create crossfades between successive Tracks.
  • We recently published a post that leverages the Robot API to automatically create this kind of AISAC configuration. If you go that route though, make sure to still edit the graphs a bit to create a more natural flow.

02 AISAC

  • As a finishing touch, add an AISAC at the Cue level.
  • Create a graph for Bandpass – Cutoff High.
  • Let the curve start at 0.5 and rapidly increase to 1.
  • This will allow you to control the water flow more precisely for slower sounds.

03 Bandpass AISAC

Now you should be able to create a dynamic water movement that can be easily reused in many different scenarios.

To see how to implement this type of sound in Atom Craft, download the demo project below.

Leave a Reply

Your email address will not be published. Required fields are marked *