Overlaps Event on child component of Leap Motion Hand

Hello,

I’m trying to accomplish a 3D menu attached to the Left hand of my character . I decided to re-post my issue there because I got the same issue on a BasicFPSProject. It may be a bug, so i’m going to explain the basic implementation to get this issue.
I’m using Leap motion, mounted on a Oculus DK2. I’m not able to reproduce this issue in normal mode (no HMD), so the issue demonstration is from an HMD view.

The maIn issue is that one hand overlaps a Box collision where it shouldn’t.
I’ve created a BoxCollisionActor, which is basically an actor with a cube (debug purpose) and a box collision of the same size.

I’ve attached this custom box to my left Hand, and update its relative transform in order to keep the box around the hand.

99942-boxchildcomponents.png

Last step is to assign action ot the overlaps event of the box. So i check if it is the right hand and then print a message.

This issue can be seen during an hand movement, so i made a short video showing the good and bad calls of the Overlaps event.
==> - YouTube

Sorry for the video deformation, it’s the ouput of ‘hmd mirrror mode 4’

Is this s Bug ? Did I miss something to update the box collision transform ?
It’s like the boxCollision is well placed but there is another invisible copy somewhere calling the Overlaps event.

Thansk for your time.

Hey Marcassin,

Can you run the “Show Collision” console command and see if there are any rogue collision volumes that might be a part of your cube mesh actor?

I’ve been testing this outside of VR today and haven’t been able to repro the issue.

Hi ,
Thanks for your time for testing.

I’ve tried the ‘Show Collision’ command, but i can’t see any bad collision box.
During debugging time I’ve noted that the time between events BeginOverlap and EndOverlap is very short for the “false” collisions.
Set ‘NoCollision’ as Collision preset for the cube component didn’t change the issue.

I’ve made another video to show the good box collision visible, with the good and false overlaps. I can’t see any wrong box (around the cube or the right hand).
You can see the time difference between begin and end of the good/false overlaps with the visibility of the cube.
I had to let the ingame debug visible to show the false overlaps.

As i try to show, the “false” box collision is in one point, and quite hard to find, as it seems to move a little every simulation.

The "indesired boxcollision" moves with the left hand, but do not has exaclty the same 3D transformation as the hand. From the hands actor I moved the box to put it on the other side of the left hand. The bad box moves too (took me some second before finding it).
I've made another short test, i'm unable to reproduce this issue without headset. (im gonna test again in case it's very hard to find) I'm gonna start from an empty projet to check if there is a bad component somewhere.

Somehow I suspect it has something to do with the Box Blueprint itself. Can you try making the cube just a Static Mesh Component and setting up the same logic?

Hi,
I’ve made a very basic setup in a empty project.
One GameMode to spawn my Character.
One Hands blueprint which inherits from LeapRiggedEchoHands. Here is the only Blueprint i’ve filled

One Character Blueprints with a SceneComponent, a camera attached, then the hands BP attached.

100174-leapcharacterbasic.png

I got the same issue, and (forgot to activate in video) ‘show collision’ doesn’t show any wrong collision.

I’m gonna be able to test in few days with CV1 and another LeapMotion (If you can’t reproduce this issue, i’m afraid there is a hardware issue in my Leap controller).

Tell me if you need more information, more test …

Thanks for your time :slight_smile:

EDIT : hmm misspelled the “hmd mirror mode”, tell me if you want a new video.

Oh wait, you’re setting the transform on tick?! That wasn’t in the original screenshot.

It’s attached to the parent (left hand), so you don’t need to set the transform on tick. It will stay attached to a skeletal mesh as long as you give it a parent socket (lf_wrist). Try disconnecting the tick event and maneuvering the Cube Component in the blueprint viewport to the right position (or doing it once on BeginPlay).

EDIT: Basically what I think is happening is the attachment and the tick event are both trying to set the location of the box component, therefore the engine thinks the box is in two locations at the same time.

Hi ,

I wasn’t aware of the existence of mesh sockets, I realized I had to do the transform myself seeing that seting only as child component doesn’t modify the location.

Anyway, I’ve got the same issue using parent socket. I’ve set up a new projet using mesh socket for the cube transform. There is no more transform onTick (Sorry for that incomplete screenshot at first)

And spawn a CubeActor linked to this socket

The cube is well placed and follow the wrist as desired, but i’ve got the same issue.

Project set up : - YouTube

Collision bug : - YouTube

I’ve packaged the first basic projet, and send to a frien to test, he wasn’t able to reproduce the issue, with exactly the same project (with the transform on tick). I’m gonna send to him this new project using socket.
If he doesn’t have the wrong collision, I’m gonna think about change my Leap. And maybe suspend this thread as long i’m the only one to get this one, and it may not be a ue4 bug.

As others people cannot reproduce this issue, I’m thought the problem was from the devices, and not from the engine.
I’m gonna make some test again with another Leap but I mark this post as resolved as long i’m not able to reproduce the issue with others devices.

Thanks to .Williams for the following

Thanks for going the extra mile and testing with different hardware. Let me know how it works out and if it continues to occur.