What I want:
In Unreal 5.3, control the volume/levels of my Master (everything), SFX and Music separately.
I dug the internet a lot trying to find a bull’s eye solution for this.
There are great docs/videos about the Audio Mixer, Sound Class, Submixes, etc but I couldn’t find something that ties them all into what I want.
Ps: I’m a Unreal newbie
With my research, I found a video that explained part of the solution so I could learn more about everything and create my solution.
So, here is the step-by-step, I won’t explain how to create a slider etc, I will just show how to organize and have the entries like “master volume”, “sfx volume” etc
Step by step:
First, the Sound Class:
- This class we use to cascade (hierarchy) our audio controls. So let’s start creating the father class:
- In the Content folder, create a
Sound Class
namedMasterSoundClass
- Open in → Windows → Graphs
- Drag 2 children’s pins and names them
SFXSoundClass
andMusicSoundClass
- Unreal will create 2 files in the same folder
- Drag 2 children’s pins and names them
- Now, select your audio assets and assign the soundclass to them
- E.g: To “batch” set, select all your sfx audio assets, right-click, edit, and set the Sound Class to
SFXSoundClass
- Now, all these audio assets volumes will be “directed” by the
SFXSoundClass
- And the Master volume controls them all because it’s the parent
- Now, all these audio assets volumes will be “directed” by the
- Do the same for the music audios
Now, for testing:
- Drag some of your SFXs and Music audios to a map
- Open the
SFXSoundClass
and set the volume to 0.1 - Play the map and check that all SFXs audios volumes are lower
- Set the
MasterSoundClass
volume to 0.5, everything will be lowered down
So, a Sound Class, when assigned to an audio, the audio will follow the class values in a hierarchized way.
Now, how to change those values “dynamically” using Blueprints?!?
The Sound Class Mix
:
Create 3 Sound Class Mix
:
MasterSoundMix
SFXSoundMix
MusicSoundMix
Open each one and add your sound classes accordingly.
- MasterSoundMix → MasterSoundClass
- SFXSoundMix → SFXSoundClass
- MusicSoundMix → MusicSoundClass
You can add more classes to “mix them” together, but let’s keep it simple.
Now the Blueprint, for this, I did in my GameMode BP graph
The Set Sound Mix Class Override
and Push Sound Mix
are the saviors!!
Set each one for Master, SFX, and Music like the picture, changing the values to the correct sounds and mix classes.
The “Volume” pin in the Set Sound Mix Class Override
will change the volume at Runtime, you can use a slider or wherever to change those values.
Problem solved!
The video that helped me a lot! Praise this guy!
How to Make a Simple Volume Slider in Unreal Engine 5 (youtube.com)
Ps: Unreal already has a built-in Master, SFX, Music sound classes but I couldn’t find the hierarchy on it, so I decided to create my classes with different names to not confuse myself.