UE4

UE4 Sound Volume Setting C++

TigerFish 2021. 10. 7. 13:04

글을 쓰는 목적

 

UE4에서 사운드 시스템을 구현하려고 하는데 사운드를 작업한 적이 별로 없고,  C++로된 참고 자료가 별로 많지 않아서 이렇게 기록을 남깁니다.


작업 환경

 

UE4.26


UE4 사운드 구조

 

크게 Sound Class, Sound Mix, Sound Cue 로 구성 되는데 Sound Class는 사운드 카테고리, Sound Mix는 Sound Class를 관리하는 녀석으로 Pitch(재생 속도), Volume(소리 크기)를 관리한다. Sound Cue는 최종적으로 사운드를 내는데 사용하며 Sound Cue에 Sound Class를 설정하여 각각 조절 할 수 있다. 예를 들어 마스터 클래스 밑에 배경 음악 클래스와 이펙트 클래스가 있다고 하자, 플레이하고자 하는 사운드 2개가 있는데 하나는 배경음악 클래스에 속한 음악, 나머지 하나는  이펙트 사운드 클래스에 속한 음악이 재생 중인데 배경음악의 Sound Class의 설정을 바꿔 사운드 믹스에 반영하면 배경음악의 소리 불륨이 바뀔 수 있다. 언리얼 도큐먼트에 잘 정리 되어있다. 

 

https://docs.unrealengine.com/4.27/ko/WorkingWithAudio/Overview/

 

오디오 시스템 개요

사운드 큐 노드 기반 오디오 애셋 사용법을 포함해서, 게임내 사운드 재생에 사용되는 오디오 시스템에 대한 개요서입니다.

docs.unrealengine.com

 

사운드 볼륨 줄이기 

 

UGameplayStatics에서 제공하는 SetSoundMixClassOverride와 PushSoundMixModifier를 통해 볼륨을 조절 할 수 있다. 

void UTextSoundPlayer:SetVolume(UWorld* inWorld, USoundMix* inMix, USoundClass* inSoundClass, float inValue)
{
  	UGameplayStatics::SetSoundMixClassOverride(inWorld, inMix, inSoundClass, inValue);
	UGameplayStatics::PushSoundMixModifier(inWorld, inMix);
}

https://www.parallelcube.com/2017/12/18/add-volume-control/

 

How to add a volume control – Parallelcube

In this short tutorial we are going to add a volume dialog to set the volume of the music and the SFX effects independently In the most basic volume control each sound type has a slide control to adjust their volume, moving the bar to one side the volume w

www.parallelcube.com

 

사운드가 멈추는 현상

 

위의 코드를 적용 후 사운드를 큐를 플레이하면 멈추는 경우가 있는데 그 이유는 사운드 큐의 VirtuallizationMode가 PlayWhenSilent가 아니라서 그렇다 사운드 큐의 VirtualizatonMode를 변경해주면 음소거에서도 정상 플레이 된다. 

USoundCue* sound = Cast<USoundCue>(findSoundData.SoundCue.TryLoad());
		if (sound)
		{
			sound->VirtualizationMode = EVirtualizationMode::PlayWhenSilent;
			UGameplayStatics::PlaySound2D(inWorld, sound);
		}

https://forums.unrealengine.com/t/audio-components-dont-start-playing-if-the-volume-is-0/109887/5

 

Audio components dont start playing if the volume is 0

I am unable to find this option please help

forums.unrealengine.com

 

'UE4' 카테고리의 다른 글

UE4 Android, iOS Battery, Wifi 정보 가져오기  (0) 2021.10.27
UE4 Localization  (0) 2021.10.13
UE4에서 에셋을 이동시 Freezing 이 나거나 깨지는 현상 해결 방법  (0) 2021.09.23
UE4 Decal  (0) 2021.09.13
UE4 Define 지시문  (0) 2021.09.09