UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
Attenuation.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
7#include "UObject/Object.h"
8#include "UObject/Class.h"
10#include "Curves/CurveFloat.h"
11#include "Attenuation.generated.h"
12
14
15UENUM(BlueprintType)
25
26UENUM(BlueprintType)
28{
29 enum Type : int
30 {
34 Cone
35 };
36}
37
38UENUM(BlueprintType)
40{
41 // (Default) Continues attenuating pass falloff max using volume value
42 // specified at the max falloff distance's bounds
44
45 // Sound goes silent upon leaving the shape
46 Silent,
47
48 // Holds the volume value specified at the shapes falloff bounds
49 Hold,
50};
51
52/*
53* Base class for attenuation settings.
54*/
55USTRUCT(BlueprintType)
57{
59
61
62 /* The type of attenuation as a function of distance to use. */
63 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category= AttenuationDistance, meta = (DisplayName = "Attenuation Function"))
64 EAttenuationDistanceModel DistanceAlgorithm;
65
66 /* The shape of the non-custom attenuation method. */
67 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category= AttenuationDistance)
68 TEnumAsByte<enum EAttenuationShape::Type> AttenuationShape;
69
70 // Whether to continue attenuating, go silent, or hold last volume value when beyond falloff bounds and
71 // 'Attenuation At Max (dB)' is set to a value greater than -60dB.
72 // (Only for 'Natural Sound' Distance Algorithm). */
73 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category= AttenuationDistance)
75
76 /* The attenuation volume at the falloff distance in decibels (Only for 'Natural Sound' Distance Algorithm). */
77 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category= AttenuationDistance, meta=(DisplayName = "Attenuation At Max (dB)", ClampMin = "-60", ClampMax = "0"))
79
80 /* The dimensions to use for the attenuation shape. Interpretation of the values differ per shape.
81 Sphere - X is Sphere Radius. Y and Z are unused
82 Capsule - X is Capsule Half Height, Y is Capsule Radius, Z is unused
83 Box - X, Y, and Z are the Box's dimensions
84 Cone - X is Cone Radius, Y is Cone Angle, Z is Cone Falloff Angle
85 */
86 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category= AttenuationDistance)
87 FVector AttenuationShapeExtents;
88
89 /* The distance back from the sound's origin to begin the cone when using the cone attenuation shape. */
90 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category= AttenuationDistance, meta=(ClampMin = "0"))
91 float ConeOffset;
92
93 /* The distance over which volume attenuation occurs. */
94 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category= AttenuationDistance, meta=(ClampMin = "0"))
95 float FalloffDistance;
96
97 /* An optional attenuation radius (sphere) that extends from the cone origin. */
98 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = AttenuationDistance, meta = (ClampMin = "0"))
99 float ConeSphereRadius;
100
101 /* The distance over which volume attenuation occurs for the optional sphere shape. */
102 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = AttenuationDistance, meta = (ClampMin = "0"))
103 float ConeSphereFalloffDistance;
104
105 /* The custom volume attenuation curve to use. Value clamped at 1.0. */
106 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category= AttenuationDistance)
107 FRuntimeFloatCurve CustomAttenuationCurve;
108
110
119
120 ENGINE_API virtual void CollectAttenuationShapesForVisualization(TMultiMap<EAttenuationShape::Type, AttenuationShapeDetails>& ShapeDetailsMap) const;
121 ENGINE_API float GetMaxDimension() const;
122
123 ENGINE_API float GetMaxFalloffDistance() const;
124
125 ENGINE_API float Evaluate(const FTransform& Origin, FVector Location, float DistanceScale = 1.f) const;
126
127 ENGINE_API float AttenuationEval(float Distance, float Falloff, float DistanceScale = 1.f) const;
128 ENGINE_API float AttenuationEvalBox(const FTransform& Origin, FVector Location, float DistanceScale = 1.f) const;
129 ENGINE_API float AttenuationEvalCapsule(const FTransform& Origin, FVector Location, float DistanceScale = 1.f) const;
130 ENGINE_API float AttenuationEvalCone(const FTransform& Origin, FVector Location, float DistanceScale = 1.f) const;
131};
ENaturalSoundFalloffMode
Definition Attenuation.h:40
EAttenuationDistanceModel
Definition Attenuation.h:17
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define UENUM(...)
Definition ObjectMacros.h:749
#define USTRUCT(...)
Definition ObjectMacros.h:746
#define GENERATED_USTRUCT_BODY(...)
Definition ObjectMacros.h:767
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition EnumAsByte.h:22
Definition Attenuation.h:28
Type
Definition Attenuation.h:30
float ConeSphereFalloff
Definition Attenuation.h:117
float Falloff
Definition Attenuation.h:114
FVector Extents
Definition Attenuation.h:113
float ConeSphereRadius
Definition Attenuation.h:116
float ConeOffset
Definition Attenuation.h:115
Definition Attenuation.h:57
Definition AudioDevice.h:377
Definition CurveFloat.h:13