Did collision handling change between 4.7 and 4.10?

I’m having an issue where a 4.7BP is behaving differently than a 4.10BP. I’m using a mesh to determine if a player is inside an arbitrary volume. (It’s a complex shape so actual volumes don’t work for this case). The blueprint would essentially use ActorBeginOverlap and ActorEndOverlap to tell the game if a player was inside of it or not.

This worked great as of 4.7 but as of 4.10 completely entering the volume such that the player isn’t touching outer edges of the volume I get an “ActorEndOverlap” message even though they are still overlapping. I have attached a diagram to show the issue more clearly.

On the left side of the line we have the case where the player is touching the outside edge of the mesh volume.

On the right side the player is “inside” the volume from the top view but should still be considered overlapping from the front view. In 7.10 as soon as the player moves to a position not on the outer edge of the volume as seen from the top I get an undesired ActorEndOverlap message.

Any thoughts as to what might have changed?

74179-overlap.jpg

Regards,

ook

I noticed through further debugging of the blueprint that once the player is “inside” the outer boundary of the mesh that it generates a constant stream of Begin and End overlap events simultaneously.

Any help out there? Is this normal to be seeing all these Begin and End overlap events when the player is overlapping a static mesh?

Regards,

ook

Hello ook,

Does this only occur with your specific static mesh or any static mesh that you use? I would be interested to see the collision settings / blueprints for the involved actors as well. Would it be possible to get a copy of the project or some screenshots to see this information?

So I did some more testing and was able to put together a test case pretty quickly in the example map. Basically if you add a BP to: StaticMesh’/Game/Shapes/Shape_Cube.Shape_Cube’

Then set the collision settings I attached.

75756-collision+settings.jpg

Then make it handle input from Event ActorBeginOverlap and Event ActorEndOverlap.

75757-beginend.jpg

(scale it and position it so a player can fit/walk completely inside it)

It works as expected. If you watch the BP while walking over it you will see a single event for begin and when you walk out of it you will see a single event for end.

If you take that same actor and swap the mesh out for: StaticMesh’/Game/Architecture/Wall_Door_400x300.Wall_Door_400x300’

(Rotate it so it’s laying on it’s side and scale and position it so a player can fit/walk completely inside it)

Then do the same test and you will see that when you move into the mesh Begin and End will fire a whole bunch of times rapidly and then stop. Another odd aspect of this is that you very carefully approach the edge of the mesh in this case and just barely touch it you will get a single Begin event.

75760-beginendtext.jpg

(these all happen basically at the moment the player enters the shape)

Thank you for the reproduction steps ook. It seems that this issue is related to using the “Use Complex Collision As Simple” setting for the Collision Complexity inside of the Static Mesh editor. The Wall_Door_400x300 uses this by default while the cube uses the “Default” setting. I’ve placed a bug in for the issue under the number UE-25923. In the meantime, as a workaround, I’d suggest using Default and creating the collision via “Auto Convex Collision” in the Static Mesh Editor.

Have a nice day!

Yeah I assumed this was the issue after finding the repro. Unfortunately the mesh I am using is complex and I’ll need to break it up into concave chunks to make this work but it should be fixable.