UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MaterialExpressionCustom.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3
4#pragma once
5
6#include "CoreMinimal.h"
9#include "MaterialValueType.h"
11#include "MaterialExpressionCustom.generated.h"
12
14
15UENUM()
25
26USTRUCT()
28{
30
31 UPROPERTY(EditAnywhere, Category=CustomInput)
32 FName InputName;
33
34 UPROPERTY()
36};
37
38USTRUCT()
40{
42
43 UPROPERTY(EditAnywhere, Category = CustomOutput)
44 FName OutputName;
45
46 UPROPERTY(EditAnywhere, Category = CustomOutput)
48};
49
50USTRUCT()
52{
54
55 UPROPERTY(EditAnywhere, Category = CustomInput)
56 FString DefineName;
57
58 UPROPERTY(EditAnywhere, Category = CustomInput)
59 FString DefineValue;
60};
61
64{
66
67 UPROPERTY(EditAnywhere, Category=MaterialExpressionCustom, meta=(MultiLine=true))
68 FString Code;
69
70 UPROPERTY(EditAnywhere, Category=MaterialExpressionCustom)
72
73 UPROPERTY(EditAnywhere, Category=MaterialExpressionCustom)
74 FString Description;
75
76 UPROPERTY(EditAnywhere, Category=MaterialExpressionCustom)
78
79 UPROPERTY(EditAnywhere, Category = MaterialExpressionCustom)
80 TArray<struct FCustomOutput> AdditionalOutputs;
81
82 UPROPERTY(EditAnywhere, Category=MaterialExpressionCustom)
83 TArray<struct FCustomDefine> AdditionalDefines;
84
85 UPROPERTY(EditAnywhere, Category=MaterialExpressionCustom)
86 TArray<FString> IncludeFilePaths;
87
88 UPROPERTY(VisibleAnywhere, Category=MaterialExpressionCustom)
89 bool ShowCode;
90
91 //~ Begin UObject Interface.
92#if WITH_EDITOR
93 virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override;
95#endif // WITH_EDITOR
96 virtual void Serialize(FStructuredArchive::FRecord Record) override;
97 //~ End UObject Interface.
98
99 //~ Begin UMaterialExpression Interface
100#if WITH_EDITOR
101 virtual void Build(MIR::FEmitter& Emitter) override;
102 virtual int32 Compile(class FMaterialCompiler* Compiler, int32 OutputIndex) override;
103 virtual void GetCaption(TArray<FString>& OutCaptions) const override;
104 virtual FText GetCreationName() const override { return FText::FromString(TEXT("Custom")); }
106 virtual FExpressionInput* GetInput(int32 InputIndex) override;
107 virtual FName GetInputName(int32 InputIndex) const override;
108 virtual EMaterialValueType GetInputValueType(int32 InputIndex) override {return MCT_Unknown;}
109 virtual EMaterialValueType GetOutputValueType(int32 OutputIndex) override;
110 virtual bool IsResultMaterialAttributes(int32 OutputIndex) override;
111 virtual void GetIncludeFilePaths(TSet<FString>& OutIncludeFilePaths) const override;
112#endif // WITH_EDITOR
113 //~ End UMaterialExpression Interface
114};
115
116
117
#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
ECustomMaterialOutputType
Definition MaterialExpressionCustom.h:17
@ CMOT_Float4
Definition MaterialExpressionCustom.h:21
@ CMOT_Float1
Definition MaterialExpressionCustom.h:18
@ CMOT_Float2
Definition MaterialExpressionCustom.h:19
@ CMOT_Float3
Definition MaterialExpressionCustom.h:20
@ CMOT_MaterialAttributes
Definition MaterialExpressionCustom.h:22
@ CMOT_MAX
Definition MaterialExpressionCustom.h:23
EMaterialValueType
Definition MaterialValueType.h:15
@ MCT_Unknown
Definition MaterialValueType.h:36
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#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
#define GENERATED_USTRUCT_BODY(...)
Definition ObjectMacros.h:767
Definition MaterialCompiler.h:109
Definition NameTypes.h:617
Definition StructuredArchiveSlots.h:144
Definition Text.h:385
static CORE_API FText FromString(const ANSICHAR *String)
Definition Text.cpp:1081
Definition ArrayView.h:139
Definition Array.h:670
Definition EnumAsByte.h:22
Definition MaterialExpressionCustom.h:64
Definition MaterialExpression.h:150
Definition MaterialExpressionCustom.h:52
Definition MaterialExpressionCustom.h:28
Definition MaterialExpressionCustom.h:40
Definition MaterialExpressionIO.h:23
Definition UnrealType.h:6865