PART 04 · 강의 1/3

Attenuation 설정

거리에 따른 사운드 감쇠, 형태, Occlusion, Absorption을 설정합니다

01

Sound Attenuation 기초

거리에 따라 사운드 볼륨이 줄어드는 물리적 감쇠 모델

Sound Attenuation(FSoundAttenuationSettings)은 리스너와 사운드 소스 사이의 거리에 따라 볼륨, 필터링, 우선순위 등이 어떻게 변하는지 정의합니다. 현실적인 3D 사운드의 기반입니다.

감쇠 함수 종류

함수수식특성적합한 용도
Linear 1 - (d / MaxDist) 일정한 감쇠 간단한 효과음
Logarithmic log 기반 감쇠 가까울 때 급격, 멀수록 완만 현실적인 대부분의 사운드
Inverse 1 / d 기반 물리적으로 정확 점음원 시뮬레이션
Natural Sound 엔진 최적화 커브 자연스러운 감쇠 + 성능 가장 많이 사용됨 (권장)
Custom 사용자 정의 커브 완전한 커스텀 제어 특수 효과, 비현실적 감쇠

핵심 거리 파라미터

파라미터단위설명
Inner Radiuscm (UE 단위)이 범위 내에서는 감쇠 없이 100% 볼륨
Falloff DistancecmInner Radius부터 감쇠가 시작되어 0에 도달하는 거리
dB Attenuation at MaxdB최대 거리에서의 감쇠량 (-60dB = 거의 무음)
[Inner Radius] ---100%--- | ---감쇠 구간--- | ---0%--- [Falloff Distance]
02

감쇠 형태 (Attenuation Shape)

감쇠 영역의 3D 모양 설정

감쇠 영역의 형태를 지정하여 사운드의 공간적 범위를 정의합니다.

형태설명적합한 용도
Sphere 구형 (기본값). 모든 방향에서 동일 감쇠 대부분의 점음원 (효과음, NPC 대사)
Box 직육면체. 건물, 방 크기에 맞춤 실내 앰비언스, 건물 내부 사운드
Capsule 캡슐형. 긴 물체에 적합 강, 도로, 울타리 전기 소리
Cone 원뿔형. 지향성 사운드 스피커, 메가폰, 사이렌
Cone Attenuation 활용

Cone 형태는 Inner AngleOuter Angle을 설정하여, 소스의 전방에서는 크게 들리고 후방에서는 작게 들리는 지향성 사운드를 구현합니다. 예: NPC의 입 방향으로 대사가 지향되도록 Cone을 설정하면 현실감이 크게 향상됩니다.

03

Occlusion과 Absorption

장애물에 의한 차폐와 재질별 흡수 시뮬레이션

Occlusion (차폐)

사운드 소스와 리스너 사이에 장애물(벽, 물체)이 있을 때 사운드가 약해지는 효과입니다. UE5는 레이 트레이스를 사용하여 차폐를 감지합니다.

파라미터범위설명
bEnableOcclusionboolOcclusion 활성화
OcclusionTraceChannelECollisionChannel레이 트레이스에 사용할 콜리전 채널
OcclusionLowPassFilterFrequency200~20000 Hz차폐 시 적용할 로우패스 필터 컷오프
OcclusionVolumeAttenuation0.0~1.0차폐 시 볼륨 감쇠 배수
OcclusionInterpolationTime차폐 상태 전환 보간 시간

Absorption (흡수)

공기를 통과하면서 고주파가 자연스럽게 감쇠되는 현상입니다. 현실에서 멀리 있는 사운드가 "뭉툭"하게 들리는 이유입니다.

Attenuation Settings
// Air Absorption 설정 bAttenuateWithLPF = true; // 로우패스 필터 감쇠 활성화 LPFRadiusMin = 500.0f; // 필터 시작 거리 (cm) LPFRadiusMax = 5000.0f; // 최대 필터 거리 LPFFrequencyAtMin = 20000.0f; // 최소 거리의 컷오프 (Hz) LPFFrequencyAtMax = 1000.0f; // 최대 거리의 컷오프 (Hz) // 결과: 5000cm 이상에서는 1000Hz 이하만 들림 (둔탁한 소리)
Occlusion 성능 팁

Occlusion은 매 프레임 레이 트레이스를 수행하므로 CPU 비용이 있습니다. OcclusionInterpolationTime을 0.2초 이상으로 설정하면 레이캐스트 빈도를 줄일 수 있고, 결과도 더 자연스러워집니다. 수백 개의 사운드에 모두 Occlusion을 켜는 것은 피하세요.

04

Attenuation Settings 에셋

재사용 가능한 감쇠 프리셋 생성 및 관리

Attenuation 설정을 에셋으로 분리하면 여러 사운드에서 동일한 감쇠를 재사용할 수 있습니다. Content Browser에서 Sound Attenuation 에셋을 생성하세요.

권장 프리셋

SA_Small

Inner: 100cm | Falloff: 1000cm
Function: NaturalSound | Occlusion: On

UI 진동, 작은 물체 상호작용

SA_Medium

Inner: 200cm | Falloff: 3000cm
Function: NaturalSound | Occlusion: On

발자국, NPC 대사, 무기 소리

SA_Large

Inner: 500cm | Falloff: 8000cm
Function: Logarithmic | Absorption: On

폭발, 차량, 큰 환경 사운드

SA_Ambient

Inner: 1000cm | Falloff: 15000cm
Function: NaturalSound | Shape: Box

환경 앰비언스, 넓은 영역 사운드

C++ - Attenuation Settings 코드 생성
// Attenuation Settings를 코드에서 구성 FSoundAttenuationSettings AttSettings; AttSettings.bAttenuate = true; AttSettings.bSpatialize = true; AttSettings.AttenuationShape = EAttenuationShape::Sphere; AttSettings.FalloffDistance = 3000.f; AttSettings.DistanceAlgorithm = EAttenuationDistanceModel::NaturalSound; // Occlusion 활성화 AttSettings.bEnableOcclusion = true; AttSettings.OcclusionLowPassFilterFrequency = 2000.f; AttSettings.OcclusionVolumeAttenuation = 0.5f; AttSettings.OcclusionInterpolationTime = 0.2f; // Air Absorption AttSettings.bAttenuateWithLPF = true; AttSettings.LPFRadiusMin = 500.f; AttSettings.LPFRadiusMax = 5000.f;
SUMMARY

핵심 요약

  • Sound Attenuation은 거리에 따른 볼륨 감쇠를 정의하며, NaturalSound 함수가 가장 권장된다
  • 감쇠 형태(Sphere, Box, Capsule, Cone)를 사운드 소스의 특성에 맞게 선택한다
  • Occlusion은 레이 트레이스로 장애물을 감지하여 차폐 효과를 적용한다
  • Air Absorption은 거리에 따른 자연스러운 고역 감쇠를 시뮬레이션한다
  • Attenuation Settings를 에셋으로 분리하여 프리셋으로 재사용하는 것이 관리에 효율적이다
PRACTICE

도전 과제

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

실습 1: Attenuation 프리셋 제작

USoundAttenuation 에셋을 만들어 Inner Radius=200, Falloff Distance=2000, Falloff 커브를 Natural Sound로 설정하세요. 에디터 뷰포트에서 Attenuation 범위를 시각적으로 확인하고, 리스너 거리에 따른 볼륨 변화를 테스트하세요.

실습 2: Occlusion과 Obstruction 설정

Attenuation 설정에서 Enable Occlusion을 활성화하고, Low-Pass Filter Frequency를 조절하세요. 벽 뒤에 사운드 소스를 배치하고 Line Trace 기반 Occlusion이 적용되어 소리가 먹먹해지는지 확인하세요.

심화 과제: 커스텀 Attenuation 커브 설계

FRichCurve를 사용하여 게임 장르에 맞는 커스텀 Attenuation 커브를 설계하세요. 호러 게임(급격한 감쇠로 근거리 공포감), 오픈월드(완만한 감쇠로 넓은 환경감) 등 장르별 프리셋을 만들고 A/B 테스트하세요.