How to have instant acceleration/deceleration for character

Can you elaborate your question? When you say instant response acceleration do you mean going from 0 to 5000 m/s instantly?

If you just want the character to change velocity signficantly I wouldn’t bother figuring out the acceleration. Just drag out from the Character Movement component and ‘Set Velocity’ :slight_smile:

1 Like

I want my character to have instant response acceleration and deceleration. Currently i just have ludicrous numbers for acceleration and breaking but i know that cant be the right way.

I’ve read somewhere that the best way to do this is by changing the code inside the charactermovementcomponent, but i’m wondering if there any way of doing this in the editor rather than going into C++.

1 Like

In the Character movement component:

  • Max acceleration
  • Braking Friction Factor + Braking Deceleration Walking
1 Like

Actually your method if changing acceleration and deceleration values in the movement component is the right way to do it. If your move speed is 600 and acceleration is 6000 it would mean you reach your top speed in 0.1 sec. and that is ■■■■ responsive to me :smiley: you can also increase the ground friction multiplier in the movement component to get closer to the values you are setting as they are multiplied by physics asset friction multiplier.

1 Like

yes. im trying to instantly move at max speed and stop instantly.
im not sure how im suppose to introduce the setvelocity node. im a complete beginner

Here’s one way to do it. So this will replace the default input for forward backwards movement. When the axis value is 1 aka moving forward we set the velocity in that direction to 5000 m/s. If it is -1 aka backwards we set it to 5000 m/s backwards. If the axis value is 0 aka standing still we set it to 0.
If you want this for the left and right axis you just repeat this for that input. As axis values are updated every tick this should be the most responsive way to acheive this.

Things to notice!
The set velocity functions also sets the velocity in the z-direction to 0 in this setup. If you want gravity you should spilt the vector input in the set velocity node and input the z-velocity from the get velocity node (also taken from the character movement component). You split a node by right clicking a vector node a pressing “split strcut pin”.

Another thing to notice if you want movement forward, backward, left and right is the interaction between moving forward and right at the same time for example. The velocities should be multiplied by cos(45) since this will keep the velocity at 5000 m/s at all times.

Tell me if you have any questions :slight_smile:

1 Like