Is it possible to have separate axis speeds with a Floating Pawn Movement component?

The floating pawn movement component has a “Max Speed” variable but would it be possible to move my pawn forwards at a constant rate at a separate speed?
The reason I would like it separate is because I’m trying to make a rail shooter, a Star Fox clone if you will. I can control horizontal and vertical speed just fine and when I’m banking I set the max speed to a higher number to allow faster movement in the direction that I’m banking.
However, a problem with this is that since I’m setting the ‘Max Speed’ it also affects my forward speed, so I’m basically boosting whenever I’m banking which is not the desired outcome.

Here’s a GIF when stationary (no forward speed), working as intended:

Here’s the issue when I start applying a forward speed:

As you can see, the moment I start banking to increase what I intend to be my planar(horizontal/vertical) speed it also increases forwards. I understand why that is, I suppose, but I don’t really know how to go about separating this.

This is my current setup for the planar movement.

And this for handling the banking. (Ignore the speed values themselves, it’s just to show it more clearly.)

Not sure if that’s to any help but figured it doesn’t hurt to show. I’m new to this after all!
Any help and feedback is appreciated!

You could maybe divide your axis value from your forward input when your banking is set to true could help but not sure if that would just slow down the acceleration. I would say the best way is to write your own Movement Component for that (Derive from the current one).

1 Like

Is it possible to derive from the Floating Pawn Movement Component? I was trying to look into that but didn’t find a way to do so, although maybe I was looking for the wrong thing.

Oh yeah, that doesn’t work since it isn’t exposed in the blueprint :frowning: so you would have to do it in c++ sadly.

Another Idea is you could always check the forward velocity and throttle the axis value for it when you are getting too fast (Ony check when baking is set to true of course :slight_smile: ).

I guess I’ll take some time to look more into C++!
I’ll try out the throttle-suggestion first though just in case!
Thank you for taking your time to help me out and giving suggestions! :slight_smile: