UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SkeletalMeshLODSettings.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 "UObject/Object.h"
10#include "DataAsset.h"
13#include "SkeletalMeshLODSettings.generated.h"
14
15UENUM()
17{
19 Remove UMETA(DisplayName = "Remove the joints specified and children"),
20
22 Keep UMETA(DisplayName = "Only keep the joints specified and parents"),
23
26};
27
28USTRUCT()
30{
32
33 /*
34 * Do not include the joint specified
35 *
36 * This option will work differently based on EBoneFilterActionOption
37 * If EBoneFilterActionOption is Remove, it will exclude itself and only remove children
38 * For example, if you specify hand, it will only include children of hand(all fingers),
39 * not the hand itself if this is true
40 *
41 * But if the EBoneFilterActionOption is Keep, it will exclude itself but include all parents of it
42 * You can't remove joint without children removed, and you can't keep without your parents
43 */
44 UPROPERTY(EditAnywhere, Category = FBoneFilter)
45 bool bExcludeSelf = false;
46
47 /* Name of Bone Name */
48 UPROPERTY(EditAnywhere, Category = FBoneFilter)
49 FName BoneName;
50};
51
52USTRUCT()
54{
56
58 : ScreenSize(0.3f)
59 , LODHysteresis(0.0f)
60 , BoneFilterActionOption(EBoneFilterActionOption::Remove)
61 , WeightOfPrioritization(1.f)
62 , BakePose(nullptr)
63 {}
64
66 ENGINE_API FSkeletalMeshOptimizationSettings GetReductionSettings() const;
67
69 UE_DEPRECATED(4.20, "Please use GetReductionSettings instead")
71 {
72 return GetReductionSettings();
73 }
74
76 ENGINE_API const float GetScreenSize() const;
77
80
82 UPROPERTY(EditAnywhere, Category = LODSetting)
84
86 UPROPERTY(EditAnywhere, Category = LODSetting)
87 float LODHysteresis;
88
90 UPROPERTY(EditAnywhere, Category = Reduction)
91 EBoneFilterActionOption BoneFilterActionOption;
92
94 UPROPERTY(EditAnywhere, Category = Reduction)
96
98 UPROPERTY(EditAnywhere, Category = Reduction)
99 TArray<FName> BonesToPrioritize;
100
102 UPROPERTY(EditAnywhere, Category = Reduction)
103 TArray<int32> SectionsToPrioritize;
104
106 UPROPERTY(EditAnywhere, Category = Reduction, meta = (UIMin = "0.0", ClampMin = "0.0"))
107 float WeightOfPrioritization;
108
110 UPROPERTY(EditAnywhere, Category = Reduction)
111 TObjectPtr<class UAnimSequence> BakePose;
112
114 UPROPERTY(EditAnywhere, Category = Reduction)
116
118 UPROPERTY(EditAnywhere, Category = LODSetting)
119 bool bAllowMeshDeformer = true;
120};
121
122UCLASS(config = Engine, defaultconfig, BlueprintType, MinimalAPI)
124{
126protected:
128 UPROPERTY(globalconfig, EditAnywhere, Category = LODGroups, meta = (DisplayName = "Quality Level Minimum LOD"))
130
132 UPROPERTY(globalconfig, EditAnywhere, Category=LODGroups, meta = (DisplayName = "Minimum LOD"))
134
136 UPROPERTY(globalconfig, EditAnywhere, Category = LODGroups)
138
140 UPROPERTY(globalconfig, EditAnywhere, Category=LODGroups)
142
144 UPROPERTY(globalconfig, EditAnywhere, Category=LODGroups, meta=(DisplayName="Stream LODs", EditCondition="bOverrideLODStreamingSettings"))
146
148 UPROPERTY(globalconfig, EditAnywhere, Category=LODGroups, meta=(EditCondition="bOverrideLODStreamingSettings"))
150
152 UPROPERTY(globalconfig, EditAnywhere, Category=LODGroups, meta=(EditCondition="bOverrideLODStreamingSettings"))
154
155 UPROPERTY(globalconfig, EditAnywhere, Category=LODGroups)
157
159public:
162
164 const bool HasValidSettings() const
165 {
166 return LODGroups.Num() > 0;
167 }
168
171
172 /*
173 * Set InMesh->LODInfo with this LOD Settings for LODIndex
174 * return true if succeed
175 */
177
178 /*
179 * Set InMesh->LODInfo with this LOD Settings
180 * return # of settings that are set. Return N for 0-(N-1).
181 */
183 /*
184 * Set this LOD Settings from InMesh->LODInfo
185 * return # of settings that are set. Return N for 0-(N-1).
186 */
188
189 // BEGIN UObject interface
190#if WITH_EDITOR
191 virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override;
192#endif// WITH_EDITOR
193 virtual void Serialize(FArchive& Ar) override;
194 // END UObject interface
195};
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
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
return true
Definition ExternalRpcRegistry.cpp:601
const bool
Definition NetworkReplayStreaming.h:178
#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
EBoneFilterActionOption
Definition SkeletalMeshLODSettings.h:17
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition Engine.Build.cs:7
Definition Archive.h:1208
Definition NameTypes.h:617
Definition Array.h:670
UE_REWRITE SizeType Num() const
Definition Array.h:1144
Definition AnimSequence.h:203
Definition DataAsset.h:21
Definition SkeletalMeshLODSettings.h:124
ENGINE_API bool SetLODSettingsToMesh(USkeletalMesh *InMesh, int32 LODIndex) const
Definition SkeletalMeshLODSettings.cpp:51
FPerQualityLevelInt MinQualityLevelLod
Definition SkeletalMeshLODSettings.h:129
FPerPlatformBool bSupportLODStreaming
Definition SkeletalMeshLODSettings.h:145
TArray< FSkeletalMeshLODGroupSettings > LODGroups
Definition SkeletalMeshLODSettings.h:156
ENGINE_API int32 SetLODSettingsFromMesh(USkeletalMesh *InMesh)
Definition SkeletalMeshLODSettings.cpp:228
ENGINE_API int32 GetNumberOfSettings() const
Definition SkeletalMeshLODSettings.cpp:46
const bool HasValidSettings() const
Definition SkeletalMeshLODSettings.h:164
bool bOverrideLODStreamingSettings
Definition SkeletalMeshLODSettings.h:141
friend class FSkeletalMeshReductionSettingsDetails
Definition SkeletalMeshLODSettings.h:158
ENGINE_API const FSkeletalMeshLODGroupSettings & GetSettingsForLODLevel(const int32 LODIndex) const
Definition SkeletalMeshLODSettings.cpp:30
Definition SkeletalMesh.h:440
@ false
Definition radaudio_common.h:23
Definition SkeletalMeshLODSettings.h:30
Definition PerPlatformProperties.h:384
Definition PerPlatformProperties.h:304
Definition PerPlatformProperties.h:211
Definition PerQualityLevelProperties.h:233
Definition UnrealType.h:6865
Definition SkeletalMeshLODSettings.h:54
Definition SkeletalMeshReductionSettings.h:59
Definition ObjectPtr.h:488