How do you stop characters from slowing down?

Hello,
How do I stop my character from slowing down? Or, how do I make UE4 into a vacuum without gravity? I have my character in a flying movement mode. When an “add movement input” node is fired off once, I can see the initial movement. But it slows down, leading me to believe that UE4 isn’t being simulated as a vacuum. So, how do I turn this off?

Thank you.

You can turn the Damping off in the details panel. And you can also turn the gravity off.

AddMovementInput is not a continuous method and doesn’t define actual movement by itself, it just tells your pawn that it has received input to move in a given direction. I believe the movement input is reset to zero each frame, so if you don’t tell the pawn it still has movement input it stops moving. Converting player input into actual movement happens within the MovementComponent of your Pawn; behavior is different based on which type you are using. If you wish, you can create a custom movement component that accepts data from AddMovementInput and then permanently changes the velocity, rather than creating a new value based on current input each tick.

Assuming you are using a UCharacterMovementComponent, you could bypass AddMovementInput entirely and directly set your velocity to your desired value and set the acceleration to 0. That should result in continuous movement until/unless they are later modified.

Does velocity give a character actor inherent movement? I’m not sure if I’m using a UCharacterMovementComponent (sorry, I don’t know much).

111323-untitled.png

From the screen you’ve posted it does look like you are using a UCharacterMovementComponent (the highlighted piece in the hierarchy).

So in your blueprint graph, where you are calling AddMovementInput, instead you can get a reference to that CharacterMovement object, drag an execution pin off of it and call Set Velocity, then enter the velocity you want it to go.
Velocity is the current translation speed used by the movement component to update the character’s position each tick. If Acceleration is zeroed out, this value won’t change over time so the movement would be constant. If there is an Acceleration value, it modifies the velocity each tick, which changes the translation update.

That worked. Thank you GigasightMedia.

To anyone else who may be reading this on 4.19 (or in the general area) for some reason there’s a hidden fluid friction setting on a physics volume inside the movement component that isn’t settable any other way but the following.

243503-untitled.png

1 Like

Omg, thank you, Mattk50! That is a super easy fix, that should really be exposed in the CharacterMovement component.