This commit is contained in:
2025-04-18 10:46:49 +08:00
parent 88536f22da
commit 2915f46389
17 changed files with 171 additions and 105 deletions

View File

@@ -38,7 +38,8 @@ public class FLESHEditor : ModuleRules
"SlateCore",
"UnrealEd",
"PropertyEditor",
"EditorStyle",
"ApplicationCore",
"AppFramework",
"LevelEditor",
"GeometryCore",
"GeometryFramework",

View File

@@ -4,7 +4,7 @@
#include "Modules/ModuleManager.h"
#include "IDetailsView.h"
#include "Widgets/Layout/SBorder.h"
#include "EditorStyleSet.h"
#include "Styling/AppStyle.h"
#include "Engine/SkeletalMesh.h"
#include "Framework/Commands/UICommandList.h"
#include "Framework/MultiBox/MultiBoxBuilder.h"
@@ -178,7 +178,7 @@ void FDismembermentEditor::CreateEditorToolbar()
NAME_None,
FText::FromString("Boolean Cut"),
FText::FromString("Perform a boolean cut operation"),
FSlateIcon(FEditorStyle::GetStyleSetName(), "ClassIcon.CurveBase"),
FSlateIcon(FAppStyle::GetAppStyleSetName(), "ClassIcon.CurveBase"),
EUserInterfaceActionType::Button
);
@@ -187,7 +187,7 @@ void FDismembermentEditor::CreateEditorToolbar()
NAME_None,
FText::FromString("Add Layer"),
FText::FromString("Add a new anatomical layer"),
FSlateIcon(FEditorStyle::GetStyleSetName(), "ClassIcon.Layer"),
FSlateIcon(FAppStyle::GetAppStyleSetName(), "ClassIcon.Layer"),
EUserInterfaceActionType::Button
);
@@ -196,7 +196,7 @@ void FDismembermentEditor::CreateEditorToolbar()
NAME_None,
FText::FromString("Preview"),
FText::FromString("Preview the dismemberment effects"),
FSlateIcon(FEditorStyle::GetStyleSetName(), "ClassIcon.ParticleSystem"),
FSlateIcon(FAppStyle::GetAppStyleSetName(), "ClassIcon.ParticleSystem"),
EUserInterfaceActionType::Button
);
@@ -205,7 +205,7 @@ void FDismembermentEditor::CreateEditorToolbar()
NAME_None,
FText::FromString("Save"),
FText::FromString("Save the dismemberment setup"),
FSlateIcon(FEditorStyle::GetStyleSetName(), "AssetEditor.SaveAsset"),
FSlateIcon(FAppStyle::GetAppStyleSetName(), "AssetEditor.SaveAsset"),
EUserInterfaceActionType::Button
);
}
@@ -227,22 +227,22 @@ void FDismembermentEditor::RegisterTabSpawners(const TSharedRef<FTabManager>& In
InTabManager->RegisterTabSpawner(ViewportTabId, FOnSpawnTab::CreateSP(this, &FDismembermentEditor::SpawnTab_Viewport))
.SetDisplayName(FText::FromString("Viewport"))
.SetGroup(WorkspaceMenuCategory.ToSharedRef())
.SetIcon(FSlateIcon(FEditorStyle::GetStyleSetName(), "LevelEditor.Tabs.Viewports"));
.SetIcon(FSlateIcon(FAppStyle::GetAppStyleSetName(), "LevelEditor.Tabs.Viewports"));
InTabManager->RegisterTabSpawner(DetailsTabId, FOnSpawnTab::CreateSP(this, &FDismembermentEditor::SpawnTab_Details))
.SetDisplayName(FText::FromString("Details"))
.SetGroup(WorkspaceMenuCategory.ToSharedRef())
.SetIcon(FSlateIcon(FEditorStyle::GetStyleSetName(), "LevelEditor.Tabs.Details"));
.SetIcon(FSlateIcon(FAppStyle::GetAppStyleSetName(), "LevelEditor.Tabs.Details"));
InTabManager->RegisterTabSpawner(LayerSystemTabId, FOnSpawnTab::CreateSP(this, &FDismembermentEditor::SpawnTab_LayerSystem))
.SetDisplayName(FText::FromString("Layer System"))
.SetGroup(WorkspaceMenuCategory.ToSharedRef())
.SetIcon(FSlateIcon(FEditorStyle::GetStyleSetName(), "ClassIcon.Layer"));
.SetIcon(FSlateIcon(FAppStyle::GetAppStyleSetName(), "ClassIcon.Layer"));
InTabManager->RegisterTabSpawner(PhysicsSettingsTabId, FOnSpawnTab::CreateSP(this, &FDismembermentEditor::SpawnTab_PhysicsSettings))
.SetDisplayName(FText::FromString("Physics Settings"))
.SetGroup(WorkspaceMenuCategory.ToSharedRef())
.SetIcon(FSlateIcon(FEditorStyle::GetStyleSetName(), "ClassIcon.PhysicsAsset"));
.SetIcon(FSlateIcon(FAppStyle::GetAppStyleSetName(), "ClassIcon.PhysicsAsset"));
}
// Unregister tab spawners
@@ -263,7 +263,7 @@ TSharedRef<SDockTab> FDismembermentEditor::SpawnTab_Viewport(const FSpawnTabArgs
{
// Create the viewport widget
ViewportWidget = SNew(SBorder)
.BorderImage(FEditorStyle::GetBrush("ToolPanel.GroupBorder"))
.BorderImage(FAppStyle::GetBrush("ToolPanel.GroupBorder"))
.Padding(FMargin(4.0f))
[
SNew(STextBlock)
@@ -307,7 +307,7 @@ TSharedRef<SDockTab> FDismembermentEditor::SpawnTab_LayerSystem(const FSpawnTabA
{
// Create the layer system widget
LayerSystemWidget = SNew(SBorder)
.BorderImage(FEditorStyle::GetBrush("ToolPanel.GroupBorder"))
.BorderImage(FAppStyle::GetBrush("ToolPanel.GroupBorder"))
.Padding(FMargin(4.0f))
[
SNew(STextBlock)
@@ -327,7 +327,7 @@ TSharedRef<SDockTab> FDismembermentEditor::SpawnTab_PhysicsSettings(const FSpawn
{
// Create the physics settings widget
PhysicsSettingsWidget = SNew(SBorder)
.BorderImage(FEditorStyle::GetBrush("ToolPanel.GroupBorder"))
.BorderImage(FAppStyle::GetBrush("ToolPanel.GroupBorder"))
.Padding(FMargin(4.0f))
[
SNew(STextBlock)

View File

@@ -213,7 +213,7 @@ bool UDismembermentPreviewManager::PreviewCutNode(TObjectPtr<UDismembermentGraph
// Store the cut transform for later use
FTransform CutTransform;
CutTransform.SetLocation(CutLocation);
CutTransform.SetRotation(FQuat::MakeFromX(CutDirection));
CutTransform.SetRotation(FQuat(FRotationMatrix::MakeFromX(CutDirection)));
CutTransform.SetScale3D(FVector(CutWidth, CutDepth, 1.0f));
PreviewCutTransforms.Add(CutTransform);
@@ -431,7 +431,7 @@ bool UDismembermentPreviewManager::PreviewWoundNode(TObjectPtr<UDismembermentGra
TObjectPtr<UNiagaraComponent> WoundEffectComponent = nullptr;
if (WoundEffect)
{
WoundEffectComponent = UNiagaraComponent::SpawnSystemAttached(
WoundEffectComponent = UNiagaraFunctionLibrary::SpawnSystemAttached(
WoundEffect,
TargetSkeletalMesh,
NAME_None,
@@ -544,7 +544,7 @@ TObjectPtr<UNiagaraComponent> UDismembermentPreviewManager::CreatePreviewBloodEf
}
// Create a Niagara component for the blood effect
TObjectPtr<UNiagaraComponent> BloodEffectComponent = UNiagaraComponent::SpawnSystemAttached(
TObjectPtr<UNiagaraComponent> BloodEffectComponent = UNiagaraFunctionLibrary::SpawnSystemAttached(
BloodEffect,
TargetSkeletalMesh,
NAME_None,

View File

@@ -34,7 +34,7 @@ void SDismembermentGraphNode::UpdateGraphNode()
.VAlign(VAlign_Center)
[
SNew(SBorder)
.BorderImage(FEditorStyle::GetBrush("Graph.StateNode.Body"))
.BorderImage(FAppStyle::GetBrush("Graph.StateNode.Body"))
.BorderBackgroundColor(this, &SDismembermentGraphNode::GetNodeColor)
.HAlign(HAlign_Fill)
.VAlign(VAlign_Fill)
@@ -52,7 +52,7 @@ void SDismembermentGraphNode::UpdateGraphNode()
.AutoHeight()
[
SNew(SBorder)
.BorderImage(FEditorStyle::GetBrush("Graph.StateNode.ColorSpill"))
.BorderImage(FAppStyle::GetBrush("Graph.StateNode.ColorSpill"))
.BorderBackgroundColor(this, &SDismembermentGraphNode::GetNodeTitleColor)
.HAlign(HAlign_Fill)
.VAlign(VAlign_Center)
@@ -65,7 +65,7 @@ void SDismembermentGraphNode::UpdateGraphNode()
[
SNew(STextBlock)
.Text(this, &SDismembermentGraphNode::GetNodeTitle)
.TextStyle(FEditorStyle::Get(), "Graph.StateNode.NodeTitle")
.TextStyle(FAppStyle::Get(), "Graph.StateNode.NodeTitle")
.Margin(FMargin(0.0f, 0.0f, 4.0f, 0.0f))
]
// Node category
@@ -74,7 +74,7 @@ void SDismembermentGraphNode::UpdateGraphNode()
[
SNew(STextBlock)
.Text(this, &SDismembermentGraphNode::GetNodeCategory)
.TextStyle(FEditorStyle::Get(), "Graph.StateNode.NodeTitle")
.TextStyle(FAppStyle::Get(), "Graph.StateNode.NodeTitle")
.ColorAndOpacity(FLinearColor(0.8f, 0.8f, 0.8f))
.Margin(FMargin(4.0f, 0.0f, 0.0f, 0.0f))
]
@@ -86,7 +86,7 @@ void SDismembermentGraphNode::UpdateGraphNode()
.AutoHeight()
[
SNew(SBorder)
.BorderImage(FEditorStyle::GetBrush("NoBorder"))
.BorderImage(FAppStyle::GetBrush("NoBorder"))
.HAlign(HAlign_Fill)
.VAlign(VAlign_Fill)
.Padding(FMargin(10.0f, 0.0f))
@@ -260,7 +260,7 @@ TSharedRef<SWidget> SDismembermentGraphNode::GetNodeTitleWidget()
return SNew(STextBlock)
.Text(DismembermentNode->GetNodeTitle(ENodeTitleType::FullTitle))
.TextStyle(FEditorStyle::Get(), "Graph.StateNode.NodeTitle");
.TextStyle(FAppStyle::Get(), "Graph.StateNode.NodeTitle");
}
TSharedRef<SWidget> SDismembermentGraphNode::GetNodeBodyWidget()
@@ -287,7 +287,7 @@ TSharedRef<SWidget> SDismembermentGraphNode::GetNodePreviewWidget()
.VAlign(VAlign_Center)
[
SNew(SBorder)
.BorderImage(FEditorStyle::GetBrush("Graph.StateNode.Body"))
.BorderImage(FAppStyle::GetBrush("Graph.StateNode.Body"))
.BorderBackgroundColor(FLinearColor(0.1f, 0.1f, 0.1f, 0.5f))
.HAlign(HAlign_Center)
.VAlign(VAlign_Center)

View File

@@ -18,7 +18,7 @@ class ADismembermentPreviewActor : public AActor
{
public:
ADismembermentPreviewActor(const FObjectInitializer& ObjectInitializer)
: Super(ObjectInitializer)
: AActor(ObjectInitializer)
{
// Create a skeletal mesh component
SkeletalMeshComponent = CreateDefaultSubobject<USkeletalMeshComponent>(TEXT("SkeletalMeshComponent"));
@@ -60,11 +60,12 @@ void SDismembermentPreviewViewport::Construct(const FArguments& InArgs)
if (ProfileIndex != INDEX_NONE)
{
Settings->Profiles[ProfileIndex].bRotateLightingRig = false;
PreviewScene->SetLightDirection(Settings->Profiles[ProfileIndex].LightingRigRotation);
PreviewScene->SetSkyBrightness(Settings->Profiles[ProfileIndex].EnvironmentCubeMapBrightness);
PreviewScene->SetLightColor(Settings->Profiles[ProfileIndex].LightColor);
PreviewScene->SetLightIntensity(Settings->Profiles[ProfileIndex].LightBrightness);
PreviewScene->SetEnvironmentCubeMap(Settings->Profiles[ProfileIndex].EnvironmentCubeMap);
PreviewScene->SetLightDirection(FRotator(Settings->Profiles[ProfileIndex].LightingRigRotation, 0, 0));
// The following methods may not exist in UE5.5.4, temporarily commented out
// PreviewScene->SetSkyBrightness(Settings->Profiles[ProfileIndex].EnvironmentCubeMapBrightness);
// PreviewScene->SetLightColor(Settings->Profiles[ProfileIndex].LightColor);
// PreviewScene->SetLightIntensity(Settings->Profiles[ProfileIndex].LightBrightness);
// PreviewScene->SetEnvironmentCubeMap(Settings->Profiles[ProfileIndex].EnvironmentCubeMap);
}
// Create the preview actor
@@ -79,7 +80,11 @@ SDismembermentPreviewViewport::~SDismembermentPreviewViewport()
// Clean up the preview scene
if (PreviewScene.IsValid())
{
PreviewScene->RemoveComponent(PreviewActor);
// Cannot remove Actor directly, need to remove the Actor's root component
if (PreviewActor && PreviewActor->GetRootComponent())
{
PreviewScene->RemoveComponent(PreviewActor->GetRootComponent());
}
PreviewScene.Reset();
}
@@ -193,10 +198,11 @@ TSharedRef<FEditorViewportClient> SDismembermentPreviewViewport::MakeEditorViewp
ViewportClient->EngineShowFlags.SetVertexColors(false);
ViewportClient->EngineShowFlags.SetLightComplexity(false);
ViewportClient->EngineShowFlags.SetShaderComplexity(false);
ViewportClient->EngineShowFlags.SetStaticMeshLODColoration(false);
// The following methods may not exist in UE5.5.4, temporarily commented out
// ViewportClient->EngineShowFlags.SetStaticMeshLODColoration(false);
ViewportClient->EngineShowFlags.SetLightMapDensity(false);
ViewportClient->EngineShowFlags.SetLightInfluences(false);
ViewportClient->EngineShowFlags.SetOptimizeVizibility(false);
// ViewportClient->EngineShowFlags.SetOptimizeVizibility(false);
ViewportClient->EngineShowFlags.SetTextRender(true);
ViewportClient->EngineShowFlags.SetTestImage(false);
ViewportClient->EngineShowFlags.SetVisualizeLightCulling(false);
@@ -208,7 +214,8 @@ TSharedRef<FEditorViewportClient> SDismembermentPreviewViewport::MakeEditorViewp
ViewportClient->EngineShowFlags.SetHitProxies(false);
ViewportClient->EngineShowFlags.SetGBufferHints(false);
ViewportClient->EngineShowFlags.SetVisualizeShadingModels(false);
ViewportClient->EngineShowFlags.SetVisualizeAdaptiveDOF(false);
// The following methods may not exist in UE5.5.4, temporarily commented out
// ViewportClient->EngineShowFlags.SetVisualizeAdaptiveDOF(false);
ViewportClient->EngineShowFlags.SetVisualizeSSR(false);
ViewportClient->EngineShowFlags.SetVisualizeSSS(false);
ViewportClient->EngineShowFlags.SetVolumetricLightmap(true);
@@ -219,8 +226,8 @@ TSharedRef<FEditorViewportClient> SDismembermentPreviewViewport::MakeEditorViewp
ViewportClient->EngineShowFlags.SetTonemapper(true);
ViewportClient->EngineShowFlags.SetLumenReflections(true);
ViewportClient->EngineShowFlags.SetLumenGlobalIllumination(true);
ViewportClient->EngineShowFlags.SetVirtualShadowMaps(true);
ViewportClient->EngineShowFlags.SetNanite(true);
// ViewportClient->EngineShowFlags.SetVirtualShadowMaps(true);
// ViewportClient->EngineShowFlags.SetNanite(true);
return ViewportClient.ToSharedRef();
}
@@ -295,8 +302,14 @@ SDismembermentPreviewViewportClient::SDismembermentPreviewViewportClient(FPrevie
{
// Set up the viewport client
SetRealtime(true);
// In UE5.5.4, these variables may no longer be members of FEditorViewportClient
// We only keep the necessary settings, others are commented out
bSetListenerPosition = false;
bShouldCheckHitProxy = true;
// The following settings may no longer be supported in UE5.5.4, temporarily commented out
/*
bShowGrid = false;
bDisableInput = false;
bAllowMatineePreview = false;
@@ -334,81 +347,29 @@ SDismembermentPreviewViewportClient::SDismembermentPreviewViewportClient(FPrevie
bDrawPreviewShadowsInGame = false;
bEnableDirectLightMap = true;
bEnableIndirectLightMap = true;
bEnableColorizeDistancefieldLightingMask = false;
bEnableColorizeDistanceFieldLightingMaskGrayscale = false;
bEnableColorizeDistanceFieldLightingMaskColor = false;
bEnableColorizeDistanceFieldOcclusion = false;
bEnableColorizeDistanceFieldOcclusionGrayscale = false;
bEnableColorizeDistanceFieldOcclusionColor = false;
bEnableColorizeDistanceFieldLightingMaskGrayscale = false;
bEnableColorizeDistanceFieldLightingMaskColor = false;
bEnableColorizeDistanceFieldOcclusionGrayscale = false;
bEnableColorizeDistanceFieldOcclusionColor = false;
bEnableColorizeDistanceFieldLightingMask = false;
bEnableColorizeDistanceFieldOcclusion = false;
bEnableColorizeDistanceFieldGradient = false;
bEnableColorizeDistanceFieldGradientGrayscale = false;
bEnableColorizeDistanceFieldGradientColor = false;
bEnableColorizeDistanceFieldGradientGrayscale = false;
bEnableColorizeDistanceFieldGradientColor = false;
bEnableColorizeDistanceFieldGradient = false;
bEnableColorizeDistanceField = false;
bEnableColorizeDistanceFieldGrayscale = false;
bEnableColorizeDistanceFieldColor = false;
bEnableColorizeDistanceFieldGrayscale = false;
bEnableColorizeDistanceFieldColor = false;
bEnableColorizeDistanceField = false;
bEnableColorizeDistanceFieldMeshSDF = false;
bEnableColorizeDistanceFieldMeshSDFGrayscale = false;
bEnableColorizeDistanceFieldMeshSDFColor = false;
bEnableColorizeDistanceFieldMeshSDFGrayscale = false;
bEnableColorizeDistanceFieldMeshSDFColor = false;
bEnableColorizeDistanceFieldMeshSDF = false;
bEnableColorizeVolumetricLightmap = false;
bEnableColorizeVolumetricLightmapDensity = false;
bEnableColorizeVolumetricLightmapSamples = false;
bEnableColorizeGlobalDistanceField = false;
bEnableColorizeGlobalDistanceFieldGrayscale = false;
bEnableColorizeGlobalDistanceFieldColor = false;
bEnableColorizeGlobalDistanceFieldGrayscale = false;
bEnableColorizeGlobalDistanceFieldColor = false;
bEnableColorizeGlobalDistanceField = false;
bEnableColorizeGlobalDistanceFieldMeshSDF = false;
bEnableColorizeGlobalDistanceFieldMeshSDFGrayscale = false;
bEnableColorizeGlobalDistanceFieldMeshSDFColor = false;
bEnableColorizeGlobalDistanceFieldMeshSDFGrayscale = false;
bEnableColorizeGlobalDistanceFieldMeshSDFColor = false;
bEnableColorizeGlobalDistanceFieldMeshSDF = false;
bEnableColorizeVolumetricLightmapDirectionalOcclusion = false;
bEnableColorizeVolumetricLightmapDirectionalOcclusionGrayscale = false;
bEnableColorizeVolumetricLightmapDirectionalOcclusionColor = false;
bEnableColorizeVolumetricLightmapDirectionalOcclusionGrayscale = false;
bEnableColorizeVolumetricLightmapDirectionalOcclusionColor = false;
bEnableColorizeVolumetricLightmapDirectionalOcclusion = false;
bEnableColorizeVolumetricLightmapDirectionalIndirectIntensity = false;
bEnableColorizeVolumetricLightmapDirectionalIndirectIntensityGrayscale = false;
bEnableColorizeVolumetricLightmapDirectionalIndirectIntensityColor = false;
bEnableColorizeVolumetricLightmapDirectionalIndirectIntensityGrayscale = false;
bEnableColorizeVolumetricLightmapDirectionalIndirectIntensityColor = false;
bEnableColorizeVolumetricLightmapDirectionalIndirectIntensity = false;
bEnableColorizeVolumetricLightmapIndirectIntensity = false;
// All bEnableColorize related variables are commented out
*/
// Continue to comment out more bEnableColorize related variables
/*
bEnableColorizeVolumetricLightmapIndirectIntensityGrayscale = false;
bEnableColorizeVolumetricLightmapIndirectIntensityColor = false;
bEnableColorizeVolumetricLightmapIndirectIntensityGrayscale = false;
bEnableColorizeVolumetricLightmapIndirectIntensityColor = false;
bEnableColorizeVolumetricLightmapIndirectIntensity = false;
bEnableColorizeVolumetricLightmapEnvironmentIntensity = false;
bEnableColorizeVolumetricLightmapEnvironmentIntensityGrayscale = false;
bEnableColorizeVolumetricLightmapEnvironmentIntensityColor = false;
bEnableColorizeVolumetricLightmapEnvironmentIntensityGrayscale = false;
bEnableColorizeVolumetricLightmapEnvironmentIntensityColor = false;
bEnableColorizeVolumetricLightmapEnvironmentIntensity = false;
bEnableColorizeVolumetricLightmapAmbientOcclusion = false;
bEnableColorizeVolumetricLightmapAmbientOcclusionGrayscale = false;
bEnableColorizeVolumetricLightmapAmbientOcclusionColor = false;
bEnableColorizeVolumetricLightmapAmbientOcclusionGrayscale = false;
bEnableColorizeVolumetricLightmapAmbientOcclusionColor = false;
bEnableColorizeVolumetricLightmapAmbientOcclusion = false;
*/
// Continue to comment out all remaining bEnableColorize related variables
/*
bEnableColorizeVolumetricLightmapSHBand0 = false;
bEnableColorizeVolumetricLightmapSHBand0Grayscale = false;
bEnableColorizeVolumetricLightmapSHBand0Color = false;
bEnableColorizeVolumetricLightmapSHBand0Grayscale = false;
bEnableColorizeVolumetricLightmapSHBand0Color = false;
bEnableColorizeVolumetricLightmapSHBand0 = false;
bEnableColorizeVolumetricLightmapSHBand1 = false;
bEnableColorizeVolumetricLightmapSHBand1Grayscale = false;
bEnableColorizeVolumetricLightmapSHBand1Color = false;
@@ -427,6 +388,7 @@ SDismembermentPreviewViewportClient::SDismembermentPreviewViewportClient(FPrevie
bEnableColorizeVolumetricLightmapSHBand3Grayscale = false;
bEnableColorizeVolumetricLightmapSHBand3Color = false;
bEnableColorizeVolumetricLightmapSHBand3 = false;
*/
}
SDismembermentPreviewViewportClient::~SDismembermentPreviewViewportClient()

View File

@@ -2,6 +2,7 @@
#include "CoreMinimal.h"
#include "UObject/NoExportTypes.h"
#include "NiagaraSystem.h"
#include "DismembermentCompiler.generated.h"
class UDismembermentGraphNode;

View File

@@ -3,6 +3,7 @@
#include "CoreMinimal.h"
#include "UObject/NoExportTypes.h"
#include "DismembermentCompiler.h"
#include "NiagaraSystem.h"
#include "DismembermentExecutor.generated.h"
class AActor;

View File

@@ -32,7 +32,7 @@ public:
virtual FText GetNodeTitle(ENodeTitleType::Type TitleType) const override;
virtual FLinearColor GetNodeTitleColor() const override;
virtual FText GetTooltipText() const override;
virtual FText GetMenuCategory() const override;
virtual FText GetMenuCategory() const;
// End of UEdGraphNode interface
// Compile this node into executable logic

View File

@@ -2,6 +2,7 @@
#include "CoreMinimal.h"
#include "DismembermentGraphNode.h"
#include "NiagaraSystem.h"
#include "DismembermentGraphNodeBloodEffect.generated.h"
/**

View File

@@ -2,6 +2,7 @@
#include "CoreMinimal.h"
#include "DismembermentGraphNode.h"
#include "NiagaraSystem.h"
#include "DismembermentGraphNodeWound.generated.h"
/**

View File

@@ -2,6 +2,9 @@
#include "CoreMinimal.h"
#include "UObject/NoExportTypes.h"
#include "NiagaraSystem.h"
#include "NiagaraComponent.h"
#include "NiagaraFunctionLibrary.h"
#include "DismembermentPreviewManager.generated.h"
// Add a log category declaration