top of page

Controlling Magic Charge SFX With Rich Curves In MetaSounds

  • Writer: Hikaru
    Hikaru
  • Oct 8
  • 4 min read
Full graph overview.

Overview

Since MetaSounds doesn't have an easy-to-use curve editor interface, our plugin extends the rich curve editor of Unreal and allows you to pass those curves into a MetaSounds graph. In this tutorial, I will show you how to use these curves to design a magic charging SFX with several states.

Fig. 1 : The MSS_MagicChant_Charge3States graph.
Fig. 1 : The MSS_MagicChant_Charge3States graph.

In this tutorial, I'll be using the graph called MSS_MagicChant_Charge3States. As the name implies, this graph consists of three states: charge initialization, half-charge, and fully charge. It's among the more advanced graphs in our plugin. Although it may appear complex at first, most of it involves mixing and trigger routing. So don't let it discourage you.


Graph Explanation

1) The Initial Charge Layer

Fig. 2: The initial charge layer.
Fig. 2: The initial charge layer.

This layer is activated at the beginning and lasts for a very brief period (0.2 seconds as specified in the Trigger Delay node). The Burble Sound Gen node is configured to function similarly to a Chirp Synth node, producing a single chirp sound with a descending frequency starting from 7000 Hz.

  • With both the Spawn Rate and Spawn Chance set to 1, this node generates only one sine signal per second.

  • The chirp rate and decay rate are managed by Init Charge Chirp Ratio and Init Charge Decay Scale, respectively. These are set to very low values to ensure the signal lasts longer than 0.2 seconds.

  • The frequency is directly controlled by the internal variable BurbleFreq (7000 Hz).

Although we could replace this entire setup with a Chirp Synth node, this method offers lower performance costs and improved quality. This is because the Burble Sound Gen node is optimized to generate hundreds of single frequency signals per second with a linear frequency change, whereas Chirp Synth nodes support various chirp patterns with modal objects.

The output from the Burble Sound Gen node is then combined with the output of an external force synth node. This approach allows us to easily produce more harmonic signals from the force synth node without needing to synthesize them individually.


2) The 3-State Charge Layer

Fig. 3: The 3-state charge layer.
Fig. 3: The 3-state charge layer.

This is the primary layer of this effect and also the most complex. It utilizes a total of four curves to manage the envelope of the noise entering the Impact External Force Synth node. Let's examine these curves more closely.


Fig. 4: The curve setup.
Fig. 4: The curve setup.

A Trigger Route (Audio, 4) node is used to determine which curve is multiplied with the white noise signal. Since only one curve will run at a time, a mixer node is not used to minimize performance costs. The sequence of each curve is as follows:

  1. When the graph starts playing, the Init curve will run.

  2. Upon completion of the Init curve, the Transition curve is triggered.

  3. Once the Transition curve finishes, the Mid curve is allowed to pass through the trigger route node. The Mid Curve begins based on the combined duration of the Init and Transition curves.

  4. After the Mid curve completes, it will re-trigger the Transition curve.

  5. Finally, when the Transition curve concludes, it triggers the End curve, allowing it to pass through the trigger route node.

Technically, the setup could be simplified by using a single curve that encompasses all states. However, this approach would not permit fine-tuning of the duration and shape of each state individually. Although this setup is somewhat complex, it offers greater flexibility and ease of customization, with negligible performance overhead.

When designing your own curve, ensure that the first key is at 0 second and the last key is at 1 second. This is important because Simple Force From Curve nodes will fit the timing of the entire curve to the input duration.

Fig. 5: On Stop trigger logic.
Fig. 5: On Stop trigger logic.

To enable the graph to stop at any state, we simply set the synthesizer's amplitude scale to 0 when the input On Stop is triggered.


Fig. 6: Pitch shifting logic when the Init curve is running.
Fig. 6: Pitch shifting logic when the Init curve is running.

A chirp effect is incorporated during the operation of the Init curve (Init Duration). This serves to amplify the charge effect when it combines with the initial charge layer. It's important to note that the AD curve transitions from 1 to 0, meaning the mapping node operates from B to A rather than from A to B.


Fig. 7: The Hold Bias input setup
Fig. 7: The Hold Bias input setup

To enable the graph to continue indefinitely even after the End curve completes, an input parameter called Hold Bias is utilized. By setting it to a positive number, the graph will only cease when On Stop is triggered.

Additionally, an Impact Modal Decay Clamp node is employed to ensure decay rates do not fall below 5. Extremely low decay rates could cause undesirable ringing effects.

3) The Mid To High Distortion Layer

Fig. 8: The mid to high distortion layer.
Fig. 8: The mid to high distortion layer.

As usual, the distortion layer is generated using a Modal Explosify node. The input is a combination of layers 1 and 2. Due to the chirp effect present in the input, we use a high-pass Biquad Filter node here to filter out unwanted low frequency distortion.

4) The Bass Distortion Layer

Fig. 9: The bass distortion layer.
Fig. 9: The bass distortion layer.

Similarly, a Modal Explosify node is utilized to generate the bass layer. For this purpose, the FMax is adjusted to 150 Hz instead of 300 Hz like in other graphs.


5) The Output

Fig. 10: The mixing at the output.
Fig. 10: The mixing at the output.

The two distortions are mixed and passed through a Diffuser node before being mixed to layers 1 and 2. As usual, because the loudness of layers 1 and 2 will affect the loudness of the distortion layers, we control their gain at the final mixer node rather than at the synthesizers.


Further Discussion

The rich curve is an effective tool for shaping your sound effects. In this tutorial, we utilize it to form the envelope of white noise. However, it can also be applied to manage the pitch shifting effect. For generating floating points, you should use the Sample Float From Curve node.

The effect produced through this tutorial is ideal for magic spells with long charging times and multiple VFX layers, varying according to the charging state. You can examine the throwing lightning spear charge example to understand how we implement it for an ultimate skill effect.


Subscribe to our newsletter

bottom of page