It works almost as intended only for 1 thing. The input of the controller is way too heavy. If I keep the RotationSpeed set to 20, it works decent for the WASD/keyboard input, but it’s way too fast for the Gamepad Joystick. But when you set the speed to 1, WASD doesnt move and the Gamepad works.
Is there a way to change the inputs separately while still using the EnhancedInputActions?
I tried creating separate ones by hand, but found that it might be better to stick with the EnhancedInputs when possible, especially later down the line when more inputs might get added + accessibility for other platforms.
if instead of the joystick does the d-pad have a similar effect for you?
under enhanced Input you can have multiple different input actions result in the same function/event call (blueprint execution input pin)
so you could have IA_WASD_Move and IA_Joy_Move which both call small variations on your Move() function/event. where for example your IA_WASD_Move() multiplies the inbound float values by “20” then goes into you expected Move() logic which would normally use the multiple of “1”.
when it comes the the Accessibility options if they are re-mappings inside your application then you can “take care” of that for the proper function.
But, like Steam input, or the consoles remapping, the system is directly lying to your application about what input is being sent. if the user through Steam Input wants to remap WASD to a joystick on their “special gamepad” that Unreal doesn’t natively support your game will receive WASD inputs while they are using a joystick. The inverse might also be true where the PlayStation User can remap the joystick to the D-Pad, they push a the D-Pad-UP and you get a Joystick (0.0, 1.0).
the “good news” is that typical gamepads only have 2 Vector2 joysticks, but then there is VR (I know there was a Unreal Engine wide mod that could force almost any Unreal Engine application to work with a VR headset similar to the platform input remapping)
I do get what you mean, but would you be able to explain how exactly that can be done? I’m a bit of a rookie if it comes to programming/blueprinting gameplay.
which is acting as a multiplier to the vector output of the User input value, you can either reduce the scalar multiplier on the Thumstick (to something more consistent with the behavior of your WASD/DPad)
or you can add a Modifier:Scalar to the different components of the other things for IA_Move
note that W/S are the Y component of the synthetic Vector, and A/D are the X component
so the Modifier of both W and S should be (1.0, [N], 1.0) and the Modifier for A and D should be ([N], 1.0, 1.0)
you might need to tune both to get what you “want”