Scaling jumping animation speed based on the length

Hi all,

I have a jump animation for 3D character. I would like to play it while player is still on air and finish when he lands. The player can do a high jump or low jump and the animation speed must match with the on air time.
Currently, when the player do the low jump, the jump animation still play when he already landed. In some high jumps, the animation finished before the player lands on the ground.
Is there any way to auto adjust the animation speed based on the length of jump action?

I don’t think adjusting the animation speed is the proper approach for the issue at hand.

There might be a better process for this, but if this was my dilemma, I would cut the jumping animation into 3 separate animations. Jump begin (takeoff), jump middle (in air), and jump end (landing).

Then you can adjust the (in air) jump to loop as long as the character “is not grounded”.
Once the character touches the ground play the (landing) animation.

This allows the character to have any size/speed jump required.