Jump / Fall

Very fast prototyping jump feel

Since jumps are directly using curves where X = time and Y = height design iteration is super fast, you can make 3 different curves which feel very different in game and swap them out to immediately feel the changes

These are the curves for the above jumps

Leveraging MOVE_Flying

The way we accomplish free custom vertical movement is setting the Character Movement Mode to MOVE_Flying

  • it gives us complete control over vertical movement

  • automatic horizontal velocity is still applied since the character movement component still accumulates movement in the horizontal plane

All that's needed is extra collision checks for above and below and we have the full vertical control (with horizontal movement) we want

Accounting for jumping 'past' the curve

Jumping now works great as long as you collide with a floor before the end of the curve, but once you exceed the curve...

AhAHa! UE accounts for this, we can just slap the movement mode to be MOVE_Falling and call it a day right?!

Wrong. Its very obvious where the curve ends and Movement Component gravity takes over which looks and feels quite jarring.

It would be a designers nightmare to try and sync up a curve with raw data in the Character Movement Component for gravity. It can be done but would be quite cumbersome, and suddenly we break the invariant of no gravity which is going against the point of this experiment.

To solve this we need two curves

  1. For falling after a completed jump curve

  2. For falling without jumping

Falling after a completed Jump

The player will already have completed some amount of downwards velocity since the Jump curve includes negative velocity after the apex.

When the Jump Ends downward velocity will already be accumulated so an understanding of the Fall Curve will be that however we draw it is added ON TOP of the existing velocity to accomplish a smooth transition

Simple Fall Curve

We don't infinitely accumulate velocity, so where the graph ends is deemed the players terminal velocity

Here you can see its much harder to tell the switch from jump to fall and it happens more smoothly.

However it doesn't feel the best once we hit terminal velocity from a high distance

But again, at this point the system is in place and designers can make new curves to see what feels best; which I went with an inverse ease out with a higher terminal velocity

Falling without a Jump

Similarly we need to provide a separate curve for when you simply step off a ledge, which looks very similar but instead of having near immediate velocity it has a more gradual ease in.

Again this allows designers to prototype quickly different feelings of weight when stepping off a ledge

reaching terminal velocity faster feels heavier
more gradual ease feels lighter

Last updated