Commenting out the branch in FTriangleMeshSweepVisitor::VisitSweep is a work-around.

		if (CullsBackFaceSweepsCode != 0)
			if (VectorMaskBits(IsBackFace))
				// Don't cull the back face if there is a chance that we are initially overlapping.
				const VectorRegister4Float MinBounds = VectorMin(VectorMin(A, B), C);
				const VectorRegister4Float MaxBounds = VectorMax(VectorMax(A, B), C);
				FAABBVectorized TriangleAABB(MinBounds, MaxBounds);
//				if (!GeometryAABBTriangleSpace.Intersects(TriangleAABB))
					return true;

Steps to Reproduce

1. Create a project with Thirdperson template
2. Copy Engine/BasicShapes/Plane to project content folder
3. Open the copied mesh
4. Set Collision Complexity to UseComplexCollisionAsSimple
5. Place the mesh vertically in the level
6. Start PIE
7. Move forward the character from back side of the mesh


The mesh blocks character.

Expected result:
Character can through the mesh from the back. This behavior is same as UE4.

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-200695 in the post.

Login to Vote

ComponentUE - Simulation - Physics - Query
Affects Versions5.25.3
Target Fix5.4
CreatedNov 17, 2023
UpdatedNov 20, 2023