Post 2 - Bounce With Me: Animating a Ball Bounce
*The contents below are my own opinions and not that of my employer*
Contact Key Frames
After re-reading that "Physics in Animation" article about timing, spacing, and scaling, I couldn't help but think of the first ball bounce animation I was asked to do. One of the "simplest" concepts in animation. I say "simplest" because animation is just flat out difficult, let's be honest, no matter what you're animating. This ball bounce in particular, is super simple because I left out the squash and stretch principle, and just foucsed on timing and spacing.
The video above is a "blocking pass." This is where I figure out a lot of my timing, spacing, and main story points. True, this bouncing ball didn't to have much story to it, but I decided to make the ball travel all the way across the scene and make contact with the other wall. This interaction was my main story point. After deciding on a general idea for the shot, I needed to figure out the type of ball I was animating, a tennis ball, a golf ball, a marble, or maybe a bowling ball.
With ball weight/type considered, I determined how far this ball would travel and how much bounce the ball would have after it hit the ground. To make this easier on myself, I laid down contact key frames as a first priority. This helped me figure out my timing and spacing fairly quickly, creating my official "blocking pass."
Faking the bounce
With the key poses placed and the rough timing figured out, it was time to hit that good ol' "spline" button. This button I've forever coined as "The Dream Killer" button. When switching from stepped to spline, the computer will interpret what it thinks is the best path between your key frames. Usually, this results in horrible splines that make your animation drift and swim in multiple places.
Once I had gone through and anchored down my animation from the transition of stepped to spline mode, I went back to refine my contact poses. One of the lead animators on the Blizzard Animation team gave me this tip: The position of the ball AFTER your contact should be higher than the frame of the ball that happens before your contact. The computer will attempt to move slowly into the bounce, but it needed to be the opposite. This gave an added ramp up and spring to the bounce that you don't really see as much as you feel when you playback the animation.
Fixing Splines Refined
In this pass, I fine tuned every aspect of the animation, going into the graph editor and going through every axis and every key. In this case, I smoothed out my first couple of arcs. I felt that the first bounce wasn't as smooth as it could be, almost as if a second force was pulling it across the scene.
To troubleshoot this type of issue, I went through and made sure that my timing and spacing arcs were smooth. The amount of frames it took for the ball to go up in the air should match the amount of frames it takes to drop. Because I went for a tennis ball bounce, I needed to make sure I had eight frames up, eight frames down, seven frames up, seven frames down, six frames up, etc. until the ball was bouncing on ones.
Because of the edits I made to my arcs, the ball makes it across the scene to strike the other wall more prominently than it did in my first pass. This added an extra dynamic to the shot overall, and as a viewer, makes it more entertaining.
The Final Result
Here we are, the final pass. I combed through the graph editor again to make sure the motion of the ball felt natural, double checking that each contact has an exaggerated following frame. I made sure the spacing throughout the shot felt right, with no sudden pops in movement. A setback that I had in this pass was with the rotations of the ball; I had to manipulate the timing of the rotations so the ball mimicked a roll instead of a slide; the checkered pattern was key in helping me accomplish this. The below video is my final result.
While working on this project, I stumbled across a well-written tutorial that illustrates a ball bounce from a 2D animation standpoint, by Pilar Newton-Katz. Many of the 2D principles mentioned can be applied to 3D as well. You can find the link to that via the button below: