PART 03 · 강의 2/3

Sound Mix와 EQ

Sound Mix를 활용한 동적 믹싱, 더킹(Ducking), EQ 설정

01

Sound Mix 기초

런타임에 Sound Class 파라미터를 동적으로 변경하는 시스템

Sound Mix(USoundMix)는 런타임에 하나 이상의 Sound Class의 볼륨, 피치, EQ를 동적으로 조절하는 에셋입니다. Sound Mix는 Push/Pop 방식으로 스택처럼 동작하며, 여러 Mix가 동시에 활성화될 수 있습니다.

Sound Mix 주요 프로퍼티

프로퍼티타입설명
Sound Class EffectsArray각 Sound Class에 적용할 Volume, Pitch 오버라이드
EQ SettingsFAudioEQEffect전역 EQ 설정 (Low/Mid/High 주파수별 게인)
Fade In TimefloatMix 활성화 시 페이드 인 시간
Fade Out TimefloatMix 비활성화 시 페이드 아웃 시간
Durationfloat자동 비활성화까지의 시간 (-1 = 무한)
bApplyEQboolEQ 설정 적용 여부

Push/Pop 동작 원리

Push Mix A
Push Mix B
Pop Mix B
Pop Mix A
Blueprint/C++ - Sound Mix 활성화
// Sound Mix Push (활성화) UGameplayStatics::PushSoundMixModifier( WorldContext, CombatSoundMix); // Sound Mix Pop (비활성화) UGameplayStatics::PopSoundMixModifier( WorldContext, CombatSoundMix); // Sound Mix Clear (모든 인스턴스 제거) UGameplayStatics::ClearSoundMixModifiers(WorldContext);
02

더킹 (Ducking) 구현

특정 사운드 재생 시 다른 사운드의 볼륨을 자동으로 낮추기

더킹(Ducking)은 중요한 사운드(대사 등) 재생 시 배경음악이나 효과음의 볼륨을 자동으로 낮추는 기법입니다. UE5에서는 Sound Mix의 Push/Pop으로 구현합니다.

대사 더킹 Sound Mix 설정

Sound ClassVolume AdjustPitch Adjust효과
Music 0.3 1.0 음악을 30%로 줄임
Ambient 0.5 1.0 환경음을 50%로 줄임
SFX 0.7 1.0 효과음을 70%로 줄임
Dialogue 1.0 1.0 대사는 유지
C++ - 대사 더킹 시스템
// 대사 시작 시 더킹 Mix Push void ADialogueManager::StartDialogue(USoundBase* DialogueSound) { // 더킹 Mix 활성화 (Fade In: 0.3초) UGameplayStatics::PushSoundMixModifier( this, DialogueDuckingMix); // 대사 재생 DialogueAudioComp->SetSound(DialogueSound); DialogueAudioComp->Play(); // 재생 완료 시 더킹 해제 DialogueAudioComp->OnAudioFinished.AddDynamic( this, &ADialogueManager::OnDialogueFinished); } void ADialogueManager::OnDialogueFinished() { // 더킹 Mix 비활성화 (Fade Out: 0.5초) UGameplayStatics::PopSoundMixModifier( this, DialogueDuckingMix); }
자동 더킹

Sound Cue나 MetaSound의 Sound Class에서 bPassiveSoundMixModifier 옵션을 활성화하면, 해당 Sound Class의 사운드가 재생될 때 지정된 Sound Mix가 자동으로 Push됩니다. 코드 없이도 더킹을 구현할 수 있습니다.

03

EQ 설정

주파수 대역별 게인 조절로 오디오 밸런스 잡기

Sound Mix의 EQ Settings를 통해 전역적인 주파수 밸런스를 조절할 수 있습니다. 4밴드 파라메트릭 EQ를 제공하며, 상황(수중, 실내, 폭발 후 등)에 따라 다른 EQ 프리셋을 적용할 수 있습니다.

EQ 밴드 구성

밴드기본 주파수역할게임 활용 예시
Low 100 Hz 저음 (베이스, 폭발 여파) 수중: Low +6dB, 실내: Low -3dB
Mid-Low 500 Hz 중저음 (따뜻함, 바디감) 전화기 효과: Mid-Low -6dB
Mid-High 2000 Hz 중고음 (존재감, 명료도) 전화기 효과: 유지
High 6000 Hz 고음 (공기감, 선명도) 수중: High -12dB, 벽 뒤: High -6dB

상황별 EQ 프리셋 예시

수중 (Underwater)

Low: +4dB | Mid-Low: +2dB | Mid-High: -6dB | High: -12dB

고역이 크게 감쇠되고 저역이 부스트되어 물속 느낌을 줌

폭발 후 이명 (Post-Explosion)

Low: -8dB | Mid-Low: -4dB | Mid-High: -2dB | High: +6dB

고역 강조 + 저역 감쇠로 귀울림 효과

무전기/전화기 (Radio)

Low: -10dB | Mid-Low: -4dB | Mid-High: +4dB | High: -8dB

좁은 대역폭으로 무전기 느낌

04

상황 기반 Sound Mix 전환

게임 상태에 따라 Sound Mix를 동적으로 전환하는 패턴

C++ - 게임 상태별 Sound Mix 관리
// 게임 상태에 따라 Sound Mix 전환하는 Audio Manager void UAudioManager::OnGameStateChanged( EGameState NewState) { // 이전 상태의 Mix 제거 if (CurrentActiveMix) { UGameplayStatics::PopSoundMixModifier( this, CurrentActiveMix); } // 새 상태에 맞는 Mix 활성화 switch (NewState) { case EGameState::Exploration: CurrentActiveMix = ExplorationMix; break; case EGameState::Combat: CurrentActiveMix = CombatMix; break; case EGameState::Stealth: CurrentActiveMix = StealthMix; break; case EGameState::Cutscene: CurrentActiveMix = CutsceneMix; break; } if (CurrentActiveMix) { UGameplayStatics::PushSoundMixModifier( this, CurrentActiveMix); } }
Sound Mix 스택 관리 주의

Push한 횟수만큼 Pop해야 Mix가 완전히 제거됩니다. Push/Pop 불균형이 생기면 의도치 않은 볼륨 변화가 지속됩니다. 상태 전환 시 ClearSoundMixClassOverride로 클린업하는 것이 안전합니다.

SUMMARY

핵심 요약

  • Sound Mix는 Sound Class의 볼륨/피치/EQ를 런타임에 동적으로 변경하는 시스템이다
  • Push/Pop 스택 방식으로 여러 Mix를 동시 활성화할 수 있다
  • 더킹(Ducking)은 대사 재생 시 배경음 볼륨을 자동으로 낮추는 기법이다
  • EQ 프리셋으로 수중, 폭발 후, 무전기 등 상황별 사운드를 연출한다
  • Push/Pop 균형을 유지하지 않으면 볼륨 이상이 발생할 수 있으므로 주의한다
PRACTICE

도전 과제

배운 내용을 직접 실습해보세요

실습 1: Sound Mix 프리셋 생성

USoundMix 에셋을 3개 만드세요: (1) Default Mix - 기본 밸런스, (2) Combat Mix - SFX 볼륨 UP + Music 볼륨 UP, (3) Dialogue Mix - Voice 볼륨 UP + SFX/Music 볼륨 DOWN. PushSoundMixModifier/PopSoundMixModifier로 전환하세요.

실습 2: EQ 이펙트 적용

Submix Effect EQ 프리셋을 만들고 SFX Submix에 적용하세요. 물속 환경을 시뮬레이션하는 Low-Pass EQ를 구현하고, 물에 진입/이탈 시 EQ를 동적으로 활성화/비활성화하세요.

심화 과제: 환경 기반 오디오 믹싱 시스템

Audio Volume과 Sound Mix를 연동하여 환경에 따라 자동으로 오디오 믹싱이 변하는 시스템을 구현하세요. 실내/실외, 동굴, 물속 등 환경별 EQ, Reverb, Volume 프리셋을 만들고 부드럽게 전환하세요.