UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MovieSceneMaterialTrack.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"
11#if WITH_EDITOR
12#include "Styling/SlateColor.h"
13#endif
14#include "MovieSceneMaterialTrack.generated.h"
15
16UENUM(BlueprintType)
18{
19 /* Empty/Uninitialized*/
20 Empty,
21 /* A material in one of the indexed slots on a primitive component*/
23 /* An overlay material on a mesh component*/
25 /* A decal material*/
27 /* Volumetric Cloud Material*/
29};
30
34USTRUCT(BlueprintType)
36{
38
39 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Sequencer|Material")
40 FName MaterialSlotName;
41
42 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Sequencer|Material")
43 int32 MaterialSlotIndex = 0;
44
45 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Sequencer|Material")
47
48 friend uint32 GetTypeHash(const FComponentMaterialInfo& In)
49 {
50 return GetTypeHash(In.MaterialSlotName) ^ ::GetTypeHash(In.MaterialSlotIndex) ^ ::GetTypeHash(In.MaterialType);
51 }
53 {
54 return A.MaterialSlotIndex == B.MaterialSlotIndex && A.MaterialSlotName == B.MaterialSlotName && A.MaterialType == B.MaterialType;
55 }
56
57 FString ToString() const
58 {
59 switch (MaterialType)
60 {
62 if (!MaterialSlotName.IsNone())
63 {
64 return FString::Printf(TEXT("Material Slot: %s"), *MaterialSlotName.ToString());
65 }
66 else
67 {
68 return FString::Printf(TEXT("Material Element %i"), MaterialSlotIndex);
69 }
70 break;
72 return TEXT("Overlay Material");
73 break;
75 return TEXT("Decal Material");
76 break;
77 }
78 return FString();
79 }
80};
81
85UCLASS(MinimalAPI)
88{
90
91public:
92
94
95 // UMovieSceneTrack interface
96
97 MOVIESCENETRACKS_API virtual bool SupportsType(TSubclassOf<UMovieSceneSection> SectionClass) const override;
98 MOVIESCENETRACKS_API virtual UMovieSceneSection* CreateNewSection() override;
99 MOVIESCENETRACKS_API virtual void RemoveAllAnimationData() override;
100 MOVIESCENETRACKS_API virtual bool HasSection(const UMovieSceneSection& Section) const override;
101 MOVIESCENETRACKS_API virtual void AddSection(UMovieSceneSection& Section) override;
102 MOVIESCENETRACKS_API virtual void RemoveSection(UMovieSceneSection& Section) override;
103 MOVIESCENETRACKS_API virtual void RemoveSectionAt(int32 SectionIndex) override;
104 MOVIESCENETRACKS_API virtual bool IsEmpty() const override;
105 MOVIESCENETRACKS_API virtual const TArray<UMovieSceneSection*>& GetAllSections() const override;
106 MOVIESCENETRACKS_API virtual bool SupportsMultipleRows() const override;
107 MOVIESCENETRACKS_API virtual void SetSectionToKey(UMovieSceneSection* Section) override;
108 MOVIESCENETRACKS_API virtual UMovieSceneSection* GetSectionToKey() const override;
109
110public:
111
119 MOVIESCENETRACKS_API void AddScalarParameterKey(FName ParameterName, FFrameNumber Time, float Value, EMovieSceneKeyInterpolation DefaultInterpolation = EMovieSceneKeyInterpolation::Auto);
120
129 MOVIESCENETRACKS_API void AddScalarParameterKey(FName ParameterName, FFrameNumber Time, int32 RowIndex, float Value, EMovieSceneKeyInterpolation DefaultInterpolation = EMovieSceneKeyInterpolation::Auto);
130
140 MOVIESCENETRACKS_API void AddScalarParameterKey(const FMaterialParameterInfo& ParameterInfo, FFrameNumber Time, float Value, const FString& InLayerName, const FString& InAssetName, EMovieSceneKeyInterpolation DefaultInterpolation = EMovieSceneKeyInterpolation::Auto);
141
152 MOVIESCENETRACKS_API void AddScalarParameterKey(const FMaterialParameterInfo& ParameterInfo, FFrameNumber Time, int32 RowIndex, float Value, const FString& InLayerName, const FString& InAssetName, EMovieSceneKeyInterpolation DefaultInterpolation = EMovieSceneKeyInterpolation::Auto);
153
161 MOVIESCENETRACKS_API void AddColorParameterKey(FName ParameterName, FFrameNumber Time, FLinearColor Value, EMovieSceneKeyInterpolation DefaultInterpolation = EMovieSceneKeyInterpolation::Auto);
162
171 MOVIESCENETRACKS_API void AddColorParameterKey(FName ParameterName, FFrameNumber Time, int32 RowIndex, FLinearColor Value, EMovieSceneKeyInterpolation DefaultInterpolation = EMovieSceneKeyInterpolation::Auto);
172
182 MOVIESCENETRACKS_API void AddColorParameterKey(const FMaterialParameterInfo& ParameterInfo, FFrameNumber Time, FLinearColor Value, const FString& InLayerName, const FString& InAssetName, EMovieSceneKeyInterpolation DefaultInterpolation = EMovieSceneKeyInterpolation::Auto);
183
194 MOVIESCENETRACKS_API void AddColorParameterKey(const FMaterialParameterInfo& ParameterInfo, FFrameNumber Time, int32 RowIndex, FLinearColor Value, const FString& InLayerName, const FString& InAssetName, EMovieSceneKeyInterpolation DefaultInterpolation = EMovieSceneKeyInterpolation::Auto);
195
207 MOVIESCENETRACKS_API void AddColorParameterKey(const FMaterialParameterInfo& ParameterInfo, FFrameNumber Time, int32 RowIndex, FLinearColor Value, const FString& InLayerName, const FString& InAssetName, const FParameterChannelNames& InChannelNames, EMovieSceneKeyInterpolation DefaultInterpolation = EMovieSceneKeyInterpolation::Auto);
208
209private:
210
212 UPROPERTY()
214
216 UPROPERTY()
218};
219
220
224UCLASS(MinimalAPI)
229{
231
232public:
233
234 /*~ IMovieSceneEntityProvider */
235 virtual void ImportEntityImpl(UMovieSceneEntitySystemLinker* EntityLinker, const FEntityImportParams& Params, FImportedEntity* OutImportedEntity) override;
237
238 /*~ IMovieSceneParameterSectionExtender */
240
241
242#if WITH_EDITORONLY_DATA
243 virtual FText GetDefaultDisplayName() const override;
244#endif
245public:
246
248 const FComponentMaterialInfo& GetMaterialInfo() const { return MaterialInfo; }
249
252 {
253 MaterialInfo = InMaterialInfo;
254 }
255
256#if WITH_EDITOR
258
259 // We override label color if material binding is broken/partially broken.
260 virtual FSlateColor GetLabelColor(const FMovieSceneLabelParams& LabelParams) const override;
261#endif
262
263
264#if WITH_EDITORONLY_DATA
265
266protected:
267 void PostLoad() override;
268
269private:
271 UPROPERTY(meta = (DeprecatedProperty, DeprecationMessage = "Use MaterialInfo instead."))
273
274#endif
275private:
277 UPROPERTY()
278 FComponentMaterialInfo MaterialInfo;
279
280};
#define TEXT(x)
Definition Platform.h:1272
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
EMovieSceneKeyInterpolation
Definition KeyParams.h:12
EComponentMaterialType
Definition MovieSceneMaterialTrack.h:18
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define GENERATED_UCLASS_BODY(...)
Definition ObjectMacros.h:768
#define UCLASS(...)
Definition ObjectMacros.h:776
#define UENUM(...)
Definition ObjectMacros.h:749
#define USTRUCT(...)
Definition ObjectMacros.h:746
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition NameTypes.h:617
Definition UObjectGlobals.h:1292
Definition Text.h:385
Definition IMovieSceneEntityProvider.h:122
Definition MovieSceneParameterSection.h:28
Definition Array.h:670
Definition Range.h:50
Definition SubclassOf.h:30
Definition MovieSceneMaterialTrack.h:229
void SetMaterialInfo(const FComponentMaterialInfo &InMaterialInfo)
Definition MovieSceneMaterialTrack.h:251
const FComponentMaterialInfo & GetMaterialInfo() const
Definition MovieSceneMaterialTrack.h:248
Definition MovieSceneEntitySystemLinker.h:113
Definition MovieSceneMaterialTrack.h:88
Definition MovieSceneNameableTrack.h:24
Definition MovieSceneParameterSection.h:340
Definition MovieSceneSection.h:243
Definition MovieSceneMaterialTrack.h:36
FString ToString() const
Definition MovieSceneMaterialTrack.h:57
friend bool operator==(const FComponentMaterialInfo &A, const FComponentMaterialInfo &B)
Definition MovieSceneMaterialTrack.h:52
Definition FrameNumber.h:18
Definition Color.h:48
Definition MaterialParameters.h:33
Definition MovieSceneEvaluationField.h:328
Definition MovieSceneEvaluationField.h:109
Definition MaterialParameters.h:279
Definition SlateColor.h:42
Definition ObjectPtr.h:488
Definition IMovieSceneEntityProvider.h:93
Definition IMovieSceneEntityProvider.h:47