Input Touch Location not consistent at speeds?

Edit: I’ve added a picture and video below for clarity

Hey everyone,

I’m trying to let the player drag a ball, and while the pictured below code works fine at low speeds (1-8 cm a second or so), when the pointer is moved faster (say above 10-60cm per second), the touch location skips about 100cm and jitters, and after a little bit of playing with the pointer it comes back and will stay as long as move slow, it is accurate. Not impracticable speeds here either, just a slow flick.

I’ve changed the OnTouchBegin & End over to InputTouch, changed the break hit to Location and ImpactPoint and the issue stayed the same. Also tried using a delay instead of pure EventTick, no change (other than slowed actual movement), the result is the same and mobile and PC.

My blueprint is pretty straight forward, no obvious errors, and I’ve used it before, in UE4.12 I believe. Basically the same as this thread’s answer How to move a mesh based on touch location? - Programming & Scripting - Unreal Engine Forums

Can someone please look into this?
Thanks!

Turban.

I forgot the picture in the first post!

No one else has this issue?

Hi,

When you are moving an actor or an object, you should use Interpolation. There are many interpolations like Linear, Ease in Ease Out and so on … Interpolation should move the actor smoothly…

Thanks
d0d0

Thanks for the reply d0d0! But for making a simple drag function, I believe a lerp isn’t needed, or could not help in this case. It would still lerp to the largely inconsistent numbers, which would make it look off-the-walls anyways

Can someone else please try this on 4.16.3 and see if it happens on your machine?

I’ve attached a video of what it looks like, please if anyone has experience with this let me know! It worked in an older version…

193326-bugtouchrecordingshort.gif

Hi,

To me it really feels like your vectors are not being set as expected. I am also a bit nervous about ‘target’ pin with ‘self’ in it. I would prefer to specify the actor and connect it to the ‘target’ pin.

Also, Unreal’s world axis and another platforms ( like android for example) world axis are different. I had to do some trial and error and change the axis and see what works for the target platform. You can try swapping the x,y,z axes and see if this helps.

Thanks
d0d0

Thanks again for the reply d0d0!

I tried adding a GetAllActorsOfClass before the gate and setting the variable in both the targets, but unfortunately, no success. I just thought maybe something is messed up with the default line tracing channel, so I made a new one and put it on a plane, added it to the channel to filter touch and disabled complex trace but it did not help either. I guess this not the way to drag things in ue4, I’ll start looking into other options and reply if I find one that works consistently.

BUT: Can anyone please try to replicate this issue, and pass along their knowledge of drag and drop skills!

Thank you for trying!

Turban

Turban,

Well, I am out of ideas… When you do resolve this issue, do let us know how you did it.

Thanks
d0d0