ADXTutorials

Creating a Projectile Whizz-By Effect in Atom Craft

Introduction

When designing for an FPS game, it is important to sonify threats to the player. If a player hears gunfire, this will alert them to potential danger but might not imply a current threat (especially if the gunfire is off in the distance). However, if they are close enough to the projectile to hear it whizzing through the air, they may need to react by getting to some cover.

In this blog, we will look at creating a projectile whizz-by effect in Atom Craft. And by using some of ADX2’s 3D Positioning features, we can design a system that is additionally modular and reactive.

This project was created using CRI Atom Craft Ver.3.44.13 and UE4.25

Source

First, we will need a short loop. Noisy sounds with some high-frequency content work well for this. We can then:

  • On DspBusSetting_0, create a new Bus and name it “Distortion”
    • Add some DSP Effects such as Distortion and Chorus
    • Send Bus to MasterOut
    • Set Volume fairly low (e.g., 0.15)
  • On BusMap For AISAC and Automation, apply Distortion Bus to DspBusName2

2020-11_Projectile_1

  • Rename AisacControl_00 to “Aisac_ProjectileDistance”
  • Create a Polyphonic Cue named “ProjectileWhizz”
    • Drag in looping projectile Material
    • Set Pan Type to 3D Positioning
    • In the 3D Positioning tab, set:
      • Distance – Aisac_ProjectileDistance
      • Doppler Factor – 4.00
      • Attenuation Distance Min – 20.00
      • Attenuation Distance Max ­– 40.00

2020-11_Projectile_2

    • Create new AISAC with two graphs set to:
      • Name – “Aisac_ProjectileWhizz”
      • Control – “Aisac_ProjectileDistance”
      • Graph Type – “Volume” and “BusSend2 (Distortion)”
      • Create Fast Change curves on each

2020-11_Projectile_3

With everything set up, we can experiment with different settings on the DSP Bus Effects. We can also swap out the Material for a different loop or even layer different loops together. Lower attenuation distance values will make the projectiles audible only when they are very close to the player, but larger values could make the scene sound too busy.

Testing

Let’s open up the Session View to test our audio system. We can drag our BulletWhizz onto Player1, open the Positioning 3D tab, enable Attached 3D Object on Player, and offset the Source X-axis left or right of 0. Then, by dragging the Z-axis value up and down, we can simulate a projectile’s motion through the air. Since an AISAC controls the Distance parameter, the DSP effect is automatically controlled by the distance between the player and the projectile. This means it sounds especially daunting as it nears the player.