UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ParticleModuleTypeDataMesh.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"
8#include "Math/RandomStream.h"
12#include "ParticleModuleTypeDataMesh.generated.h"
13
15class UParticleSystemComponent;
17class UStaticMesh;
18
19UENUM()
21{
22 PSMA_MeshFaceCameraWithRoll UMETA(DisplayName="Face Camera With Roll"),
23 PSMA_MeshFaceCameraWithSpin UMETA(DisplayName="Face Camera With Spin"),
24 PSMA_MeshFaceCameraWithLockedAxis UMETA(DisplayName="Face Camera With Locked-Axis"),
26};
27
28UENUM()
30{
31 CameraFacing_NoneUP UMETA(DisplayName="None"),
32 CameraFacing_ZUp UMETA(DisplayName="Z Up"),
33 CameraFacing_NegativeZUp UMETA(DisplayName="-Z Up"),
34 CameraFacing_YUp UMETA(DisplayName="Y Up"),
35 CameraFacing_NegativeYUp UMETA(DisplayName="-Y Up"),
37};
38
39UENUM()
41{
42 XAxisFacing_NoUp UMETA(DisplayName="X Axis Facing : No Up"),
43 XAxisFacing_ZUp UMETA(DisplayName="X Axis Facing : Z Up"),
44 XAxisFacing_NegativeZUp UMETA(DisplayName="X Axis Facing : -Z Up"),
45 XAxisFacing_YUp UMETA(DisplayName="X Axis Facing : Y Up"),
46 XAxisFacing_NegativeYUp UMETA(DisplayName="X Axis Facing : -Y Up"),
47
48 LockedAxis_ZAxisFacing UMETA(DisplayName="Locked Axis : Z Axis Facing"),
49 LockedAxis_NegativeZAxisFacing UMETA(DisplayName="Locked Axis : -Z Axis Facing"),
50 LockedAxis_YAxisFacing UMETA(DisplayName="Locked Axis : Y Axis Facing"),
51 LockedAxis_NegativeYAxisFacing UMETA(DisplayName="Locked Axis : -Y Axis Facing"),
52
53 VelocityAligned_ZAxisFacing UMETA(DisplayName="Velocity Aligned : Z Axis Facing"),
54 VelocityAligned_NegativeZAxisFacing UMETA(DisplayName="Velocity Aligned : -Z Axis Facing"),
55 VelocityAligned_YAxisFacing UMETA(DisplayName="Velocity Aligned : Y Axis Facing"),
56 VelocityAligned_NegativeYAxisFacing UMETA(DisplayName="Velocity Aligned : -Y Axis Facing"),
57
59};
60
61UCLASS(editinlinenew, hidecategories=Object, MinimalAPI, meta=(DisplayName = "Mesh Data"))
63{
65
66
67 UPROPERTY(EditAnywhere, Category=Mesh)
69
72
74 UPROPERTY(EditAnywhere, Category = Mesh)
75 float LODSizeScale;
76
78 UPROPERTY(EditAnywhere, Category = Mesh)
79 uint8 bUseStaticMeshLODs : 1;
80
82 UPROPERTY()
83 uint8 CastShadows:1;
84
86 UPROPERTY()
87 uint8 DoCollisions:1;
88
101 UPROPERTY(EditAnywhere, Category=Mesh)
103
108 UPROPERTY(EditAnywhere, Category=Mesh)
109 uint8 bOverrideMaterial:1;
110
111 UPROPERTY(EditAnywhere, Category = Mesh)
112 uint8 bOverrideDefaultMotionBlurSettings : 1;
113
114 UPROPERTY(EditAnywhere, Category = Mesh, meta=(EditCondition="bOverrideDefaultMotionBlurSettings"))
115 uint8 bEnableMotionBlur : 1;
116
118 UPROPERTY(EditAnywhere, Category=Orientation)
119 FRawDistributionVector RollPitchYawRange;
120
134 UPROPERTY(EditAnywhere, Category=Orientation)
135 TEnumAsByte<EParticleAxisLock> AxisLockOption;
136
141 UPROPERTY(EditAnywhere, Category=CameraFacing)
142 uint8 bCameraFacing:1;
143
152 UPROPERTY()
153 TEnumAsByte<enum EMeshCameraFacingUpAxis> CameraFacingUpAxisOption_DEPRECATED;
154
175 UPROPERTY(EditAnywhere, Category=CameraFacing)
177
182 UPROPERTY(EditAnywhere, Category=CameraFacing)
183 uint8 bApplyParticleRotationAsSpin : 1;
184
189 UPROPERTY(EditAnywhere, Category=CameraFacing)
190 uint8 bFaceCameraDirectionRatherThanPosition : 1;
191
196 UPROPERTY(EditAnywhere, Category = Collision)
197 uint8 bCollisionsConsiderPartilceSize : 1;
198
199 static int32 GetCurrentDetailMode();
200 static int32 GetMeshParticleMotionBlurMinDetailMode();
201
202#if WITH_EDITOR
203 void OnMeshChanged();
204#endif
205
206 virtual void PostLoad();
207
208 //~ Begin UObject Interface
209 virtual bool IsPostLoadThreadSafe() const override;
210#if WITH_EDITOR
211 virtual void BeginDestroy() override;
212 virtual void PreEditChange(FProperty* PropertyThatWillChange) override;
213 virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override;
214#endif // WITH_EDITOR
215
216 virtual void Serialize(FArchive& Ar) override;
217
218 //~ End UObject Interface
219
220 void CreateDistribution();
221
222 //~ Begin UParticleModule Interface
223 virtual void SetToSensibleDefaults(UParticleEmitter* Owner) override;
224 //~ End UParticleModule Interface
225
226 //~ Begin UParticleModuleTypeDataBase Interface
228 virtual const FVertexFactoryType* GetVertexFactoryType() const override;
229 virtual void CollectPSOPrecacheData(const UParticleEmitter* Emitter, FPSOPrecacheParams& OutParams) override;
230 virtual bool SupportsSpecificScreenAlignmentFlags() const override { return true; }
231 virtual bool SupportsSubUV() const override { return true; }
232 virtual bool IsAMeshEmitter() const override { return true; }
233 virtual bool IsMotionBlurEnabled() const override
234 {
235 if (bOverrideDefaultMotionBlurSettings)
236 {
237 return bEnableMotionBlur;
238 }
239 else
240 {
241 return GetMeshParticleMotionBlurMinDetailMode() >= 0 && GetCurrentDetailMode() >= GetMeshParticleMotionBlurMinDetailMode();
242 }
243 }
244
245 //~ End UParticleModuleTypeDataBase Interface
246};
247
248
249
virtual bool IsPostLoadThreadSafe() const override
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_UCLASS_BODY(...)
Definition ObjectMacros.h:768
#define UCLASS(...)
Definition ObjectMacros.h:776
#define UENUM(...)
Definition ObjectMacros.h:749
EMeshCameraFacingUpAxis
Definition ParticleModuleTypeDataMesh.h:30
@ CameraFacing_MAX
Definition ParticleModuleTypeDataMesh.h:36
EMeshScreenAlignment
Definition ParticleModuleTypeDataMesh.h:21
@ PSMA_MAX
Definition ParticleModuleTypeDataMesh.h:25
EMeshCameraFacingOptions
Definition ParticleModuleTypeDataMesh.h:41
@ UMETA
Definition ParticleModuleTypeDataMesh.h:22
@ EMeshCameraFacingOptions_MAX
Definition ParticleModuleTypeDataMesh.h:58
bool IsMotionBlurEnabled(const FViewInfo &View)
Definition PostProcessMotionBlur.cpp:128
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition Archive.h:1208
Definition UnrealType.h:174
Definition VertexFactory.h:314
Definition ParticleEmitterInstanceOwner.h:29
Definition EnumAsByte.h:22
Definition ParticleEmitter.h:98
Definition ParticleModuleTypeDataBase.h:18
Definition ParticleModuleTypeDataMesh.h:63
Definition StaticMesh.h:593
virtual ENGINE_API void BeginDestroy() override
Definition StaticMesh.cpp:6020
Definition PSOPrecache.h:30
Definition ParticleEmitterInstances.h:226
Definition UnrealType.h:6865
Definition RandomStream.h:20
Definition DistributionVector.h:59
Definition ObjectPtr.h:488