Add Squash and Stretch

Squash and Stretch enhances the effect of animation.

Objects deform as they move or collide. In the real world this effect is sometimes obvious (think of a soap bubble) and sometimes subtle. In animation, it pays to exaggerate this effect: The exaggeration might go beyond realism, but it reinforces the illusion of realism when we watch the animation. This effect is known as “squash and stretch.”

It is worth looking again at the diagram of a bouncing ball:

The ball should stretch as it falls, squash when it collides with the floor, and then stretch again as it rebounds.

The Stretch modifier in 3ds Max provides a convenient way to animate squash and stretch.

Set up the scene:

Apply a Stretch modifier to the basketball:

  1. Select the basketball if it is not already selected.
  2. Go to the Modify panel. From the Modifier List, choose Stretch.
    Tip: While the Modifier List is open, you can press the S key multiple times to find modifiers whose name begins with “S.”
  3. On the Parameters rollout for the Stretch modifier, change the value of Amplify to –30.

    Positive amplification tends to squeeze an object in the middle as it stretches, while negative amplification makes the middle of the object fatter, which is the effect we’re looking for.

    We also want the basketball to stretch along its local Z-axis: As it happens, that is already the default.

Animate stretching and squashing:

  1. Turn on .
  2. Drag the time slider to frame 6.
  3. On the Parameters rollout for the Stretch modifier, change the Stretch value to 0.1.

    The Stretch field’s spinner arrows now show red brackets, indicating that 3ds Max has created an animation key for this parameter. In the viewports, you can see that the basketball is elongated along its direction of travel.

  4. Drag the time slider to frame 15, where the basketball collides with the floor.
  5. On the Parameters rollout for the Stretch modifier, change the Stretch value to –0.2.

    This squashes the basketball at the point of impact. Incidentally, it also corrects the way the basketball used to sink into the floor.

  6. Drag the time slider to frame 30, and change the Stretch value back to 0.0.
    Tip: Just right-click the spinner arrows to set the value back to zero. In 3ds Max, this is a standard shortcut for setting a numeric field to its minimum nonnegative value.
  7. Turn off .
  8. You need to “bracket” the squash so it doesn’t begin before impact, and goes away when the ball rebounds.

    Shift+copy the key at frame 6 to the following frames:

    • Frame 14
    • Frame 16
    • Frame 24

Repeat the stretch and squash:

  1. In the Curve Editor controller window, locate the track for the Stretch parameter.

    The hierarchy looks like Basketball Modified Object Stretch Stretch : Bezier Float. You have to scroll down to get past several position, rotation, and scale tracks that you arent using in this exercise.

  2. On the Track View - Curve Editor toolbar, click (Parameter Curve Out-Of-Range Types).
  3. In the Param Curve Out-Of-Range Types dialog, click the outgoing button for the Cycle option, and then click OK.

    Now the squash and stretch pattern repeats indefinitely.

Play the animation:

This completes the animation of bouncing a basketball.

Save your work: