Editing MetaHuman grooms causes a crash in build

Did anyone encounter this issue? I’m editing the long_messy_clumps MetaHuman groom, reducing the curve decimation and vertex decimation parameters. It all looks and plays fine in editor, but crashes the build. Restoring a backup of the groom fixes the problem.

I’d like to have the ability to decimate strands in-editor though.
I’m on Unreal 5.3.2 with all plugins up to date, tried it in both our current project and a clean project.

Steps to recreate:

  1. Import a MetaHuman (w/ long messy clumps hairdo)
  2. Edit the groom: set curve decimation to anything below 1.0, same for vertex decimation.
  3. Package build.
  4. Run the build.

Fatal error: [File:D:\build++UE5\Sync\Engine\Source\Runtime\RenderCore\Private\RenderingThread.cpp] [Line: 949]
Rendering thread exception:
Assertion failed: Size == ((uint64) 0xffffffffffffffff) || Size <= uint64(BulkData.GetBulkDataSize()) [File:D:\build++UE5\Sync\Engine\Source\Runtime\CoreUObject\Private\Serialization\BulkDataStreaming.cpp] [Line: 1059]

0x00007ff6de03beae RepoManReboot.exe!FHairStrandsBulkCommon::FQuery::Add()
0x00007ff6de0c6ea0 RepoManReboot.exe!FHairStrandsBulkData::GetResources()
0x00007ff6de0db5cc RepoManReboot.exe!FHairStreamingRequest::Request()
0x00007ff6de00f952 RepoManReboot.exe!FHairStrandsRestResource::InternalGetOrRequestData()
0x00007ff6ddfff33c RepoManReboot.exe!FHairCommonResource::Allocate()
0x00007ff6ddffc5c6 RepoManReboot.exe!FComputeShaderUtils::AddPass<FHairStrandTextureDilationCS>'::2’::<lambda_1>::operator()()
0x00007ff6de011eb5 RepoManReboot.exe!TArray<FHairStrandsDebugDatas::FVoxel,TSizedDefaultAllocator<32> >::ResizeTo()
0x00007ff6de01096d RepoManReboot.exe!ProcessHairStrandsBookmark()
0x00007ff6d8c8f6e3 RepoManReboot.exe!FSceneRenderer::PreVisibilityFrameSetup()
0x00007ff6d8c678e9 RepoManReboot.exe!FDeferredShadingSceneRenderer::BeginInitViews()
0x00007ff6d7f94a92 RepoManReboot.exe!FDeferredShadingSceneRenderer::Render()
0x00007ff6d8c2287c RepoManReboot.exe!FSceneRenderer::RenderThreadEnd()
0x00007ff6d8bdf227 RepoManReboot.exe!TPersistentStructuredBuffer<UE::HLSL::FCellBlockData>::ValidateGPUData<FSceneCullingBuilder::UploadToGPU’::33'::<lambda_1> >'::12’::<lambda_1>::operator()()
0x00007ff6d8c078a5 RepoManReboot.exe!TBaseStaticDelegateInstance<void __cdecl(wchar_t const * __ptr64,IConsoleObject * __ptr64),FDefaultDelegateUserPolicy,unsigned int * __ptr64>::ExecuteIfSafe()
0x00007ff6d50ce657 RepoManReboot.exe!FNamedTaskThread::ProcessTasksNamedThread()
0x00007ff6d50cec4e RepoManReboot.exe!FNamedTaskThread::ProcessTasksUntilQuit()
0x00007ff6d956592a RepoManReboot.exe!RenderingThreadMain()
0x00007ff6d956c379 RepoManReboot.exe!FRenderingThread::Run()
0x00007ff6d567fca2 RepoManReboot.exe!FRunnableThreadWin::Run()
0x00007ff6d56736f7 RepoManReboot.exe!FRunnableThreadWin::GuardedRun()
0x00007ffa9f707344 KERNEL32.DLL!UnknownFunction

1 Like

Facing the exact same issue on the same version with alembic hair converted in blender from DAZ.

2 Likes

Experience crash with the same callstack today.
I’m using UE5.3.2
The hair was created in Daz3D, exported to blender and converted into .abc file.
The hair import just fine, no crash in PIE or standalone game, crashes in packaged build.

1 Like

Ok, after some testing I was able to find a way to do curve + vertex decimation without packaged build crashing.

Here are the steps that work for me:

  1. Import .abc file into a UE.5.0 project
  2. Set curve and vertex decimation and save the groom asset.
  3. Migrate the groom asset to your UE5.3.2 project
  4. Package UE5.3.2 project

I’ve done the above steps and didn’t encounter a crash in shipping build.

Hope this helps.

1 Like

Confirmed in my build as well. Now to the next bug where the hair is not animating.

Found the answer to the second bug here and confirmed in 5.3.2. Placed an animated groom in my level and like magic all the others now work in the packaged build.

What is standalone game? How do I export standalone game? I thought they only have packaged build

Roughly speaking, running Standalone game means the engine code will run with
#WITH_EDITOR macro disabled, some functions will behave differently under this mode.

You can press the 3 dotted icon from the right of PIE button and choose ‘Standalone Game’ to run your project in standalone mode.