Realistic jump

when I started playing with the third person template, I just found the default jump to floaty, so my idea is to count the time the character jumps or fall from 2m plataform (should be 0.6385 s), after some math I figured out that with a initial velocity of 4.2944 m/s it would take 0.187027 sec to fall from a plataform at1m height. this way I can compare the ue4 values to the kinematic equations values, and see if the gravity is really 9.81 m/s^2 in ue4.

so I made this blue print to see the time it takes to fall down or jump inside the game

also the custom function “MyPrintTime” is this one:

seems to work fine:

so I started running tests over the 2m plataform

some of the results were 0.586685,0.591385, 0.5847 that to my surprise were not consistant, but fluctuate around 0.58, if we calculate with the kinematic equation sqrt(2*h/g) we get a value of 0.6385s which is not that far away, then if we check out the initial velocity of the jump, which is called Jump Z Velocity in the game, with a value of 420 (default value), would lead to a jump of .9482m which is HUUUGE,

then I looked for some reference and found this: Why It's Almost Impossible to Jump Higher Than 50 Inches | WIRED - YouTube

after all this I got 3 conclusions

  1. someone jumping .9482m means he or she are monsters, a normal human jump should be about .6m of height that leads to an initial velocity of 3.431 m/s, but inside ue4 a 0.5m jumps needs a 360 cm/s initial velocity

2)over all the jump works fine, it looks odd because in reality very few ppl achive that jump hight plus the animationts dosent help either

  1. the jump Z velocity is given in cm/s unlike the m/s that we normally calculate in a tipycal problem
    of free falling at school

hope this wont cause any trouble, I tried to update this post but I cant add more images to the original question, so I will continue it as an answer, I made a function that let me print the velocity Z while jumping, the idea is to let the player jump only when we are inside a certain range of values of that velocity, that way if we are in a value near to 0, means that we are near the maximum height of the jump, that way making the double jump would need timing in order to succed

I made this custom function in order to check if the condition to jump via velocity Z is fullfiled:

and implemented it in the jump itself:

seem to work fine while we have a positive value near 0 in the velocity Z, but for some reason dosent work with the negative values that are near 0, even if they are inside the range that I set up, my guess is that there is a problem with the logic in the comparation made in the custom function “Can Jump (Check Velocity Z)”