내일배움캠프-언리얼

TIL - 97

이시보 2026. 7. 1. 22:13

BGM 시스템 (기본 / 전투 / 성 지역)

개요

배경음악을 상황에 따라 자동 전환하는 시스템. 우선순위는 성 지역 > 전투 > 기본이며,
두 개의 오디오 슬롯을 크로스페이드해 부드럽게 전환한다.

구성 요소

  • URetrieveMusicSettings (UDeveloperSettings): Project Settings에서 기본/전투 BGM 에셋과 크로스페이드 시간 지정.
  • URetrieveMusicSubsystem (UWorldSubsystem): 재생/전환/전투 판정의 중심. 슬롯 A/B 크로스페이드.
  • ARetrieveMusicZoneVolume (AActor + UBoxComponent): 성 구역처럼 특정 영역 전용 BGM을 재생하는 볼륨.

동작 규칙

  • 성 지역(존): 볼륨 안에 있으면 전투 여부와 무관하게 ZoneBGM최우선.
  • 전투 BGM 진입: Channel.Enemy.PlayerSpotted적이 나(로컬 플레이어)를 포착한 순간.
    • 공격 발동·무기 장착만으로는 진입하지 않음.
  • 전투 BGM 유지/종료: 나를 포착한 몬스터를 교전 집합에 넣고, 0.5초 주기로
    파괴됨 / State.Enemy.Dead / State.Enemy.Chase 없음인 몬스터를 걷어낸다.
    • 집합이 비면(= 추적하는 몬스터가 하나도 없으면) 기본 BGM으로 복귀 (최대 0.5초 내).
  • 볼륨 연동: Retrieve Settings > Audio > Music Sound Class가 지정돼 있으면
    기존 옵션 메뉴의 음악 볼륨 슬라이더가 BGM에도 그대로 적용됨.
상황 결과
적이 나를 포착 전투 BGM 진입
포착한 적이 계속 추적 중 전투 BGM 유지
적이 죽음 / 추적 포기(도망·흥미 잃음) 해당 적을 집합에서 제거
추적하는 적이 하나도 안 남음 기본 BGM 복귀
성 볼륨 안에 진입 전투 여부 무시하고 성 BGM

에디터 설정

  1. Project Settings → Retrieve → Retrieve Music
    • Default BGM / Combat BGM 에셋 지정 (USoundBase: Wave/Cue/MetaSound 모두 가능)
    • Crossfade Duration (기본 1.5초)
  2. 성 구역에 Retrieve Music Zone Volume 배치
    • Box Extent를 성 구역 전체를 덮도록 조정
    • Zone BGM에 성 전용 트랙 지정
    • World Partition 레벨이면 Is Spatially Loaded 끄기 권장 (경계에서 언로드로 오버랩 놓침 방지)
  3. (선택) Retrieve Settings → Audio → Music Sound Class 지정 시 볼륨 슬라이더 연동

'내일배움캠프-언리얼' 카테고리의 다른 글

TIL - 99  (0) 2026.07.06
TIL - 98  (0) 2026.07.02
TIL - 96  (0) 2026.06.30
TIL - 95  (0) 2026.06.29
TIL - 94  (0) 2026.06.26