4.13p1 Crash attempting to import large Alembic file

Hello,

I am getting an instant crash whenever I try to import an alembic file over 2 gigs. I don’t even get to the import settings window (so the import process never actually begins), but I get a crash with an access violation code.

I can share some test files if you tell me where to send them. It seems interesting the crash happens before actually attempting the import, so it isn’t the machine running out of resources. My memory usage confirms this. The crash report seems to point to something wrong with a slate widget.

Attempting to load a version of the same file with a lower number of frames or complexity so that the total size is lower, allows me to import normally.

For additional info on the use case: while I know that very large geometry caches would not be performant real-time, my case of use is for rendering content using Sequencer, where I would love to for example integrate a complex real-flow simulation into my scene. I think having the ability to import that kind of scene, even if not performant game-wise, will be huge for all the people using Unreal for pre-viz and even final content rendering to video.

Here is the crash report:

Access violation - code c0000005 (first/second chance not available)

UE4Editor_Core!FText::IsEmpty() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\core\private\internationalization\text.cpp:232]
UE4Editor_Core!FSlowTask::GetCurrentMessage() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\core\public\misc\feedbackcontext.h:355]
UE4Editor_UnrealEd!SSlowTaskWidget::GetProgressText() [d:\build\++ue4+release-4.13+compile\sync\engine\source\editor\unrealed\private\feedbackcontexteditor.cpp:301]
UE4Editor_UnrealEd!SSlowTaskWidget::GetMainTextFont() [d:\build\++ue4+release-4.13+compile\sync\engine\source\editor\unrealed\private\feedbackcontexteditor.cpp:255]
UE4Editor_UnrealEd!TMemberFunctionCaller::operator()<>() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\core\public\delegates\delegateinstanceinterface.h:161]
UE4Editor_UnrealEd!TTupleImpl >::ApplyAfter >() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\core\public\delegates\tuple.h:115]
UE4Editor_UnrealEd!TBaseSPMethodDelegateInstance<1,SSlowTaskWidget,0,FSlateFontInfo __cdecl(void)>::Execute() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:317]
UE4Editor_Slate!TBaseDelegate::Execute() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\core\public\delegates\delegatesignatureimpl.inl:521]
UE4Editor_Slate!TAttribute::Get() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\core\public\misc\attribute.h:135]
UE4Editor_Slate!STextBlock::GetFont() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\slate\private\widgets\text\stextblock.cpp:55]
UE4Editor_Slate!STextBlock::GetComputedTextStyle() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\slate\private\widgets\text\stextblock.cpp:289]
UE4Editor_Slate!STextBlock::ComputeDesiredSize() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\slate\private\widgets\text\stextblock.cpp:176]
UE4Editor_SlateCore!SWidget::CacheDesiredSize() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\slatecore\private\widgets\swidget.cpp:415]
UE4Editor_SlateCore!SWidget::SlatePrepass() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\slatecore\private\widgets\swidget.cpp:403]
UE4Editor_SlateCore!SWidget::SlatePrepass() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\slatecore\private\widgets\swidget.cpp:403]
UE4Editor_SlateCore!SWidget::SlatePrepass() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\slatecore\private\widgets\swidget.cpp:403]
UE4Editor_SlateCore!SWidget::SlatePrepass() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\slatecore\private\widgets\swidget.cpp:403]
UE4Editor_SlateCore!SWidget::SlatePrepass() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\slatecore\private\widgets\swidget.cpp:403]
UE4Editor_SlateCore!SWidget::SlatePrepass() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\slatecore\private\widgets\swidget.cpp:403]
UE4Editor_SlateCore!SWidget::SlatePrepass() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\slatecore\private\widgets\swidget.cpp:403]
UE4Editor_Slate!PrepassWindowAndChildren() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:1217]
UE4Editor_Slate!FSlateApplication::DrawPrepass() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:1241]
UE4Editor_Slate!FSlateApplication::PrivateDrawWindows() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:1307]
UE4Editor_Slate!FSlateApplication::DrawWindows() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:1079]
UE4Editor_Slate!FSlateApplication::TickApplication() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:1667]
UE4Editor_Slate!FSlateApplication::Tick() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:1459]
UE4Editor!FEngineLoop::Tick() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\launch\private\launchengineloop.cpp:2869]
UE4Editor!GuardedMain() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\launch\private\launch.cpp:156]
UE4Editor!GuardedMainWrapper() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:126]
UE4Editor!WinMain() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:202]
UE4Editor!__scrt_common_main_seh() [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:264]
kernel32
ntdll

Hi Diego,

Could you perhaps upload the cache somewhere so I can take a look?

Cheers,

Jurre

Hello, Jurre,

Sure, here are the files. This gives me the crash I mentioned:

This one I can import normally, and is just a version of the original file with lower duration and smaller file size:

I hope this helps. If you need anything else let me know.

Hi Diego,

I have found that your file exceeds the current size limit of imported Alembic caches (2147483647 bytes). This is something we will work on as we build out the importer’s functionality and eventually make it non-experimental.

Hope this helped you on the matter!

Cheers,

Jurre

Hello Jurre, is this filesize limit still existing? What is the progress on this?
I am having a lot of trouble importing abc data and it seems that ue4 uses extrem amount of ram (>10 times bigger than the actual file size) which looks not very efficient.

I want to bump the importance of this issue as well. Alembic file size seems to be an issue in more than one way. It is true that a large file won’t come into Unreal period. But it’s also true that if an alembic file is large enough but still imports, that it won’t play in the sequencer, in the the editor, or at all. The key frame data appears, but no animation occurs.

My solution at this point is to break my animations into 100 frame alembic exports and importing them as skeletal then combining them in a sequencer. Quite Burdensome.