UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
AlphaBlend.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 "AlphaBlend.generated.h"
8
9class UCurveFloat;
10
11UENUM(BlueprintType)
13{
14 Linear = 0 UMETA(Grouping = Linear, DisplayName = "Linear", ToolTip = "Linear interpolation"),
15 Cubic UMETA(Grouping = Cubic, DisplayName = "Cubic In", ToolTip = "Cubic-in interpolation"),
16 HermiteCubic UMETA(Grouping = Cubic, DisplayName = "Hermite-Cubic InOut", ToolTip = "Hermite-Cubic"),
17 Sinusoidal UMETA(Grouping = Sinusoidal, DisplayName = "Sinusoidal", ToolTip = "Sinusoidal interpolation"),
18 QuadraticInOut UMETA(Grouping = Quadratic, DisplayName = "Quadratic InOut", ToolTip = "Quadratic in-out interpolation"),
19 CubicInOut UMETA(Grouping = Cubic, DisplayName = "Cubic InOut", ToolTip = "Cubic in-out interpolation"),
20 QuarticInOut UMETA(Grouping = Quartic, DisplayName = "Quartic InOut", ToolTip = "Quartic in-out interpolation"),
21 QuinticInOut UMETA(Grouping = Quintic, DisplayName = "Quintic InOut", ToolTip = "Quintic in-out interpolation"),
22 CircularIn UMETA(Grouping = Circular, DisplayName = "Circular In", ToolTip = "Circular-in interpolation"),
23 CircularOut UMETA(Grouping = Circular, DisplayName = "Circular Out", ToolTip = "Circular-out interpolation"),
24 CircularInOut UMETA(Grouping = Circular, DisplayName = "Circular InOut", ToolTip = "Circular in-out interpolation"),
25 ExpIn UMETA(Grouping = Exponential, DisplayName = "Exponential In", ToolTip = "Exponential-in interpolation"),
26 ExpOut UMETA(Grouping = Exponential, DisplayName = "Exponential Out", ToolTip = "Exponential-Out interpolation"),
27 ExpInOut UMETA(Grouping = Exponential, DisplayName = "Exponential InOut", ToolTip = "Exponential in-out interpolation"),
28 Custom UMETA(Grouping = Custom, DisplayName = "Custom", ToolTip = "Custom interpolation, will use custom curve inside an FAlphaBlend or linear if none has been set"),
29};
30
31namespace UE::Anim
32{
33static constexpr EAlphaBlendOption DefaultBlendOption = EAlphaBlendOption::HermiteCubic;
34}
35
39USTRUCT(BlueprintType)
41{
43
47
48#if WITH_EDITORONLY_DATA
49 bool Serialize(FArchive& Ar);
51#endif // WITH_EDITORONLY_DATA
52
54 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Blend", meta=(DisplayAfter="BlendOption"))
56
58 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Blend")
59 float BlendTime;
60
62 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Blend")
63 EAlphaBlendOption BlendOption;
64};
65
69USTRUCT(BlueprintType)
71{
73private:
80 UPROPERTY(EditAnywhere, Category = "Blend", meta=(DisplayAfter="BlendOption"))
82
83public:
84 /* Constructor */
86
87 /* Constructor */
89
92
93 /* Constructor */
94 ENGINE_API explicit FAlphaBlend(const FAlphaBlendArgs& InArgs);
95
97 ENGINE_API void SetBlendOption(EAlphaBlendOption InBlendOption);
98 ENGINE_API void SetCustomCurve(UCurveFloat* InCustomCurve);
100 ENGINE_API void SetBlendTime(float InBlendTime);
101
109 ENGINE_API void SetValueRange(float Begin, float Desired);
110
112 ENGINE_API void SetDesiredValue(float InDesired);
113
115 ENGINE_API void SetAlpha(float InAlpha);
116
122 ENGINE_API float Update(float InDeltaTime);
123
125 ENGINE_API bool IsComplete() const;
126
128 float GetAlpha() const { return AlphaLerp; }
129
131 float GetBlendedValue() const { return BlendedValue; }
132
134 float GetBlendTime() const { return BlendTime; }
135 float GetBlendTimeRemaining() const { return BlendTimeRemaining; }
136 EAlphaBlendOption GetBlendOption() const { return BlendOption; }
138
140 float GetBeginValue() const { return BeginValue; }
141
143 float GetDesiredValue() const { return DesiredValue; }
144
150 static ENGINE_API float AlphaToBlendOption(float InAlpha, EAlphaBlendOption InBlendOption, UCurveFloat* InCustomCurve = nullptr);
151
152private:
154 UPROPERTY(EditAnywhere, Category = "Blend")
155 float BlendTime;
156
158 float AlphaLerp;
159
161 float AlphaBlend;
162
164 float BlendTimeRemaining;
165
169 float BlendedValue;
170
172 float BeginValue;
173
175 float DesiredValue;
176
198public:
200 ENGINE_API void Reset();
201
203 ENGINE_API void ResetAlpha();
204
205private:
206 /* Reset Blend Time, this modifies BlendTimeRemaining and possibly Weight when BlendTimeRemaining <= 0.f */
207 ENGINE_API void ResetBlendTime();
208
210 ENGINE_API float AlphaToBlendOption();
211
218 UPROPERTY(EditAnywhere, Category = "Blend")
219 EAlphaBlendOption BlendOption = UE::Anim::DefaultBlendOption;
220
222 bool bNeedsToResetAlpha;
223
225 bool bNeedsToResetBlendTime;
226
227 mutable bool bNeedsToResetCachedDesiredBlendedValue;
228
230 mutable float CachedDesiredBlendedValue;
231};
232
233#if WITH_EDITORONLY_DATA
234template<> struct TStructOpsTypeTraits<FAlphaBlendArgs> : public TStructOpsTypeTraitsBase2<FAlphaBlendArgs>
235{
236 enum
237 {
238 WithSerializer = true,
240 };
241};
242
243
244template<> struct TStructOpsTypeTraits<FAlphaBlend> : public TStructOpsTypeTraitsBase2<FAlphaBlend>
245{
246 enum
247 {
248 WithSerializer = true,
250 };
251};
252#endif //#if WITH_EDITORONLY_DATA
EAlphaBlendOption
Definition AlphaBlend.h:13
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 GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UENUM(...)
Definition ObjectMacros.h:749
#define USTRUCT(...)
Definition ObjectMacros.h:746
USkinnedMeshComponent float
Definition SkinnedMeshComponent.h:60
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition Archive.h:1208
Definition StructuredArchiveSlots.h:52
Definition CurveFloat.h:31
Definition AnimationAsset.h:42
Definition AdvancedWidgetsModule.cpp:13
Definition AlphaBlend.h:41
Definition AlphaBlend.h:71
UCurveFloat * GetCustomCurve() const
Definition AlphaBlend.h:137
float GetBeginValue() const
Definition AlphaBlend.h:140
float GetBlendTimeRemaining() const
Definition AlphaBlend.h:135
float GetAlpha() const
Definition AlphaBlend.h:128
float GetDesiredValue() const
Definition AlphaBlend.h:143
bool Serialize(FArchive &Ar)
bool Serialize(FStructuredArchive::FSlot Slot)
EAlphaBlendOption GetBlendOption() const
Definition AlphaBlend.h:136
float GetBlendedValue() const
Definition AlphaBlend.h:131
float GetBlendTime() const
Definition AlphaBlend.h:134
Definition ObjectPtr.h:488
Definition StructOpsTypeTraits.h:11
@ WithSerializer
Definition StructOpsTypeTraits.h:23
@ WithStructuredSerializer
Definition StructOpsTypeTraits.h:24
Definition StructOpsTypeTraits.h:46