게임 BGM 세팅 핵심 가이드: Unity·Unreal 공통 원칙
- 이 글은 게임 BGM 세팅을 빠르게 최적화하려는 개발자·사운드 디자이너를 위한 실전 가이드예요. Unity와 Unreal에서 공통으로 통하는 루프, 메모리, 포맷 전략을 6가지 레시피로 정리했어요.
- 처음부터 끝까지 ‘게임 BGM 세팅’ 관점으로 설명하고, 각 엔진에서 눌러야 할 체크박스와 주의사항을 함께 제시해요. 문단 사이사이에 내부·외부 참고 링크도 배치했어요.
1) 끊김 없는 루프 세팅: 샘플 경계와 DSP 스케줄링
- 원칙: 클릭·갭을 없애려면 파일 자체가 무손실 루프가 되도록 편집(제로 크로싱에서 컷, 페이드 인/아웃 최소화). 엔진에서는 Loop 옵션과 정확한 샘플 길이를 보장해야 해요. 이 기본이 ‘게임 BGM 세팅’의 출발점입니다.
- Unity: AudioClip Import Settings에서 Decompress on Load(짧은 루프), Streaming(긴 트랙) 선택. Vorbis 품질(Q) 0.4~0.6 권장, Load In Background는 장면 진입 타이밍에 맞춰 사용. 트랜지션은 AudioSource.SetScheduledEndTime과 PlayScheduled로 샘플 정확도를 확보하세요.
- Unreal: Sound Wave에 Loop 체크, Sound Cue에서 Loop 노드/Random+Loop 조합으로 배경 루프 구성. 구간 전환은 MetaSounds 또는 Quartz Clock을 이용해 박자 단위(Bar/Beat)로 스케줄링하세요.
2) 메모리 안전 설계: Streaming/Preload 매트릭스
- 원칙: 짧고 반복적인 UI/스팅어는 메모리 상주, 30초 이상 BGM은 스트리밍. 씬 전환 직후 1~2초만 필요한 대기음은 Preload 길이를 줄여 IO 스파이크를 완화해요. 이런 구분이 ‘게임 BGM 세팅’에서 프레임 드랍을 줄이는 핵심이에요.
- Unity: 긴 곡은 Streaming으로 전환, PCM 캐시 크기는 플랫폼별 메모리 한도에 맞춰 점검. 씬 진입 전 Addressables 또는 AssetBundle로 비동기 프리로드를 권장.
- Unreal: 프로젝트 세팅의 Stream Caching을 활성화하고 StreamableManager로 로딩 타이밍을 통제. 월드 컴포지션/서브레벨 로딩 이벤트에 묶어서 페이즈드 프리로드를 구현해요.
3) 포맷·샘플레이트 최적화: WAV·Vorbis·ADPCM
- 원칙: 제작 단계는 WAV 48kHz/24bit로 보관, 빌드에서는 플랫폼별 Vorbis(Opus 유사 품질대) 품질을 조절. 저용량 모바일은 ADPCM(타격음/루프 짧은 BGM)도 고려해요. 정확한 포맷 선택이 ‘게임 BGM 세팅’의 용량·로딩을 결정해요.
- Unity: Music은 Vorbis 160~192kbps 체감대(Q 0.45~0.55), 효과음은 ADPCM/PCM 혼용. Force To Mono는 BGM엔 비권장(공간감 손실), 대신 Mid/Side EQ로 스테레오 폭을 관리하세요.
- Unreal: 플랫폼 오디오 쿠킹에서 Quality와 Sample Rate를 프로파일링 기준으로 설정. 배경 음악은 Vorbis, 짧은 루프/보이스는 ADPCM 혼합이 일반적이에요.
4) 다이내믹 믹스: 덕킹·스냅샷 전환
- 원칙: 전투/이벤트에 따라 BGM을 자동으로 덕킹하고, 섹션 간 전환은 스냅샷이나 서브믹스 스냅샷으로 매끄럽게. 음악이 대사를 덮지 않도록 -6~-10dB 사이드체인을 설계해요. 섬세한 믹스가 ‘게임 BGM 세팅’ 완성도를 끌어올립니다.
- Unity: Audio Mixer 그룹에 Sidechain Compressor 구성. UI/보이스 버스가 트리거일 때 Music 버스를 자동 감소. Snapshot을 씬 이벤트와 연동해 전환 시간을 100~300ms로 셋업.
- Unreal: Submix에 다이내믹 프로세싱 삽입, Audio Volume과 Sound Class 믹스 수정자로 상황별 레벨을 제어. MetaSounds 파라미터로 곡 내 레이어(드럼/베이스/패드)를 On/Off하세요.
5) 상태 기반 전환: 스팅어·인트로/루프/아웃트로 체인
- 원칙: Intro → Loop → Stinger → Outro를 이벤트 상태에 매핑. 박자 경계에서 교체하면 체감 이음매가 사라져요. 상태 머신과 맞물리는 ‘게임 BGM 세팅’은 연출 몰입도를 기하급수로 높여요.
- Unity: AudioSource 2~3개를 오케스트레이션하고, Timeline 신호나 Animator 파라미터를 트리거로 사용. PlayScheduled로 바/비트 경계 교체.
- Unreal: Sound Cue의 Switch/Blend by Param 노드로 게임 상태(전투/안정/보스) 전환. MetaSounds 시퀀서와 Quartz를 결합해 그루브를 유지하세요.
6) 빌드·로딩 최적화: 어드레서블·쿠킹·프로파일링
- 원칙: 리소스는 씬 의존성에서 분리해 번들/청크로 구성하고, 첫 로딩은 최소 파일만 당겨요. 실기기 프로파일링으로 CPU/GPU와 별개로 오디오 스레드/IO 지연을 확인하세요. 이 과정이 ‘게임 BGM 세팅’의 체감 로딩을 바꿔요.
- Unity: Addressables로 음악 번들을 씬과 분리, 초기 부트에선 placeholder 짧은 루프를 사용하고 백그라운드에서 메인 트랙 스트리밍. Profiler의 Audio 탭에서 Decode 시간과 GC Alloc을 함께 체크해요.
- Unreal: Audio Cooker 품질 프리셋을 플랫폼별로 나누고, Primary Asset 체계를 통해 필요 시점에만 요청. Stat Audio와 Unreal Insights로 스트림 캐시 히트율·시킹 비용을 측정하세요.
Unity·Unreal 비교 요약표
| 항목 | Unity | Unreal |
| 무중단 루프 | PlayScheduled, Decompress on Load | Quartz/MetaSounds, Sound Cue Loop |
| 메모리 전략 | Streaming/Addressables 조합 | Stream Caching/StreamableManager |
| 포맷 | Vorbis Music, ADPCM SFX | Vorbis Music, ADPCM 혼합 |
| 믹스 제어 | Audio Mixer + Snapshot | Submix + Sound Class Mix |
| 상태 전환 | Timeline/Animator 트리거 | Switch/Blend by Param |
| 프로파일링 | Profiler(Audio/GC) | Stat Audio/Insights |
루프의 품질은 파일 편집 50%, 엔진 스케줄링 50%. 두 축이 맞물릴 때 비로소 ‘게임 BGM 세팅’이 완성됩니다.
실패를 줄이는 체크포인트 8
- 루프 파일은 무조건 제로 크로싱에 컷한다.
- 긴 트랙은 스트리밍, 짧은 루프는 디컴프레스트로 구분한다.
- Vorbis 품질은 AB 테스트(Q 0.4~0.6)로 결정한다.
- 씬 로딩 직후엔 플레이스홀더 루프로 페이드 인한다.
- 보이스/효과음에 사이드체인으로 BGM 덕킹을 건다.
- 상태 전환은 바/비트 경계에서만 수행한다.
- 실기기에서 오디오 스레드/IO를 별도로 프로파일링한다.
- 모든 ‘게임 BGM 세팅’ 변경은 샘플 단위 로그를 남긴다.
적용 순서(워크플로우)
- 사운드 에셋 정리: WAV 마스터, 루프 포인트 확정
- 엔진 임포트: Unity/Unreal 기본 압축·스트리밍 정책 지정
- 믹스 버스 설계: Music/UI/VO/SFX 버스, 덕킹 라우팅
- 상태 머신 맵핑: Intro/Loop/Stinger/Outro 체인
- 프로파일링: 로딩·IO·오디오 스레드 병목 확인
- 플랫폼 튜닝: 모바일·콘솔별 포맷/품질 매핑
디테일 팁: 품질과 퍼포먼스의 균형
- 샘플레이트: 44.1kHz vs 48kHz 체감 차이는 미미하지만, 영상·콘솔 파이프라인은 48kHz가 안전. 리샘플 비용을 한 번만 치르게 디자인하세요.
- 헤드룸: 마스터 -1dBTP, 루프 크로스페이드 구간은 -3dB 여유. 포맷 압축 시
클리핑을 방지해요. - 스테레오 폭: BGM은 60~80% 폭, 대사·UI는 센터 고정. 공간감은 리버브 서브믹스로 보강.
- 폴백: 디바이스 저성능 모드에서 ‘게임 BGM 세팅’ 품질을 한 단계 낮춘 프리셋 제공.
문제 해결 FAQ
- Q. 루프에서 ‘틱’이 들려요. A. 파일 단에서 페이드 정리, Unity는 Decompress on Load로 전환 후 재확인. Unreal은 Quartz 경계 스케줄을 사용.
- Q. 로딩 중 음악이 끊겨요. A. 스트리밍 캐시/프리로드 길이를 늘리거나, 첫 씬에는 저용량 플레이스홀더를 쓰고 배후에서 본 트랙 로드.
- Q. 모바일 빌드 용량이 커요. A. Vorbis 품질 0.55→0.4 단계 하향, 일부 큐는 ADPCM/모노화. 루프 길이를 4~8바 단위로 다이어트.
- Q. 전투 시 BGM이 대사를 덮어요. A. 사이드체인 덕킹 -8dB, 대사 시작 트리거에 120~200ms 어택을 적용.
샘플 설정 프리셋
- Unity BGM(모바일): Vorbis Q 0.45, Streaming, Preload 0.5~1.0s, Load In Background On
- Unity BGM(PC/콘솔): Vorbis Q 0.55, Decompress on Load(짧은 루프), Mixer Snapshot 전환 150ms
- Unreal BGM(모바일): Quality 40~45, Stream Caching On, Submix Ducking -8dB
- Unreal BGM(PC/콘솔): Quality 50~60, MetaSounds 파라미터 전환, Quartz Bar 경계 스케줄
마무리: 한 줄 정리
- 무중단 루프 편집 + 적절한 스트리밍/디컴프레스트 분리 + 플랫폼별 포맷 품질 매핑. 이 3요소를 워크플로우로 고정하면, ‘게임 BGM 세팅’은 로딩과 퍼포먼스에서 눈에 띄는 개선을 가져와요.
- 프로파일링 결과를 기준으로만 바꾸고, 청음 AB 테스트로 사용자 체감을 반드시 확인하세요.