trying to get deadzone working in unreal 5.3

Hi, iv been trying to get the dead zone to work but no matter what i try, i cant figure it out.

I am using 5.3 so using the enhanced input which i borrowed from the top-down template. Im using the onscreen virtual joystick and my player walks around perfectly fine except there is no dead zone. i have a print string that displays the float of the input. For example if i touch or click on the virtual joystick at about half way, I get a read out of something like 0.5 which is good but the player movement goes straight to max speed.

My input action value type is set to axis2d(vector 2D).
character movement min analog walk speed is 0 and max walk speed 600
inside the touch interface setup ( in the HUD folder) I have:
‘Main Input Key’ set to ‘Gamepad Left thumbstick X-Axis’.
‘Alt Input Key’ set to ‘Gamepad Left thumbstick Y-Axis’.

I have gone through everything a bunch of times and watched a load of tutorials but theres a lot of guides based on the non - enhanced input system so im kind of confused.

If my character moves at either 0 or 600 cm/s and nothing in between, but the print string prints a float number when I input a movement, then what the heck is going on? is this a bug?

Hey there @justmakes! If your input listing readout is showing correctly but your movement is maxing out immediately, it’s not likely a deadzone issue, but it sounds like the blueprint could be at fault here. Could I see how you are processing your inputs to movement?

Here’s how a simple axis of left/right movement is handled normally:


Hi, here is how that part looks on my end. im taking the direction from the camera but have left the original stuff in place just incase i need it. i guess im still kind of figuring out the order of how the movement is processed what with all the different things that handle input/movement.

I just disconnected that clamp to be sure but it doesnt have any effect. I think i added it a while ago when trying to fix this issue.

Thank you

Hey there, inside the Input Mapping Context (or inside the single input action) you can set TRIGGERS and MODIFIERS.

In particular there is a modifier which is deadzone, and easily allow to set up a deadzone for the controllers.
This works perfectly fine for my first person game, and I agree with documentation being lacking (I found this post looking for the same solution, after a while I remembered about modifiers and triggers).

But I also noticed in your description of your problem you want to be able to move at x speed depending on how much the stick is tilted (so half of max speed if it’s tilted only by half). Can you try adding deadzone and see if it’s still not working? Because for me it works, and I am also giving the Action value [axis]>into the>add movement input[scale value], and mine do move at different speeds based on how I tiled it.

In case it’s not working, it’s possible the top down template has some pawn movement settings that differ and don’t allow smoothing. I can look into it if you confirm it does not work even after you add the deadzone.

Hi, sorry for the slow response, iv recently got a new computer and lost all my login details!.

i found the issue a while ago and annoyingly I cant remember what it was. I have built this project on top of the ‘topDown’ template and migrated it to another template and I think I had some unnecessary blueprint stuff somewhere that modified the controller. when i removed it, the deadzone/fine movement control, came back and worked perfectly as expected. There was some movement logic that was doubled up basically and I found it by going through everythin, disconnecting and reconnecting step by step until I found the deadzone behavior came back.

Im sorry I cant help more than that (incase someone is looking for the same solution), the whole controller setup still confuses me and I dare touch anything incase I break it again.

Thanks

1 Like