Mesh Overlap Simple vs complex Mesh

Hi,

I’m going to have a lot of Actors that have to respond to begin Overlap. I would like to know if its more efficient to have an extra SphereOverlap volume in addition to the Mesh that is used for collision (average aprox 200polys) or to just have the Collision Mesh to respond to overlap.

Hi,

Sphere collision will be more performant. Sphere collision needs to check only one value - radius, which makes it the most performance-friendly collision shape.

For detecting overlap of many actors, I would recommend creating a designated sphere collider that will detect any Begin Overlap events. That’s how I’ve implemented it in my game - and it works well with many actors moving around a scene. I use sphere collision for detecting overlaps almost everywhere, even for single static actors, but that’s my personal little habit :slight_smile:

Cheers!

Hey Slavq!

Thank you for your answer! Yes I usually have a SphereCollision (or multiple for different Radius) on my Character, that will trigger all Events. I’m just not 100% certain for the Actors that actually get Overlapped.They need “Generate Overlap Events” enabled for the Character to detect the Overlap but don’t really have an Overlap Event. So your advice is to Create dedicated Sphere Collisions for both, the active Character and passive Overlapped Actor?

Usually sphere collision component should detect other actors, but should not be detected by other sphere collision component from other actors. So sphere collision would detect a monster’s body, but not its own sphere collider - and only Sphere Collision Component would need the Begin Overlap event. So this is a matter of setting up collision presets under its properties.

It depends on what you want to detect - for e.g. detecting weapon hit from sword swing, you probably want to test collision against character/monster body (so collision from its Physics Body should be detected - but again, depends on game)

On the other hand, for detecting merely the fact that something enters/leaves certain area (with specified radus) around an actor, Sphere Collision Components can help with their Begin Overlap and End Overlap events.

For example, for detecting overlaps with monsters, I have a Monster class with one Sphere Collision Component with desired radius (depending on monster size) and it does all the job - detects if something enters the sphere and if something leaves it (Begin Overlap & End Overlap events) - this way monsters know if something is near them and when it leaves their area. When a butterfly enters their ‘territory’ (detected by Sphere Collision Component Begin Overlap), they’ll be happy and look at it until it leaves the area. If a giant hornet enters it, they’ll become frightened and run in other direction until it leaves the sphere collision radius :slight_smile:

Alright, thank you again for your effort. It doesn’t really answer my question, but I think it might provide good Information for other people So I’ll accept the answer.

I ended up doing some small test on my own, it still doesn’t provide an exact answer and was only tested for passive Actors:

*complex skeletal mesh actors gain about 40% increased performance when using Spheres to generate OverlapEvents (No magic here, skel meshes are really expensive, I have disabled all their collision and overlaps by default and just enable it for the periods of time its necessary e.g. incoming hit).

*Static Meshes Actors with up to 2k Vertices and complex collision seem to be totally unimpressed whether they generate overlap events or not, even with 20k Static Mesh Actors there doesn’t seem to be a MS difference in performance.