There is an error with the SmartMacroInterface, where you can't use an empty wildcard "Make Array" node. This error makes the blueprint not compile and the macro unusable. Disabling the bUseSimpleWildcardInference config property fixes this issue, but of course you loose the "SmartMacroInterface" part.
This case is a regression. This error was not happening in version 5.4.
1- Create and open a Blueprint has has a macro graph (an actor for example).
2- Create a macro.
3- For the Input of the macro, add a Wildcard Array, and for the output a Wildcard object.
4- Add a Select node between the Input and the output. At the False pin, add the input array, for the True pin, add a Wildcard Make Array Node. The Return value of the Select node connect it to the output.
5- Use this macro in the EventGraph of the Blueprint. Create an array of bools for example and connect it to the input. Promote the output pin to a variable, save and compile. You will see there are several compilation errors.
FKismetCompilerContext::ValidateNoWildcardPinsInGraph(const UEdGraph *) KismetCompiler.cpp:2185
FKismetCompilerContext::PrecompileFunction(FKismetFunctionContext &, EInternalCompilerFlags) KismetCompiler.cpp:2232
FKismetCompilerContext::CompileClassLayout(EInternalCompilerFlags) KismetCompiler.cpp:4943
FBlueprintCompilationManagerImpl::FlushCompilationQueueImpl(bool, TArray<…> *, TArray<…> *, FUObjectSerializeContext *, TMap<…> *) BlueprintCompilationManager.cpp:1391
FBlueprintCompilationManager::FlushCompilationQueue(FUObjectSerializeContext *) BlueprintCompilationManager.cpp:3877
FScopedClassDependencyGather::~FScopedClassDependencyGather() BlueprintSupport.cpp:484
FLinkerLoad::CreateExport(int) LinkerLoad.cpp:5617
FAsyncPackage2::CreateLinkerLoadExports(FAsyncLoadingThreadState2 &) AsyncLoading2.cpp:6152
FAsyncPackage2::Event_CreateLinkerLoadExports(FAsyncLoadingThreadState2 &, FAsyncPackage2 *, int) AsyncLoading2.cpp:6336
FEventLoadNode2::Execute(FAsyncLoadingThreadState2 &) AsyncLoading2.cpp:4960
FAsyncLoadEventQueue2::ExecuteSyncLoadEvents(FAsyncLoadingThreadState2 &) AsyncLoading2.cpp:5166
FAsyncLoadingThread2::ProcessAsyncLoadingFromGameThread(FAsyncLoadingThreadState2 &, bool &) AsyncLoading2.cpp:8091
[Inlined] FAsyncLoadingThread2::TickAsyncThreadFromGameThread(FAsyncLoadingThreadState2 &, bool &) AsyncLoading2.cpp:8768
FAsyncLoadingThread2::TickAsyncLoadingFromGameThread(FAsyncLoadingThreadState2 &, bool, bool, double, TArrayView<…>, bool &) AsyncLoading2.cpp:8440
FAsyncLoadingThread2::FlushLoading(TArrayView<…>) AsyncLoading2.cpp:9922
FlushAsyncLoading(TArrayView<…>) AsyncPackageLoader.cpp:327
FlushAsyncLoading(int) AsyncPackageLoader.cpp:296
LoadPackageInternal(UPackage *, const FPackagePath &, unsigned int, FLinkerLoad *, FArchive *, const FLinkerInstancingContext *, const FPackagePath *) UObjectGlobals.cpp:1757
LoadPackage(UPackage *, const FPackagePath &, unsigned int, FArchive *, const FLinkerInstancingContext *, const FPackagePath *) UObjectGlobals.cpp:2121
LoadPackage(UPackage *, const wchar_t *, unsigned int, FArchive *, const FLinkerInstancingContext *) UObjectGlobals.cpp:2097
FAssetData::FastGetAsset(bool, TSet<…>) AssetData.h:533
[Inlined] FAssetData::GetAsset(TSet<…>) AssetData.h:566
ContentBrowserAssetData::EditOrPreviewAssetFileItems(TArrayView<…>, Type, EAssetTypeActivationOpenedMethod) ContentBrowserAssetDataCore.cpp:400
ContentBrowserAssetData::EditOrPreviewItems(IAssetTools *, const UContentBrowserDataSource *, TArrayView<…>, Type, EAssetTypeActivationOpenedMethod) ContentBrowserAssetDataCore.cpp:456
[Inlined] ContentBrowserAssetData::EditItems(IAssetTools *, const UContentBrowserDataSource *, TArrayView<…>) ContentBrowserAssetDataCore.cpp:463
UContentBrowserAssetDataSource::BulkEditItems(TArrayView<…>) ContentBrowserAssetDataSource.cpp:2636
SContentBrowser::OnItemsActivated(TArrayView<…>, Type) SContentBrowser.cpp:3572
[Inlined] Invoke(void (SContentBrowser::*)(TArrayView<…>, EAssetTypeActivationMethod::Type), SContentBrowser *&, TArrayView<…> &&, EAssetTypeActivationMethod::Type &&) Invoke.h:66
[Inlined] UE::Core::Private::Tuple::TTupleBase::ApplyAfter(void (SContentBrowser::*&)(TArrayView<…>, EAssetTypeActivationMethod::Type), SContentBrowser *&, TArrayView<…> &&, EAssetTypeActivationMethod::Type &&) Tuple.h:317
V::TBaseSPMethodDelegateInstance::Execute(TArrayView<…>, Type) DelegateInstancesImpl.h:282
[Inlined] TDelegate::Execute(TArrayView<…>, Type) DelegateSignatureImpl.inl:613
SAssetView::OnListMouseButtonDoubleClick(TSharedPtr<…>) SAssetView.cpp:5306
[Inlined] Invoke(void (SAssetView::*)(TSharedPtr<…>), SAssetView *&, TSharedPtr<…> &&) Invoke.h:66
[Inlined] UE::Core::Private::Tuple::TTupleBase::ApplyAfter(void (SAssetView::*&)(TSharedPtr<…>), SAssetView *&, TSharedPtr<…> &&) Tuple.h:317
V::TBaseSPMethodDelegateInstance::ExecuteIfSafe(TSharedPtr<…>) DelegateInstancesImpl.h:299
TDelegate::ExecuteIfBound<…>(TSharedPtr<…>) DelegateSignatureImpl.inl:634
SListView::Private_OnItemDoubleClicked(TSharedPtr<…>) SListView.h:1134
STableRow::OnMouseButtonDoubleClick(const FGeometry &, const FPointerEvent &) STableRow.h:437
[Inlined] FSlateApplication::RoutePointerDoubleClickEvent::__l2::<lambda_1>::operator()(const FArrangedWidget &, const FPointerEvent &) SlateApplication.cpp:5830
??$Route@VFReply@@VFBubblePolicy@FEventRouter@@UFPointerEvent@@V<lambda_1>@?1??RoutePointerDoubleClickEvent@FSlateApplication@@QEAA?AV1@AEBVFWidgetPath@@AEBU4@@Z@@FEventRouter@@SA?AVFReply@@PEAVFSlateApplication@@VFBubblePolicy@0@UFPointerEvent@@AEBV<lambda_1>@?1??RoutePointerDoubleClickEvent@2@QEAA?AV1@AEBVFWidgetPath@@AEBU4@@Z@W4ESlateDebuggingInputEvent@@@Z(FSlateApplication *,FBubblePolicy,FPointerEvent,const <lambda_1> &,ESlateDebuggingInputEvent) SlateApplication.cpp:456
FSlateApplication::RoutePointerDoubleClickEvent(const FWidgetPath &, const FPointerEvent &) SlateApplication.cpp:5828
FSlateApplication::ProcessMouseButtonDoubleClickEvent(const TSharedPtr<…> &, const FPointerEvent &) SlateApplication.cpp:5811
FSlateApplication::OnMouseDoubleClick(const TSharedPtr<…> &, Type, TVector2<…>) SlateApplication.cpp:5776
FWindowsApplication::ProcessDeferredMessage(const FDeferredWindowsMessage &) WindowsApplication.cpp:2275
FWindowsApplication::DeferMessage(TSharedPtr<…> &, HWND__ *, unsigned int, unsigned long long, long long, int, int, unsigned int) WindowsApplication.cpp:2783
FWindowsApplication::ProcessMessage(HWND__ *, unsigned int, unsigned long long, long long) WindowsApplication.cpp:1944
[Inlined] WindowsApplication_WndProc(HWND__ *, unsigned int, unsigned long long, long long) WindowsApplication.cpp:939
FWindowsApplication::AppWndProc(HWND__ *, unsigned int, unsigned long long, long long) WindowsApplication.cpp:944
[Inlined] WinPumpMessages() WindowsPlatformApplicationMisc.cpp:116
FWindowsPlatformApplicationMisc::PumpMessages(bool) WindowsPlatformApplicationMisc.cpp:145
FEngineLoop::Tick() LaunchEngineLoop.cpp:5792
[Inlined] EngineTick() Launch.cpp:69
GuardedMain(const wchar_t *) Launch.cpp:190
LaunchWindowsStartup(HINSTANCE__ *, HINSTANCE__ *, char *, int, const wchar_t *) LaunchWindows.cpp:266
WinMain(HINSTANCE__ *, HINSTANCE__ *, char *, int) LaunchWindows.cpp:317
How does TextureRenderTarget2D get TArray<uint8> type data?
Why does the REMOVE method of map container remove elements have memory leaks?
How do I set a material as a post-processing material?
What is the cause of the packaging error falling back to 'GameUserSettings' in ue5?
UMG RichText not appear image when packaged
How to delete some elements correctly when deleting an array loop?
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-235133 in the post.
2 |
Component | UE - Framework - Blueprint |
---|---|
Affects Versions | 5.5 |
Target Fix | 5.5.4 |
Created | Dec 19, 2024 |
---|---|
Updated | Feb 12, 2025 |