The Geometry Collection Dataflow node CreateGeometryCollectionFromSources is breaking Material Assignment.
As the licensee has pointed out, this previously worked in 5.5. The most probably cause for the bug is related to the refactor from UMaterial to UMaterialInterface between 5.5 and 5.6.
The previously working FCreateGeometryCollectionFromSourcesDataflowNode has been deprecated in factor of the new FCreateGeometryCollectionFromSourcesDataflowNode_v2 one.
The licensee later reported that changing materials inside a GeometryCollectionAsset shows the same behavior, the materials are missing upon spawning and only show once the GC is fractured.
On an blank project
Create a Material to assign to the Geometry Collection (GC) that is different from the WorldGrid Material (e.g. M_MyMaterial)
Make a Blueprint Actor
Add 2 Mesh Components
Assign them the M_MyMaterial
Place Blueprint Actor into Level
Create New Geometry Collection using Actor
Create a Dataflow for the newly created GC
The graph should have a GetGeometryCollectionAsset node connected to a GetGeometryCollectionSources node
GetGeometryCollectionSources node should be connected to a CreateGeometryCollectionFromSources node
Now connect every output from the CreateGeometryCollectionFromSources node to every input of a GeometryCollectionTerminal node
Already inside the Dataflow you can observe the lack of Material in the output GC
Place GC in Level
Observe the lack of Material on GC
Add Field System in Level to Fracture GC
Simulate Level
Observe Lack of Initial Material on GC
Observe Correct Material upon Fracture
Expected behavior: the material should be correctly assigned as it worked on 5.5
Actual behavior: the material is missing and is only updated once the GC is fractured
> UnrealEditor-GeometryCollectionNodes.dll!FCreateGeometryCollectionFromSourcesDataflowNode_v2::Evaluate(UE::Dataflow::FContext & Context, const FDataflowOutput * Out) Line 399 C++
UnrealEditor-DataflowCore.dll!FDataflowOutput::EvaluateImpl(UE::Dataflow::FContext & Context) Line 314 C++
UnrealEditor-DataflowCore.dll!UE::Dataflow::FContext::Evaluate(const FDataflowOutput & Connection) Line 547 C++
[Inline Frame] UnrealEditor-DataflowEditor.dll!FDataflowOutput::GetValue(UE::Dataflow::FContext &) Line 314 C++
UnrealEditor-DataflowEditor.dll!FDataflowEditorToolkit::OnNodeSelectionChanged(const TSet<UObject *,DefaultKeyFuncs<UObject *,0>,FDefaultSetAllocator> & InNewSelection) Line 1563 C++
[Inline Frame] UnrealEditor-DataflowEditor.dll!Invoke(void(FDataflowEditorToolkit::*)(const TSet<UObject *,DefaultKeyFuncs<UObject *,0>,FDefaultSetAllocator> &)) Line 66 C++
[Inline Frame] UnrealEditor-DataflowEditor.dll!UE::Core::Private::Tuple::TTupleBase<TIntegerSequence<unsigned int>>::ApplyAfter(void(FDataflowEditorToolkit::*)(const TSet<UObject *,DefaultKeyFuncs<UObject *,0>,FDefaultSetAllocator> &) &) Line 320 C++
UnrealEditor-DataflowEditor.dll!V::TBaseSPMethodDelegateInstance::ExecuteIfSafe(const TSet<UObject *,DefaultKeyFuncs<UObject *,0>,FDefaultSetAllocator> & <Params_0>) Line 309 C++
[Inline Frame] UnrealEditor-DataflowEditor.dll!TMulticastDelegateBase<FDefaultDelegateUserPolicy>::Broadcast(const TSet<UObject *,DefaultKeyFuncs<UObject *,0>,FDefaultSetAllocator> &) Line 258 C++
UnrealEditor-DataflowEditor.dll!TMulticastDelegate<void __cdecl(TSet<UObject * __ptr64,DefaultKeyFuncs<UObject * __ptr64,0>,FDefaultSetAllocator> const & __ptr64),FDefaultDelegateUserPolicy>::Broadcast(const TSet<UObject *,DefaultKeyFuncs<UObject *,0>,FDefaultSetAllocator> & <Params_0>) Line 1080 C++
UnrealEditor-DataflowEditor.dll!SDataflowGraphEditor::OnSelectedNodesChanged(const TSet<UObject *,DefaultKeyFuncs<UObject *,0>,FDefaultSetAllocator> & NewSelection) Line 579 C++
[Inline Frame] UnrealEditor-DataflowEditor.dll!Invoke(void(SDataflowGraphEditor::*)(const TSet<UObject *,DefaultKeyFuncs<UObject *,0>,FDefaultSetAllocator> &)) Line 66 C++
[Inline Frame] UnrealEditor-DataflowEditor.dll!UE::Core::Private::Tuple::TTupleBase<TIntegerSequence<unsigned int>>::ApplyAfter(void(SDataflowGraphEditor::*)(const TSet<UObject *,DefaultKeyFuncs<UObject *,0>,FDefaultSetAllocator> &) &) Line 320 C++
UnrealEditor-DataflowEditor.dll!V::TBaseSPMethodDelegateInstance::ExecuteIfSafe(const TSet<UObject *,DefaultKeyFuncs<UObject *,0>,FDefaultSetAllocator> & <Params_0>) Line 309 C++
[Inline Frame] UnrealEditor-GraphEditor.dll!TDelegate<void __cdecl(TSet<UObject *,DefaultKeyFuncs<UObject *,0>,FDefaultSetAllocator> const &),FDefaultDelegateUserPolicy>::ExecuteIfBound(const TSet<UObject *,DefaultKeyFuncs<UObject *,0>,FDefaultSetAllocator> & <Params_0>) Line 635 C++
[Inline Frame] UnrealEditor-GraphEditor.dll!FGraphSelectionManager::SetNodeSelection(UObject *) Line 161 C++
UnrealEditor-GraphEditor.dll!FGraphSelectionManager::SelectSingleNode(UObject * Node) Line 135 C++
UnrealEditor-GraphEditor.dll!SNodePanel::OnMouseButtonUp(const FGeometry & MyGeometry, const FPointerEvent & MouseEvent) Line 1038 C++
UnrealEditor-GraphEditor.dll!SGraphPanel::OnMouseButtonUp(const FGeometry & MyGeometry, const FPointerEvent & MouseEvent) Line 1062 C++
UnrealEditor-Slate.dll!??R<lambda_2>@?7??RoutePointerUpEvent@FSlateApplication@@QEAA?AVFReply@@AEBVFWidgetPath@@AEBUFPointerEvent@@@Z@QEBA@AEBVFArrangedWidget@@1@Z(const FArrangedWidget & TargetWidget, const FPointerEvent & Event) Line 5367 C++
UnrealEditor-Slate.dll!??$Route@VFReply@@VFToLeafmostPolicy@FEventRouter@@UFPointerEvent@@V<lambda_2>@?7??RoutePointerUpEvent@FSlateApplication@@QEAA?AV1@AEBVFWidgetPath@@AEBU4@@Z@@FEventRouter@@SA?AVFReply@@PEAVFSlateApplication@@VFToLeafmostPolicy@0@UFPointerEvent@@AEBV<lambda_2>@?7??RoutePointerUpEvent@2@QEAA?AV1@AEBVFWidgetPath@@AEBU4@@Z@W4ESlateDebuggingInputEvent@@@Z(FSlateApplication * ThisApplication, FEventRouter::FToLeafmostPolicy RoutingPolicy, FPointerEvent EventCopy, const FSlateApplication::RoutePointerUpEvent::__l8::<lambda_2> & Lambda, ESlateDebuggingInputEvent DebuggingInputEvent) Line 456 C++
UnrealEditor-Slate.dll!FSlateApplication::RoutePointerUpEvent(const FWidgetPath & WidgetsUnderPointer, const FPointerEvent & PointerEvent) Line 5353 C++
UnrealEditor-Slate.dll!FSlateApplication::ProcessMouseButtonUpEvent(const FPointerEvent & MouseEvent) Line 5938 C++
UnrealEditor-Slate.dll!FSlateApplication::OnMouseUp(const EMouseButtons::Type Button, const UE::Math::TVector2<double> CursorPos) Line 5894 C++
UnrealEditor-ApplicationCore.dll!FWindowsApplication::ProcessDeferredMessage(const FDeferredWindowsMessage & DeferredMessage) Line 3052 C++
UnrealEditor-ApplicationCore.dll!FWindowsApplication::DeferMessage(TSharedPtr<FWindowsWindow,1> & NativeWindow, HWND__ * InHWnd, unsigned int InMessage, unsigned __int64 InWParam, __int64 InLParam, int MouseX, int MouseY, unsigned int RawInputFlags) Line 3570 C++
UnrealEditor-ApplicationCore.dll!FWindowsApplication::ProcessMessage(HWND__ * hwnd, unsigned int msg, unsigned __int64 wParam, __int64 lParam) Line 2725 C++
[Inline Frame] UnrealEditor-ApplicationCore.dll!WindowsApplication_WndProc(HWND__ *) Line 1716 C++
UnrealEditor-ApplicationCore.dll!FWindowsApplication::AppWndProc(HWND__ * hwnd, unsigned int msg, unsigned __int64 wParam, __int64 lParam) Line 1722 C++
[External Code]
[Inline Frame] UnrealEditor-ApplicationCore.dll!WinPumpMessages() Line 116 C++
UnrealEditor-ApplicationCore.dll!FWindowsPlatformApplicationMisc::PumpMessages(bool bFromMainLoop) Line 145 C++
UnrealEditor.exe!FEngineLoop::Tick() Line 5554 C++
[Inline Frame] UnrealEditor.exe!EngineTick() Line 60 C++
UnrealEditor.exe!GuardedMain(const wchar_t * CmdLine) Line 187 C++
UnrealEditor.exe!LaunchWindowsStartup(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * __formal, int nCmdShow, const wchar_t * CmdLine) Line 271 C++
UnrealEditor.exe!WinMain(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * pCmdLine, int nCmdShow) Line 339 C++
[External Code]
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-306177 in the post.
0 |
Component | UE - Simulation - Physics |
---|---|
Affects Versions | 5.6 |
Created | Jul 21, 2025 |
---|---|
Updated | Sep 11, 2025 |