Degenerate triangle and TVector Ensure crashes

My project was working fine in UE5 early access. After downloading UE5 and opening my project it’s been a complete nightmare. I’m getting tons of random crashes from LogChaos now. Am I going to have to recreate my project in UE5 and reimport my assets? I have not changed any of my assets, so I don’t understand why it would be doing this.

Anyhow, this is the latest exception:

[2022.04.30-01.52.48:685][692]LogOutputDevice: Error: Ensure condition failed: false [File:D:\build\++UE5\Sync\Engine\Source\Runtime\Experimental\Chaos\Private\Chaos\TriangleMeshImplicitObject.cpp] [Line: 1285] 

template<typename T>
FORCEINLINE TVector<T>::TVector(T InX, T InY, T InZ)
    : X(InX), Y(InY), Z(InZ)
{
    DiagnosticCheckNaN();
}

I’m also getting tons of Degenerate triangle warnings.

LogChaos: Warning: Degenerate triangle 572: (3.703244 7.688240 0.563405) (3.660273 7.745750 0.537787) (3.648443 7.701501 0.539842)
LogChaos: Warning: Degenerate triangle 160: (3.451338 7.251354 0.493243) (3.471526 7.567879 0.472299) (3.450582 7.567879 0.493243)
LogChaos: Warning: Degenerate triangle 571: (3.660273 7.745750 0.537787) (3.703244 7.688240 0.563405) (3.705816 7.743148 0.551309)
LogChaos: Warning: Degenerate triangle 160: (3.451338 7.251354 0.493243) (3.471526 7.567879 0.472299) (3.450582 7.567879 0.493243)
LogChaos: Warning: Degenerate triangle 160: (3.451338 7.251354 0.493243) (3.471526 7.567879 0.472299) (3.450582 7.567879 0.493243)
LogChaos: Warning: Degenerate triangle 572: (3.703244 7.688240 0.563405) (3.660273 7.745750 0.537787) (3.648443 7.701501 0.539842)

I’m at my wit’s end with this. I had to delete all of my clothing assets because Chaos Cloth was enabled in my project and turning it off would completely cause crashes. Can someone help me here?

Hi,

I have the same issue since I upgraded to UE5 final release : tons of degenerate triangles, in-game freeze and the red message “Ensure condition failed: false [File:D:\build++UE5\Sync\Engine\Source\Runtime\Experimental\Chaos\Private\Chaos\TriangleMeshImplicitObject.cpp” in the output log. But game manages to resume after that and error doesn’t reproduce unless I restart the editor.

Is this a bug or do some of my assets REALLY have degenerates ? And if so, how to identify them ?

Cheers,

Greg

Yeah this is driving me insane. I think I’m going to have to reimport my character assets. I read online that when importing a mesh there is a way to remove degenerate triangles in the Unreal Engine UI. But it’s driving me mad. I’m getting tons of errors related to this TriangleMeshImplicitObject. My project is basically unusable in its state.

Sucks to bump this, but because of this I’m going to have to recreate my project from scratch and reimport all of my assets using “Migrate” or some other tool. Can we get a response as to how to fix this? My project was made in UE5 EA.

Bumping again because I’m at my wit’s end with this. I would really rather not recreate my entire project. Do I need to reimport assets?

For anyone seeing this, I fixed the degenerate triangle problem.

At first I thought it was my character that had degenerate triangles. But then I noticed that stepping over a specific area in my environment was causing the issue. I managed to narrow it down to a spawning asset that I have in my level where every time my character stepped on it the degenerate triangle message would appear.

I looked online to see what tools I had avaliable to clear degenerate triangles. Blender has a tool in Edit Mode for meshes that allows you to clear degenerate triangles. So I imported the asset into Blender and immediately noticed another problem: the asset was incredibly small. Tiny even. This was the crux of the problem: the asset had triangles that are way, way too small. Sure enough when I scaled the asset up and tried to clear degenerate triangles in Blender, it said 0 cleared.

I exported the scaled asset in Blender and imported it again in my UE project. When I imported it, the entire mesh was bigger than the environment I was in. Looking at the blueprint showed that it had a scale of 50.

I took the scale down to 2.5 and the issue is now solved.

1 Like

I have the same issue, the viewport is lagging because of it and it is driving me crazy because I did as espaghetters but it didn’t work. anyone have a fix to this please ??

Same problem here. I went through and manually (in Unreal) generated convex collisions on the geo, so it isn’t even the simple collisions. Best idea I’ve got is that it’s asserting when it falls through to complex collisions.

The meshes look fine? We need tooling to locate and address these errors. I don’t get why they aren’t just identified and corrected on import.

Alright, I have what I think is a workaround, but it’s another highly domain-specific one:

The assert goes away if I enable Nanite on all of the objects in question. The assert normally hits when I do what I believe is a complex trace (foot IK), and I’m assuming Nanite drastically alters how a complex trace would have to work, hence no assert.

Presently I’m running no-Nanite because these objects also rely on WPO, but as of 5.1, Nanite supports WPO, so, I guess that’s An Workaround, at least? If not a great one. Hopefully it works for others.

EDIT: According to a friend, Nanite physics and complex traces actually use the fallback meshes? So theoretically this workaround would also work in Nanite fallback mode, maybe? Because it functions by pushing the Chaos-angering meshes through the LOD system, which pops out a mesh without the bad data.

By the same token, you could also possibly avoid this assert by never doing complex collisions/traces.

This sounds like a workaround and not a true solution. What we need is someone from Epic to chime in as to why this is happening now. It likely has to do with Chaos. I also had to turn off cloth for this (and remove all of my cloth physics data) so I’m actually kind of concerned about turning it back on.

and how did u know what object is calling that problem?

It’s actually pretty difficult to tell :frowning: But this problem has completely stopped for me after fixing the one asset that was having the problem.

Correct Scene Properties scaling setting for Blender to UE4/5 is a Metric Unit System with a Scale of 0.01. Converting scene units on import rather than fixing the scaling before export can cause all sorts of problems.

I solve mine problem it was generate by the Cable Actors that has too many segments that was causing the log problem so i just reset all to the default values that fix’s mine problem

I was having the same problem when using SweepSingleByChannel hit tracing on a mesh I imported from Blender. Removing the collision from the mesh and replacing it with a UE simplified version, and hitting on the collision box rather than the imported mesh worked. That is, set the collision box’s Collision Preset to Custom, and tick Block to the Collision Response that you made in Settings->Project Settings->Collision->Trace Channels