Download

Controlling master volume in game

I’d like to add a master volume slider to my in game menu.

I’ve been reading up on how this can be done, and there are a few ways I see (all that see overly convoluted).

One suggesting using SetAudioGroupVolume(name GroupName, float Volume) and assigning audio groups to all my sound cue. Another using TransientMasterVolume in AudioDevice (which I can’t seem to get working).

What I’m really after is a master volume (which would also control the volume of the Unreal intro video, which is insanely loud).

Does anyone have any suggestions? Thanks in advance.

I don’t think you can control the volume of the Unreal intro video, as that’s just Bink playback

In my game I do a mix of both proposed methods:


class'Engine'.static.GetAudioDevice().TransientMasterVolume = someValue;

that’s what I use to tune the master volume, so to control the volume of everything in the game together


SetAudioGroupVolume('Character', someValue);

and that’s what I use to control audio groups separately (for which I have several, assigned properly to each sound cue

Thanks for the insight @Chosker. So i’m currently using your first option in the PostBeginPlay() of my player controller. It seems the volume of the Unreal intro video is out of our hands. I would love to reduce it’s volume. I guess i could re-sample the video file, but that may break some licencing terms.

I think you’re allowed to use anything you like for the Unreal intro video, so long as you get it approved by Epic.

I use the SetAudioGroupVolume technique and I assign all of my sound cues to audio groups. I also have a config ini that remembers what the different volume settings were. Is that supposed to be handled automatically somewhere else? If so, oh well, it was good practice learning to use config files.