AudioReactiveFX

AudioReactiveFX provides a set of audio reactive Niagara particle effects plus a few other Niagara systems that do not react to audio and can be used as filler patterns in a scene. The asset pack was designed to be used for live music events or rendered music videos. The effects can be used out of the box but if you start playing around with it, you will discover sheer endless possibilities. A blueprint to enable audio capture in a map is also included for ease of use.

The asset pack contains 22 effects, which have between 20 and 90 parameters for styling, each. The majority of parameters (except things like materials) can be animated in the sequencer. The pack is built in a modular fashion with lots of additional Niagara modules, materials and material functions to be reused. Everything is procedural, thus, meshes can easily be replaced by other meshes without the need for UV mapping.

Example Videos

Videos on our YouTube channel use these assets. You can see some examples here. Visit the channel to see more.

Tutorial video

Some examples

Features

  • 22 highly customizable, ready to use, Niagara effects
  • Audio reactive tentacles (following splines or math functions)
  • Circular spectrum analyzers (ribbon and tubes)
  • Spectrum analyzer tunnel & grid
  • Mandala layout for Niagara systems (lays out particles in sacred geometry style)
  • Flame-like effect that reacts to audio
  • Face that looks like a psychedelic Rohrschach (the one from Watchmen 🙂 )
  • Audio reactions include: color gradient, glow, size change, wave motions, animation speed change, spawn rate change
  • Most effect have a fixed number of particles. No surprise bursts that drag down performance.
  • Most effects run on GPU
  • Blueprint for audio capture actor. Simply put in your map to enable audio capture. Capture can use everything that is heard or use specific audio mix. Thus it can be enabled for music only or voice chat only et.

Setup

Installation & Contents

After downloading the asset pack. Create a new project or add it to an existing project via the Epic Games Launcher. In both cases you will get a “AudioReactiveFX” folder in your project which contains the following folders

  • Blueprints: contains only one blueprint to capture audio from the ingame sound, microphone or the PCs line in
  • Maps: contains the demo map
  • Materials: contains procedural materials that are used by the effect assets
  • Meshes: contains the head mesh and a few very basic geometry meshes
  • Niagara: contains the actual effects which are Niagara systems. also contains emitters and Niagara module scripts
  • Sounds: contains a short demo sound loop payed on the demo map

How to use the effects

The demo map in the Maps folder shows how to use the assets. Each asset that reacts to audio has a AudioSpectrum parameter, which has a field to set the submix to be analysed. Submixes are like different audio channels and can provide different audio. For instance, one submix could provide the music, one the sound fx and one a voice chat. If no submix is set, then the project’s master submix is used by default by the effect. If the project is newly created or still has the default settings, this means the effects react to all ingame audio. A few of the effects do not react to audio but match the visual style and are meant to be used together with the audio reactive assets. See the description of the assets below for information on that. the demo map contains one instance of the “AudioAnalysisTool”, which plays a short loop. Thus, music should be hearable and the effects should react to it when the map is opened. The sound can be removed by selecting the “AudioAnalyisTool” actor in the map, then select it’s audio component and clear the sound property.

How to enable audio react from microphone & line-in

  1. Connect a microphone to your PC (USB or audio plug) or connect an audio source to your PCs line in.
  2. Open up your project in Unreal Editor or create a new project.
  3. Drag an AudioAnalysisTool from the Blueprints folder into the map. This will instantly enable enable audio capture. This means if you have a microphone connected, the effect should react to your voice. If you have an external audio source on the line in, the effect should react to it. Note that both are possible simultaneously.
  4. place the audio reactive effects you want in your map. they should now all react to the captured audio.

How to enable audio react from your own audio file

  1. Open up your project in Unreal Editor or create a new project.
  2. Add your audio to the project. To do this, drag a supported audio file (WAV, Ogg-Vorbis, AIFF or FLAC) from your file browser into the content browser. You should now have a SoundWave asset in your content browser.
  3. If you want to make the sound looping, right click the SoundWave asset and select “Edit…”. This opens up the sounds settings like in the following image. Check the “Looping” checkbox and save the SoundWave asset.
  1. Now drag the AudioAnalysisTool blueprint from the content browser into your map. This will create an AudioAnalysisTool actor in the map.
  2. Select the newly created AudioAnalysisTool actor in the map like in this picture, showing the demo map. You can select it in the viewport or from the outliner window.
  1. Now you will see the AudioAnalysisTool’s details in the details panel of the editor like shown in the following image.
  2. Select the “Audio” component in the details panel like shown in the image. Note the “is UISound” checkbox. If this is enabled, it is always played like a global background sound. This is enabled by default. When disabled the playback has to be started manually. This can be triggered from blueprint, c++ code or other editor tools like the sequencer.
  1. To set your own audio you can either drag the previously created SoundWave asset from the content browser to the “Sound” property or you can open the dropdown and select one of the supported assets there. The next two images show both ways.
  1. Once you have set your own audio it will start to play (when the “Is UISound” checkbox is still checked). When the sound is set to be looping, it will play in endless-loop.

How to enable audio react from in-game sounds

If you want the effects to react to ingame sounds like sound effects and ingame music, you need to set the correct submixes. The analysed submix can be set from the details panel of the effect. Therefor select the effect in the map (from viewport or outliner) and go to the “Override Parameters” section. Then open up the “AudioSpectrum” property to show the “Submix” parameter.

  • If you play all music and sounds without a submix set (empty property) or with the project’s default submix, then you don’t need to change the submixes on the audio reactive effects. You can leave the submix parameter inside the AudioSpectrum property of the effect empty and it will automatically listen on the project’s default submix.
  • If you divide your ingame audio into different submixes like music, sound effects, voice chat etc. you will need to set the correct submix in the submix parameter inside the AudioSpectrum property of the effect. For instance if you have a MusicSubmix for background music, you can set this MusicSubmix and enable the effect to react to the background music only.

If the effects do not react to audio

  1. ensure that there is audio in game. you can use the AudioAnalysisTool to playback sounds or to capture audio (see the previous sections)
  2. check the submixes of the effects. select the effects and expand the AudioSpectrum property. There is a submix parameter. If this is empty, the effect will listen to the master submix that is set in the audio section of the project settings.
  3. if multiple submixes are used in the game, be sure to select the correct submix for the effects and also be sure that the actual audio sources like music and sound effects send to the correct submix

Common effect parameters

There are some common effect parameters, that are shared by most of the effects. These are

  • AudioSpectrum: defines the submix to analyse, spectrum resolution, min and max frequency
  • AudioThreshold: the audio amplitude needs to exceed this threshold to have a visual effect. set this to 0.1 or 0.2 to cancel low volume noise if needed
  • GradientIndex: defines which gradient to use. See the “CurveAtlas_Color_01” in the “Materials/ColorCurves” folder to get the order of gradients. When new gradients are added, change the “NumberOfCurveAtlasCurves” in the “MPC_GlobalMaterialParameters” asset in the “Materials/MaterialParameterCollections” to be the same number as the number of gradients in the atlas. If this is not done, some of the effects might take the wrong gradients.
  • GradientMinimum & GradientMaximum: when these are present, they can be used to stretch the used gradient to better fit the audio.
  • SpectrumRangeStart & SpectrumRangeEnd: use to set the range of the spectrum analyzer, where 0 corresponds to the MinimumFrequency and 1 to the MaximumFrequency

Note that parameters that end on “_RESET” will need to reset or rebuild the actor ingame if changed at runtime. Otherwise the parameter change will not take effect

Most effects are based on one of the contained Niagara emitters in the Emitters folder. These can be used to create similar effects.

Contained Assets

The AudioAnalysisTool is a simple blueprint to capture audio and to playback a sound. It has a Audio component where a sound can be set, which is then played back by default. The AudioCapture component is used to capture ingame audio. By default this has no submix set, which means it captures all audio. This includes ingame sounds & music, input of all recognized microphones and input that comes from the PC line in port. The asset does not have the pink sphere attached by default. This is only added on the demo map to make it easier to find the actor.

Spectrum Electric & Spectrum Tubes are radial spectrum analyzers that uses ribbons or 3D tubes to visualize the spectrum. They provide following style options

  • Set The number of rings, distance between rings and number of points per ring
  • basic width and how much the audio changes the width
  • radius and how much the audio contributed to the radius
  • gradient and how much audio affects gradient
  • number of spectrum repetitions. each 2nd repetition is mirrored to avoid visible gaps. Thus, an even number of repetitions is recommended
  • glow from audio
  • rotation
  • jitter to give it an electric style

Layered Noise Meshes spawns meshes that use a procedural noise material. The meshes grow from a minimum to a maximum value and the material is animated by the effect. Style options:

  • Select shape: 5 basic meshes can be selected but any mesh can be added by duplication one of the renderers in the system. The procedural material will work on any mesh.
  • Properties of the material can be changed via the effect parameters
  • spawn rate and spawn rate from audio (BassReact). be sure to set the SpawnRateMax parameter to a reasonable value to avoid performance issues when audio gets very loud
  • glow from audio (BassGlow)

Spectrum Tunnel & Spectrum Vortex spawn particles in a ring shape where properties of the particles are set according to audio spectrum when they are spawned. Style options

  • Shape: basic shapes are provided but new shapes can easily be added. a simple procedural material is used that works with any mesh
  • Elements per ring
  • Particle lifetime and speed: use to shape length of the tunnels
  • GradientFromAudio: also option to change the hue and saturation
  • GlowAudio
  • Size of particles and influence of audio on the size
  • number of spectrum repetitions. each 2nd spectrum is flipped to avoid visible gaps. even number of repetitions is recommended
  • WaveAmplitude & WaveSpeed: gives the tunnel a circular motion

Spectrum Flow spawns particles at a line and moves them into a set direction. Particle values are set according to audio spectrum at particle spawn. Style options:

  • Gradient from audio, including random value and parameters to stretch, change hue and invert
  • NumPoints: number of points per line
  • ParticleAgeMax, Width & Speed to change the length of the effect
  • ParticleType: basic shapes. any mesh can be added since the procedural material works with every mesh
  • SpectrumRepeat: repetitions of the spectrum. each 2nd spectrum is flipped to avoid visible gaps. even number of repetitions is recommended

Function Plane: is a 3D grid with uneven amount of particles at each end, which makes it asymmetric. Particles are animated with sine wave functions. Has a lot of parameters to control and can produce quite weird shapes. Style options:

  • Shape: basic shapes are provided but any mesh can be added since the procedural material works with every mesh
  • BoundingBox: the overall size
  • LayersXYBottom & LayersXYTop: how many particles are in the bottom and top grids. the layers in between interpolate between these values
  • Layers: the number of vertical layers
  • GradientSpeed: speed of the gradient animation
  • GradientAudioPunch: pushes the gradient animation when audio amplitude is high
  • GlowAudioSpectrum: glows from spectrum amplitude
  • SizeMinimum, SizeMaximum and SizePeriod: defines range and speed of the particle size animation
  • OffsetDirection, OffsetMirror and OffsetSpheric: define how size and gradient animations move
  • WaveAmplitude, WavePeriod and WaveSpeed: define the wave movement animation
  • additional parameters to style the material

Expanding Torus animates a fixed number of torus meshes with a procedural “truchet” (thats the name of the pattern) material. Mesh can be replaced as the material works on any mesh. Style options:

  • SizeMinimun, SizeMaximum: define the size of the meshes
  • ExpandPower: changes the rate at which mesh growth happens
  • ZoomIn & ZoomPower: move animation
  • Rotation
  • various parameters to animate the gradient colors including hue, glow, invert, repetition and influence of audio to gradient
  • GradientMode: changes how audio spectrum affects the gradient and glow
  • Height & HeightAudioReact: lets the pattern grow out of the mesh via displacement
  • various parameters to style the pattern and other material parameters
  • NumberOfElements: fixed number of torus meshes

The Head is not audio reactive. It has multiple meshes layered like an onion and has a procedural material with a noise function that reveals the inner meshes during its animation. Style options:

  • SpawnCount: how many nested meshes
  • SizeMin & Size: the size distribution of the meshes
  • UpDownAmplitude, UpDownPeriod, LeftRightAmplitude, LeftRightPeriod, HeadFollowStrength: moves the meshes as if the head would look around
  • Parameters to control the noise style (voronoi)
  • Dissolve & DissolveBorder: the material has a dissolve function. controls how much of the inner meshes will be visible.
  • Parameters to add a Hexagonal overlay pattern (not visible in the image)

Mandala uses a special mandala layout to position the particles. Provides basic meshes but other meshes can be added. The used procedural material works with every mesh. Style options

  • ElementsPerRing: in each ring of the mandala
  • ElementsAddedPerring: how many are added with each ring
  • Rings: how many
  • RotationPerRing: 0 is no, 1 is rotate one element, 0.5 means half way between elements in previous ring
  • Shape select & shape random
  • SizeMinimun & SizeMaximum: ffrom inside to outside
  • Parameters to control the gradient: index, hue, saturation, fresnel, audio influence, animation speed, audio to animation speed, randomness, repetition, glow
  • Parameters to control the wave animation and how audio influences the wave animation
  • Parameters to set material properties

Mesh Tentacle Tunnel & Tentacle Tunnel are based on the same emitter which creates a very complex series of particles. In the first case the particles have meshes and in the second case the particles create ribbon tubes. The meshes can easily be replaced by other meshes, sphere and cube are provided by default. This is the most complex system in the pack and has 80+ parameters to define the layout and movement of the tentacles. use the search function in the details panel to find parameters 😉 style options:

  • TentacleCount, TentacleLayers, TentacleMulti, TentaclePoints: the total amount of tentacles is TentacleCount * TentacleLayers * TentacleMulti. Each layer has TentacleCount * TentacleLayers tentacles. TentacleMulti creates multiple tentacles at the same position which can form helix formations or wing like formations.
  • MultiOffset & MultiSpread: displaces the tentacles in a multi-set
  • MultiTwist & MultiTwistRate: creates helix formations
  • Parameters to style the material gradient and gradient animation as well as influence of audio on the gradient and glow
  • Growth & Growth animation: growth lets the tentacles grow from 0 to 1. the animation automatically ping-pong loops from 0 to 1.
  • OffsetPerAngle: offset in the forward direction per tentacle in a layer
  • OffsetPerLayer: offset per each layer
  • OffsetPerRibbonIndex: the offset for each particle. results in the length of the tentacles in forward direction
  • RadiusBaseSine-Parameters: define the sine movement function of the tentacles
  • RadiusInner, RadiusOuter: define inner and outer radius
  • RadiusLinearLerp: 0 means tentacle is aligned in a sine wave from inner to outer, 1 means it is aligned linearly from inner to outer
  • Rotation-parameters: gives tentacles a screw layout and lets them rotate with time or per layer
  • Width and Size- parameters: define the size of meshes or the width for the ribbons as well as the influence of audio on these values
  • Spectrum-parameters: define the amounts of the audio spectrum on various other parameters
  • Type: change meshes or ribbon style. new styles can easily be added by duplicating the renderers in the systems
  • WidthCurve: defines a basic width curve over the length of the tentacles. helps to fade out at the edges but also crazy curves can be used.

Spline Tentacles is a simples tentacle effect with less parameters. The tentacle follows a spline. To use this create any asset, give it a spline component and then attach this effect to the spline as NiagaraComponent. the demo map shows how this is done. Style options:

  • Mirror tentacle along x axis. creates a second, mirrored tentacle. don’t need to copy the spline
  • Parameters to style the material gradient and gradient animation as well as influence of audio on the gradient and glow
  • Growth & Growth animation: growth lets the tentacles grow from 0 to 1. the animation automatically ping-pong loops from 0 to 1.
  • Width-parameters: define the width for the ribbons
  • Spectrum-parameters: define the amounts of the audio spectrum on various other parameters
  • WidthCurve: defines a basic width curve over the length of the tentacles. helps to fade out at the edges but also crazy curves can be used.
  • SpiralAmount & SpiralPeriod: create a sine movement along the tentacle. you can have multiple systems on the same spline with different values for this to create a more complex structure.

Pattens & Lines are not audio reactive. They are meant as fillers to decorate larger surfaces. The grids have a dissolve effect where a hole is punched in the center and the particles are shot into the distance. Style options

  • CountX & CountY: defines the number of elements in the grid
  • SizeX & SizeY, Depth: define the size of each element
  • DissolveDepth & DissolveRandom: depth and randomness of the dissolve effect
  • HardLimit: the radius of the hole for the dissolve effect will not exceed this value
  • OpenWidth: the width of the hole at max dissolve state
  • OpenFactor: 0 is closed and 1 is fully dissolved
  • OpenSine & OpenSineSpeed: ping-pong loops the dissolve animation

Example Images

Ready-to-use Assets