Download

Static Mesh 'use complex as simple' fails to overlap

I have a BP which constructs a structure of objects, like a level/building - using modular components. As components are laid out, before the next one is added they are checked for collisions. If there is a collision, the BP destroys the actor and tries to load another class of object in the place until it succeeds or runs out of compatible components.

Overall this works, but not as well as I would like. Using my meshes, i’d prefer to use complex collision boxes to detect overlaps, but I can only get the detection from simple collisions boxes. I’ve tried auto-convex, high accuracy and just about anything I can think of, but when I swap the mesh complexity to ‘complex as simple’ nothing with trigger.

Right now, I am using ‘simple and complex’ but this presents more problems in that with the double-overlay of collisions.

The forum image upload/linking seems to be broken, so i used imgur:

Examples:

Here you can see the settings, and that despite the obvious overlapping shown by a flicker of the purple/grey mesh, the print string for ‘overlap’ is not triggering but instead the false. When switched to a simple mesh, it works fine.

Is this a bug?

Is anyone able to help with this?

Even the most basic shapes -such as a hexagonal block- are unable to hold a tight enough of a simplified mesh to not trigger on something very close but not actually touching.

+1
Yep, Not happy with the Auto-Convex tool in UE4
It doesn’t always produce reliable collision vs UDK.
I’d like to better understand relative merits vs this

How are you checking collision in your BP?

Multiple methods, keep in mind this is for complex on complex collision. Simple on complex like a player capsule seem to work.
1: get all overlapping components or actors with proper overlap settings
2: on overlap events
3: on hit events with simulation box checked, breaking out hits register nothing

Those are preferred, my current attempt at this which does seem to be working is far less efficient, and it

0: Turn all meshes into double-sided meshes
1: Generate array of int 1-360
2: Loop through multi-trace for object types of the mesh, from the center outward against double-sided meshes
3: Get hits.
4: If there are two or more hits, loop through hits can get impact point distance of actor that owns the BP, and other Actor
5: If the distance of the other actor < the distance of the current actor, this indicates an overlap.
6: If there is an overlap, retry a new class in the same position.

This works, but for a single axis, single space sections of a mesh. It cannot see around certain corners, like an S shaped mesh or a ring.

Is there hope for complex on complex overlaps?