DestructibleComponent when chunks disappear: OnComponentFracture called many times and BoxExtent.ContainsNaN() error

(Small project that reproduces both issues on UE 4.11.2 is located here.)

Hello, I’ve been having a few issues regarding DestructibleComponents in my current project. The gist of it is that after a Destructible Component fractures, OnComponentFracture is called once, as expected, and its chunks disappear after a couple of seconds. When they do, two problems arise:

  1. An “Ensure condition failed” showing some messages about NaNs shows up in the log. Note that this only happens the first time the Destructible Component is destroyed (right after opening the editor). In subsequent Plays, this message no longer appears.
  2. OnComponentFracture is called yet again many times, I’m guessing once per chunk that disappears.

For 1, the full message is as follows:

LogOutputDevice:Warning: === Handled error: ===
Ensure condition failed: !Primitive->Bounds.BoxExtent.ContainsNaN() && !Primitive->Bounds.Origin.ContainsNaN() && !FMath::IsNaN(Primitive->Bounds.SphereRadius) && FMath::IsFinite(Primitive->Bounds.SphereRadius) [File:D:\BuildFarm\buildmachine_++UE4+Release-4.11\Engine\Source\Runtime\Renderer\Private\RendererScene.cpp] [Line: 680]
Nans found on Bounds for Primitive DestructibleComponent0: Origin X=0.000 Y=0.000 Z=0.000, BoxExtent X=-85070586659632214952926045871129231360.000 Y=-85070586659632214952926045871129231360.000 Z=-85070586659632214952926045871129231360.000, SphereRadius inf
Stack:
UE4Editor-Core.dll!FWindowsPlatformStackWalk::StackWalkAndDump() [d:\buildfarm\buildmachine_++ue4+release-4.11\engine\source\runtime\core\private\windows\windowsplatformstackwalk.cpp:178]
UE4Editor-Core.dll!FDebug::EnsureFailed() [d:\buildfarm\buildmachine_++ue4+release-4.11\engine\source\runtime\core\private\misc\outputdevice.cpp:317]
UE4Editor-Core.dll!FDebug::OptionallyLogFormattedEnsureMessageReturningFalse() [d:\buildfarm\buildmachine_++ue4+release-4.11\engine\source\runtime\core\private\misc\outputdevice.cpp:441]
UE4Editor-Renderer.dll!FScene::UpdatePrimitiveTransform() [d:\buildfarm\buildmachine_++ue4+release-4.11\engine\source\runtime\renderer\private\rendererscene.cpp:679]
UE4Editor-Engine.dll!UPrimitiveComponent::SendRenderTransform_Concurrent() [d:\buildfarm\buildmachine_++ue4+release-4.11\engine\source\runtime\engine\private\components\primitivecomponent.cpp:383]
UE4Editor-Engine.dll!UActorComponent::DoDeferredRenderUpdates_Concurrent() [d:\buildfarm\buildmachine_++ue4+release-4.11\engine\source\runtime\engine\private\components\actorcomponent.cpp:1251]
UE4Editor-Engine.dll!::operator()() [d:\buildfarm\buildmachine_++ue4+release-4.11\engine\source\runtime\engine\private\leveltick.cpp:855]
UE4Editor-Engine.dll!UWorld::SendAllEndOfFrameUpdates() [d:\buildfarm\buildmachine_++ue4+release-4.11\engine\source\runtime\engine\private\leveltick.cpp:872]
UE4Editor-Renderer.dll!FRendererModule::BeginRenderingViewFamily() [d:\buildfarm\buildmachine_++ue4+release-4.11\engine\source\runtime\renderer\private\scenerendering.cpp:1807]
UE4Editor-Engine.dll!UGameViewportClient::Draw() [d:\buildfarm\buildmachine_++ue4+release-4.11\engine\source\runtime\engine\private\gameviewportclient.cpp:1069]
UE4Editor-Engine.dll!FViewport::Draw() [d:\buildfarm\buildmachine_++ue4+release-4.11\engine\source\runtime\engine\private\unrealclient.cpp:1053]
UE4Editor-UnrealEd.dll!UEditorEngine::Tick() [d:\buildfarm\buildmachine_++ue4+release-4.11\engine\source\editor\unrealed\private\editorengine.cpp:1530]
UE4Editor-UnrealEd.dll!UUnrealEdEngine::Tick() [d:\buildfarm\buildmachine_++ue4+release-4.11\engine\source\editor\unrealed\private\unrealedengine.cpp:370]
UE4Editor.exe!FEngineLoop::Tick() [d:\buildfarm\buildmachine_++ue4+release-4.11\engine\source\runtime\launch\private\launchengineloop.cpp:2644]
UE4Editor.exe!GuardedMain() [d:\buildfarm\buildmachine_++ue4+release-4.11\engine\source\runtime\launch\private\launch.cpp:142]
UE4Editor.exe!GuardedMainWrapper() [d:\buildfarm\buildmachine_++ue4+release-4.11\engine\source\runtime\launch\private\windows\launchwindows.cpp:126]
UE4Editor.exe!WinMain() [d:\buildfarm\buildmachine_++ue4+release-4.11\engine\source\runtime\launch\private\windows\launchwindows.cpp:200]
UE4Editor.exe!__scrt_common_main_seh() [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:264]
KERNEL32.DLL
ntdll.dll
ntdll.dll

For 2, I’ve made a gif that showcases the error (in this case, OnComponentFracture simply prints “On Destruction called!”)

If this is some kind of misconfiguration of the destructible meshes, please let me know!

Thanks in advance.

Hi Victor,

Thank you for the project as a test case. We already have a ticket in for this with UE-18665.

Tim