I've dived once more into the terrifying waters of the fcurve editor and emerged very wet, very cold, and not necessarily any braver for it!
I attempted to alter the function curves to add a little more personality to the ball's jump, as well as re-timing a few of the keyframes using the dope sheet, in accordance with the changes made by the fcurve editor.
It took me a fair bit of tinkering to figure out how to alter the curves to best effect, but I think I finally have something fairly decent:
The overall result gives the impression of a ball leaping into the air to catch a glimpse over a very high wall.
The first thing I did was speed the whole thing up by using the dope sheet's "region select" tool to squash all the keyframes together a little more.
With the tool selected, simply drag a selection over the keyframes you want to re-time.
Then, holding shift, drag the handles on either side of the region and drag left or right to reposition/re-time all the selected keyframes. I think you can actually reverse keyframes using this tool as well, if you drag the region far enough in the opposite direction!
I reduced the overall duration of the animation from 41 frames to about 35; the result is just slightly faster but it adds a little more energy to the ball's bounce.
Once I was happy with the timing I switched over to the fcurves editor to alter the speed/timing of the ball's jump by adjusting the slope of the y axis' curve. By selecting "isolate curve" under the view menu you can temporarily hide out all the other curves and view only the curves of the selected parameters. Probably not necessary in this case but is tremendously useful if you have a more complex animation with a lot of curves all over the place.
I didn't get screencaps of all my curve alterations (there must have been at least 50 billion) but this was the one I ended up with.
The large, sweeping arc at the top represents the ball's delay at the peak of the movement. it moves gradually more slowly as it reaches the height of the jump and remains relatively airborne for a few frames before gradually beginning its descent, picking up speed as it nears the ground.
Huh. Typing that out made much more sense than it did as I was trying to understand it in my head.
It's kind of embarrassing how long it took me to figure it out; it's a relatively simple idea and I mostly understand the principle of it, I think it's just a bit deceptively mathematical and my brain is having trouble getting to grips with it. I find that I'm having massive trouble reading these curves and graphs as speed and timing - my brain just won't process it. I think I've managed to whittle it down to a basic understanding of "the steeper the slope, the faster the movement," but when I start thinking about inverted curves I start to get confused again.
I'm hoping that it will start to get easier and more natural with practice. I've never been mathematically gifted and anything vaguely resembling numbers tends to frazzle my brain more than I care to admit.
Anyway! I then went back to the dope sheet and altered some keyframes in accordance with the new timing of the ball's ascent and descent. I shifted the stretch poses as it rose and dropped a little further along, so that they would reach the peak of their stretch at a slightly later point (giving them enough time to squash into the next pose without appearing too sudden), as well as off-setting the squash at the top of the movement so that it occurred one frame later. The result was a tiny bit of overlap as the ball reaches the height of its jump and the bottom continues upwards to catch up, 'squashing' it at the top of the movement.