Constant actor and component overlap events are happening per tick

Hey guys. I’m hoping someone can help me before I go insane. I am trying to get a simple overlap event from a motion controller hitting an object, but while it works, I get an endless stream of beginoverlap, endoverlap, begin, end, etc. I would expect one event on overlap start and one on overlap end. More info:

I am working on a new VR project that uses motion controllers. I have 2 simple objects (both based on nearly-empty C++ base classes). They are as follows:

  1. Object 1: ThingToHit. BP inherits from AActor. This is a Cube collision as a root object with overlap set to OverlapAllDynamic. It has a child static mesh set to a cube of the same size with its collisions disabled. This is the object that should generate events when the hand controller overlaps it.
  2. Object 2: ThingHitting: BP inherits from a C++ subclass of AActor. The base C++ class just does basic setup assigning each controller to the appropriate hand - nothing more. It has a MotionController as root object with a sphere collision as a child. The Sphere has OverlapAllDynamic collision and a child static mesh component with collisions turned off, just to see where my hand is. This object is assigned to my hands by my pawn - just like many tutorials out there - nothing fancy.

Starting the level - nothing happens - as expected. As soon as I move my hand (ThingHitting) into the cube (ThingToHit), I get a nonstop stream of Begin and End overlap. This happens whether I use ActorOverlap or ComponentOverlap. The overlap events correctly see the overlapping object as the sphere component of the hand controller.

When I couldn’t figure out the issue, I tried using OnComponentHit on ThingToHit, but that event never triggers.

Any suggestions as to what is causing the events to retrigger even during the overlap? Any thoughts are appreciated.

1 Like

As a quick follow-up, I just found that someone else reported something similar a few years ago with no posted resolution. The post was at:

https://forums.unrealengine.com/development-discussion/vr-ar-development/91437-vr-motion-controllers-triggers-multiple-begin-end-overlap-events-on-single-frame

Is “Generate Overlap Event” is On on your **ThingToHit **actor ?

Thanks for the reply. Indeed it is. I even read through the official documentation on collisions to see if I missed something, and my setup looks right. My problem isn’t that the events are not triggering, the problem is that a beginoverlap and endoverlap are triggering per frame, which makes them essentially useless.

I did find a bug report UE-36103 for the Leap Motion system that had the exact same issue, but it was marked as Will Not Fix, and no details or workaround was given in the appropriate thread.

Hate to bump a post, but I know I’m not the only one seeing this. This can’t possibly be intended behavior for VR, and my project is 99% stock other than the items listed above. Not sure what steps to go through next.

i have it too. I will write here, if i can fix it

YES, I WAS ABLE TO FIX IT! In general, my logic is such that the mesh turns and moves every tick with my logic. Set Rotation and Set Location. If you enable the Sweep parameter in them, the overlaps no longer twitch every tick

1 Like