UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
WeightAndEasingEvaluatorSystem.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "Containers/Array.h"
7#include "Containers/Map.h"
8#include "Containers/Set.h"
17#include "HAL/Platform.h"
20
21#include "WeightAndEasingEvaluatorSystem.generated.h"
22
26class UObject;
28
29// Bezier blending gives a true linear interpolation between biases, but
30// disabled by default because it misbehaves if you feed it different parameters for 't' to each term
31#ifndef UE_ENABLE_MOVIESCENE_BEZIER_BLENDING
32 #define UE_ENABLE_MOVIESCENE_BEZIER_BLENDING 0
33#endif
34
35namespace UE::MovieScene
36{
37
41
43{
44 // Blend hierarchical weights by multiplying children with all parent weights (default)
46 // Combine weights from child -> parent using an increasingly small factor based on previously accumulated weights
47 // For example:
48 // values = ( (a,t1), (b, t2), (c, t3), (d, t4))
49 // float final_weight = 1;
50 // float t = 1;
51 // for (i : size(values))
52 // float this = values[i].value*t*values[i].weight
53 // t = max(t - this, 0)
54 // final_weight *= this
56#if UE_ENABLE_MOVIESCENE_BEZIER_BLENDING
57 // Combine weights from child -> parent using a bezier interpolation series
59#endif
60};
61
64{
66 double FinalResult = 1.0;
68 double UnaccumulatedResult = 1.0;
69
74
77
78#if UE_ENABLE_MOVIESCENE_BEZIER_BLENDING
79 // Bezier blending coefficients of the form a(1-t)^b + t^c
80 float CoeffA = 1.f;
81 float ExpB = 1.f;
82 float ExpC = 1.f;
83#endif
84
86};
87
101
102} // namespace UE::MovieScene
103
107UCLASS(MinimalAPI)
109{
110public:
111
113 {
114 int32 HierarchicalDepth = -1;
115 uint16 StrongRefCount = 0;
116 uint16 WeakRefCount = 0;
117 };
118
120
122
123 MOVIESCENETRACKS_API void FinalizeBlendTargets();
124
125private:
126
129 MOVIESCENETRACKS_API virtual void OnUnlink() override;
131
132private:
133
135 TSparseArray<uint16> CachedInstanceIDToChannel;
136
138 TMap<TTuple<int16, UE::MovieScene::FHierarchicalBlendTarget>, uint16> CachedHierarchicalBlendTargetChannels;
139
140 UPROPERTY()
142
144 bool bChannelsHaveBeenInvalidated;
145};
146
153UCLASS()
155{
156public:
158
160};
161
165UCLASS(MinimalAPI)
167{
168public:
169
171
173
178
179private:
180
181 MOVIESCENETRACKS_API virtual void OnSchedulePersistentTasks(UE::MovieScene::IEntitySystemScheduler* TaskScheduler) override;
183 MOVIESCENETRACKS_API virtual bool IsRelevantImpl(UMovieSceneEntitySystemLinker* InLinker) const override;
184 MOVIESCENETRACKS_API virtual void OnLink() override final;
185 MOVIESCENETRACKS_API virtual void OnUnlink() override final;
186
187private:
188
190 UE::MovieScene::FHierarchicalEasingChannelBuffer PreAllocatedComputationData;
191};
192
@ INDEX_NONE
Definition CoreMiscDefines.h:150
FPlatformTypes::int16 int16
A 16-bit signed integer.
Definition Platform.h:1123
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
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 UCLASS(...)
Definition ObjectMacros.h:776
uint8_t uint8
Definition binka_ue_file_header.h:8
uint16_t uint16
Definition binka_ue_file_header.h:7
Definition UObjectGlobals.h:1292
Definition MovieScene.Build.cs:6
Definition Array.h:670
Definition UnrealString.h.inl:34
Definition SparseArray.h:524
Definition IMovieSceneTaskScheduler.h:162
Definition MovieSceneEntityInstantiatorSystem.h:22
Definition MovieSceneEntitySystemLinker.h:113
Definition MovieSceneEntitySystem.h:62
Definition MovieSceneEvalTimeSystem.h:29
Definition WeightAndEasingEvaluatorSystem.h:109
Definition Object.h:95
Definition WeightAndEasingEvaluatorSystem.h:167
Definition ConstraintsManager.h:14
EHierarchicalBlendMode
Definition WeightAndEasingEvaluatorSystem.h:43
Definition AdvancedWidgetsModule.cpp:13
Definition MovieSceneSequenceHierarchy.h:43
Definition ObjectPtr.h:488
Definition Tuple.h:652
Definition WeightAndEasingEvaluatorSystem.h:89
uint16 AddBaseChannel(const FHierarchicalEasingChannelData &InChannelData)
Definition WeightAndEasingEvaluatorSystem.cpp:67
void Reset()
Definition WeightAndEasingEvaluatorSystem.cpp:88
void ResetBlendTargets()
Definition WeightAndEasingEvaluatorSystem.cpp:94
uint16 AddBlendTargetChannel(const FHierarchicalEasingChannelData &InChannelData)
Definition WeightAndEasingEvaluatorSystem.cpp:76
int32 BlendTargetStartIndex
Definition WeightAndEasingEvaluatorSystem.h:99
bool IsEmpty() const
Definition WeightAndEasingEvaluatorSystem.cpp:62
TArray< FHierarchicalEasingChannelData > Channels
Definition WeightAndEasingEvaluatorSystem.h:98
Definition WeightAndEasingEvaluatorSystem.h:64
double FinalResult
Definition WeightAndEasingEvaluatorSystem.h:66
EHierarchicalBlendMode BlendMode
Definition WeightAndEasingEvaluatorSystem.h:85
double UnaccumulatedResult
Definition WeightAndEasingEvaluatorSystem.h:68
uint16 ResultChannel
Definition WeightAndEasingEvaluatorSystem.h:73
uint16 ParentChannel
Definition WeightAndEasingEvaluatorSystem.h:71
int16 HBias
Definition WeightAndEasingEvaluatorSystem.h:76
Definition MovieSceneSystemTaskDependencies.h:98
Definition MovieSceneSystemTaskDependencies.h:29