Graph Editor Menu Commands:
Tangents->Linear
Tangents->Flat
Tangents->Break Tangents
In Windows->Settings/Preferences->Preferences
Select the Settings->Time Slider Category on the left
Under Playback, change Playback Speed from Play every frame to Real-time
Create a poly plane to serve as ground plane.
Create a default size poly sphere. Move to 0,1,0 to have it rest on the ground plane.
Select sphere and Modify->Freeze Transformations
Rename it ball_geo
Create three groups (tranform nodes) around the ball with either Ctrl-G or Edit->Group
Rename the top level group ball_trans
Rename next sub group ball_scale
Rename lowest group ball_rot
Look at pivot locations of the three groups. We want the scale and translation positions to occur when the ball hits the ground, which is where the group command created their pivot locations.
But we want to rotate the ball around it's center. Select ball_rot and use insert to move the pivot (do this in a side or front view with snap to grids turned on.
With ball_trans selected!
time=0 trY=10
time=12 trY=0
time=24 trY=6
time=36 trY=0
Look at motion
The default flat tangents give us the gradual slowing as the ball reaches it's high points in Y, but they also give us an incorrect gradual slowing as the ball hits the ground.
Select all keys and convert to linear (Tangents->Linear).
Here we get the opposite problem. We get the correct abrupt change of direction when the ball hits the ground plane, but an incorrect abrupt change of direction at the high points in the Y.
A more natural curve would be to have flat tangents at the high points and linear at the points where the ball hits Y=0.
But we still need a more abrupt change of direction when the ball hits the ground. We need to manipulate each tangent of a key individually. To do this we need to break the tangents. Select the bottom two keys and use Tangents->Break Tangents. You can now use the move tool to change the angle on each tangent of the pair.
A better curve would be:
To add squash and stretch, we need to key the scale in ball_scale, but first we need the ball to be connected to the ground for a non-zero period of time.
Create a key at time=13, value y=0:
Convert the keys at time 12 and 13 to linear:
Move the key at time=12 to time=11 (either with the Move Tool, or by selecting the key and changing it's time value in the stats box:
Break the tangents and move the them to provide a sharper angle at the ground:
Now select ball_scale. Key scale x,y.z to 1,1,1 at times 11 and 13.
Key scale x,y,z to 1.2,0.8,1.2 at time = 12.
Scrub to check the result.
Select ball_trans.
Key trX=0 at time = 0
Key trX=10 at time = 36
Scrub to check the result.
Select ball_rot
Key rot Z=0 at time = 0
Key rot Z=-360 at time = 36
Scrub and check