[4.6] Touch Events clear the input vector

After updating my project to 4.6, my character started to halt every time I touched the screen. Specifically, it appears that all Touch Down events clear the character’s movement input vector.

As a workaround, I’m adding the previous movement vector to the current movement vector whenever a touch pressed is called in my character blueprint, but unfortunately, this doesn’t work for the joystick touch interface, which I can’t get any information from besides the current axis values. (I tried to create a workaround based on that, but the axis value changing from zero doesn’t necessarily occur on the same frame that the joystick is touched).

I figured this issue aught to be brought to light, and if anyone knows of a good workaround for the touch interface, I’d be grateful to hear it. It’s a little annoying having my character spasm every time I go to rotate the camera.

Hi Nefusadi,

Does this occur in a clean project with no additional content?

Yes. I just tried it out on the third person template, without starter content, targeting mobile/scaleable, on my android device and touching the camera joystick while running still caused the character to slow down.

Can you show me a screenshot of your blueprints so i can see if something might be interfering with the inputs?

Do you want screenshots of the Third Person Template (simple/unmodified) or from my actual game, since the problem is occurring on both? Also, do you want screenshots of all my blueprints, or just the touch events in the character/ pc/ hud?

The third person and specifically dealing with the touch events for now should be sufficient. If you feel comfortable with it, I would even be happy to take a look at the third person project to see if I can see first hand what is going on.

Ok, here’s a link to Third Person Template Project files. As far as I’m aware, it should just be the default template, but I’ve encountered oddities before from what I thought should have been default behavior, so feel free to pour over it. I hope it helps.

https://drive.google.com/open?id=0B-6ZpVBrn7vpblhjUU1CamYwMUk&authuser=0

Hi Nefusadi,

I checked the project and can confirm that things are working as intended. The stutter you are seeing is caused by your touch event failing, which is preventing further action. I was able to get the stutter to go away by removing the branch leading up to the rest of the function.

while I doubt it will make a difference, what type of phone are you deploying to? I want to see if it is specific to a certain .apk or graphics card. Again, this is doubtful but it is worth ruling out.

I tried your solution, but it turns out that the branch failing was only preventing the jump action from occurring (which seems odd to me that the default template would have a jump set up that fails when you’re moving). The stutter itself still occurs, and is most notable when you touch the camera joystick, instead of the middle of the screen, since touching the joystick doesn’t execute the blueprint touch event.

Ok it definitely isn’t a phone issue then, I deployed it to an S3 initially as it is the phone most people seem to be using for Android currently. I’ll try a few more ideas and get back on here when I have something more to add.

I’m using a Samsung Galaxy S3, and for compatibility’s sake, I’ve been packaging to etc1. however, when testing with the template, I just did the generic android launch.

Hi Nefusadi,

Unfortunately I am still not seeing the stutter once that branch is removed. Do you have any other steps that I can take to reproduce this error on my end?

I don’t know if it’ll reproduce it, but one of the ways I detected/diagnosed it was by printing the return value from the get last input vector node from the character’s tick event and I saw that there was a change whenever I tapped the screen while holding the movement joystick steady. The error may be more pronounced in my actual game. I could possibly send you the full game, or at least the build.

Hi Nefusandi,

I attempted the project you sent and have seen no change in the movement when jumping. Everything seems to move smoothly and without hitches or stutters. Is there any other reproduction steps you can provide or do you have another phone you can test your project on to see if it is related specifically to your hardware?

It has occurred on my brother’s phone as well. He has an LG optimus. Here are the apk and obb files for my game. While moving, whenever you touch the camera joystick, you should be able to see the walk/run animation restart. I fixed the problem whenever you jump, so don’t worry about that part.

https://docs.google.com/file/d/0B-6ZpVBrn7vpSVdNYV9pOFdjQ0k/edit?usp=docslist_api

https://docs.google.com/file/d/0B-6ZpVBrn7vpbEJTQmhLUWlGOTQ/edit?usp=docslist_api

Hi Nefusadi,

Unfortunately when attempting to use the apk and obb files you attached, the game crashes. Can you send me a copy of your full project? The only stutter I have seen thus far is the natural stutter that occurs when moving the joysticks rapidly between different camera angles and directions at the same time.

Ok, here’s a link to the full project files. As a warning though, some of my nodes may be difficult to follow, especially in the HUD classes.

https://drive.google.com/open?id=0B-6ZpVBrn7vpOGtiYlo4VWw1LUE&authuser=0

Hi Nefusadi,

Looking at your project, I wasn’t able to see anything that I would consider abnormal behavior. The only time the character fully stops is when making harsh turns or turning the camera at an angle in which the character animation isn’t built for. Have a look at your animations and blendspaces to see if you can smooth them out, this should help with stuttering and stopping movement.