UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
InputScaleBias.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.h"
8#include "InputScaleBias.generated.h"
9
11
12// Input modifier with scaling and biasing
13USTRUCT(BlueprintType)
15{
17
18 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Settings)
20
21 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Settings)
22 float Bias;
23
24public:
26 : Scale(1.0f)
27 , Bias(0.0f)
28 {
29 }
30
31 ENGINE_API float ApplyTo(float Value) const;
32#if WITH_EDITOR
33 ENGINE_API FText GetFriendlyName(FText InFriendlyName) const;
34#endif
35};
36
37USTRUCT(BlueprintType)
39{
41
42 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Settings)
44
45 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Settings)
46 float Max;
47
48public:
50 : Min(0.0f)
51 , Max(1.0f)
52 {
53 }
54
55 FInputRange(const float InMin, const float InMax)
56 : Min(InMin)
57 , Max(InMax)
58 {}
59
60 FVector2f ToVector2f() const { return FVector2f(Min, Max); }
61 FVector2D ToVector2D() const { return (FVector2D)ToVector2f(); }
62
63 bool ClampValue(float& InOutValue) const
64 {
65 const float OriginalValue = InOutValue;
67 return (OriginalValue != InOutValue);
68 }
69};
70
71// Input modifier with remapping, scaling, biasing, clamping, and interpolation
72USTRUCT(BlueprintType)
74{
76
77 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Settings)
78 bool bMapRange;
79
80 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Settings)
81 bool bClampResult;
82
83 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Settings)
84 bool bInterpResult;
85
86 mutable bool bInitialized;
87
88 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Settings, meta = (EditCondition = "bMapRange"))
89 FInputRange InRange;
90
91 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Settings, meta = (EditCondition = "bMapRange"))
92 FInputRange OutRange;
93
94 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Settings)
95 float Scale;
96
97 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Settings)
98 float Bias;
99
100 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Settings, meta = (EditCondition = "bClampResult"))
101 float ClampMin;
102
103 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Settings, meta = (EditCondition = "bClampResult"))
104 float ClampMax;
105
106 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Settings, meta = (EditCondition = "bInterpResult"))
107 float InterpSpeedIncreasing;
108
109 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Settings, meta = (EditCondition = "bInterpResult"))
110 float InterpSpeedDecreasing;
111
112 mutable float InterpolatedResult;
113
114public:
116 : bMapRange(false)
117 , bClampResult(false)
118 , bInterpResult(false)
119 , bInitialized(false)
120 , Scale(1.0f)
121 , Bias(0.0f)
122 , ClampMin(0.f)
123 , ClampMax(1.f)
124 , InterpSpeedIncreasing(10.f)
125 , InterpSpeedDecreasing(10.f)
126 , InterpolatedResult(0.f)
127 {
128 }
129
130 ENGINE_API float ApplyTo(float Value, float InDeltaTime) const;
131
132 void Reinitialize() { bInitialized = false; }
133#if WITH_EDITOR
134 ENGINE_API FText GetFriendlyName(FText InFriendlyName) const;
135#endif
136};
137
138// Input modifier with clamping and interpolation
139USTRUCT(BlueprintType)
141{
143
144 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Settings)
145 bool bClampResult = false;
146
147 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Settings)
148 bool bInterpResult = false;
149
150 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Settings, meta = (EditCondition = "bClampResult"))
151 float ClampMin = 0.f;
152
153 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Settings, meta = (EditCondition = "bClampResult"))
154 float ClampMax = 1.f;
155
156 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Settings, meta = (EditCondition = "bInterpResult"))
157 float InterpSpeedIncreasing = 10.f;
158
159 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Settings, meta = (EditCondition = "bInterpResult"))
160 float InterpSpeedDecreasing = 10.f;
161
162#if WITH_EDITOR
163 // Get a friendly name to display on a pin
164 ENGINE_API FText GetFriendlyName(FText InFriendlyName) const;
165#endif
166};
167
168// Mutable state struct to be used with FInputClampConstants
169USTRUCT(BlueprintType)
171{
173
174 // The interpolated result
175 float InterpolatedResult = 0.f;
176
177 // Whether this state is initialized
178 bool bInitialized = false;
179
180 // Apply scale, bias, and clamp to value
181 ENGINE_API float ApplyTo(const FInputClampConstants& InConstants, float InValue, float InDeltaTime);
182
183 void Reinitialize() { bInitialized = false; }
184};
185
186USTRUCT(BlueprintType)
188{
190
191 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Settings)
192 bool bMapRange;
193
194 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Settings)
195 bool bClampResult;
196
197 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Settings)
198 bool bInterpResult;
199
200 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Settings, meta = (EditCondition = "bMapRange"))
201 FInputRange InRange;
202
203 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Settings, meta = (EditCondition = "bMapRange"))
204 FInputRange OutRange;
205
206 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Settings)
207 float Scale;
208
209 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Settings)
210 float Bias;
211
212 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Settings, meta = (EditCondition = "bClampResult"))
213 float ClampMin;
214
215 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Settings, meta = (EditCondition = "bClampResult"))
216 float ClampMax;
217
218 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Settings, meta = (EditCondition = "bInterpResult"))
219 float InterpSpeedIncreasing;
220
221 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Settings, meta = (EditCondition = "bInterpResult"))
222 float InterpSpeedDecreasing;
223
224public:
226 : bMapRange(false)
227 , bClampResult(false)
228 , bInterpResult(false)
229 , Scale(1.0f)
230 , Bias(0.0f)
231 , ClampMin(0.f)
232 , ClampMax(1.f)
233 , InterpSpeedIncreasing(10.f)
234 , InterpSpeedDecreasing(10.f)
235 {
236 }
237
238#if WITH_EDITOR
239 // Get a friendly name to display on a pin
240 ENGINE_API FText GetFriendlyName(FText InFriendlyName) const;
241
242 // Copy parameters from the legacy combined constants/state structure
244#endif
245};
246
247// Mutable state struct to be used with FInputScaleBiasClampConstants
248USTRUCT(BlueprintType)
250{
252
253 // The interpolated result
254 float InterpolatedResult;
255
256 // Whether this state is initialized
257 bool bInitialized;
258
259public:
261 : InterpolatedResult(0.f)
262 , bInitialized(false)
263 {
264 }
265
266 // Apply scale, bias, and clamp to value
267 ENGINE_API float ApplyTo(const FInputScaleBiasClampConstants& InConstants, float Value, float InDeltaTime);
268
269 // Apply but dont modify InterpolatedResult
270 ENGINE_API float ApplyTo(const FInputScaleBiasClampConstants& InConstants, float Value) const;
271
272 void Reinitialize() { bInitialized = false; }
273};
274
275// AnimNodes using an Alpha can choose how it is driven.
276UENUM()
278{
279 Float UMETA(DisplayName = "Float Value"),
280 Bool UMETA(DisplayName = "Bool Value"),
281 Curve UMETA(DisplayName = "Anim Curve Value")
282};
283
284USTRUCT(BlueprintType)
286{
288
289#if WITH_EDITORONLY_DATA
290 bool Serialize(FArchive& Ar);
292#endif // WITH_EDITORONLY_DATA
293
294 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Settings)
295 float BlendInTime;
296
297 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Settings)
298 float BlendOutTime;
299
300 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Settings)
301 EAlphaBlendOption BlendOption;
302
304 bool bInitialized;
305
306 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Settings)
308
310 FAlphaBlend AlphaBlend;
311
313 : BlendInTime(0.0f)
314 , BlendOutTime(0.0f)
315 , BlendOption(UE::Anim::DefaultBlendOption)
316 , bInitialized(false)
317 , CustomCurve(nullptr)
318 {}
319
320 ENGINE_API float ApplyTo(bool bEnabled, float InDeltaTime);
321
322 void Reinitialize() { bInitialized = false; }
323};
324
325#if WITH_EDITORONLY_DATA
326template<> struct TStructOpsTypeTraits<FInputAlphaBoolBlend> : public TStructOpsTypeTraitsBase2<FInputAlphaBoolBlend>
327{
328 enum
329 {
330 WithSerializer = true,
332 };
333};
334#endif // WITH_EDITORONLY_DATA
EAlphaBlendOption
Definition AlphaBlend.h:13
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
EAnimAlphaInputType
Definition InputScaleBias.h:278
UE::Math::TVector2< float > FVector2f
Definition MathFwd.h:74
const bool
Definition NetworkReplayStreaming.h:178
#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
#define GENERATED_USTRUCT_BODY(...)
Definition ObjectMacros.h:767
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 Text.h:385
Definition CurveFloat.h:31
Definition AdvancedWidgetsModule.cpp:13
@ false
Definition radaudio_common.h:23
Definition AlphaBlend.h:71
Definition AnimNodeBase.h:354
Definition InputScaleBias.h:286
void Reinitialize()
Definition InputScaleBias.h:322
Definition InputScaleBias.h:141
Definition InputScaleBias.h:171
Definition InputScaleBias.h:39
bool ClampValue(float &InOutValue) const
Definition InputScaleBias.h:63
FVector2D ToVector2D() const
Definition InputScaleBias.h:61
FInputRange(const float InMin, const float InMax)
Definition InputScaleBias.h:55
FVector2f ToVector2f() const
Definition InputScaleBias.h:60
Definition InputScaleBias.h:188
Definition InputScaleBias.h:250
void Reinitialize()
Definition InputScaleBias.h:272
Definition InputScaleBias.h:74
void Reinitialize()
Definition InputScaleBias.h:132
Definition InputScaleBias.h:15
static constexpr UE_FORCEINLINE_HINT T Clamp(const T X, const T MinValue, const T MaxValue)
Definition UnrealMathUtility.h:592
Definition ObjectPtr.h:488
Definition StructOpsTypeTraits.h:11
@ WithSerializer
Definition StructOpsTypeTraits.h:23
@ WithStructuredSerializer
Definition StructOpsTypeTraits.h:24
Definition StructOpsTypeTraits.h:46