UC Berkeley Main Campus
Department of Art Practice, Center for New Media, Fall 2004
PIXAR co-founder John Lasseter translated insights from classical hand animation to CGI animation in his classic SIGGRAPH papers Animation Principles (1994) and Principles of Traditional Animation (1987). Read these papers in their entirety...they are the founding documents of CG animation. We will discuss each of his principles in class, and implement them with the equally classic bouncing ball assignment. To accomplish the bouncing ball and any other keyframe animation, we first need to define an action, in this case a ball bouncing up and down. We can animate the action once and then loop it to show an ongoing bouncing ball. Such an animation which is designed is called a cycle or a clip. First, we determine duration of the animation cycle in frames. The duration determines the nature of the ball and its bounce. We set the duration of our time window to match the duration of the cycle. Next, we create a simple ball and a plane. Next, we determine the starting and the ending position of the ball. The starting position is the first frame of the time window, usually 0. We set a key frame to anchor the ball touching a plane. Then we set the ending position for the ball, which is slightly above the plane, at the end of the time window, typically at frame 30. Next we set another key frame in the middle of the cycle for the apex of the ball's bounce. In playback we can assess if the bounce seems natural. In further steps, we adjust the velocity of the ball using the Window > Animation Editor > Graph Editor by changing the angles of the animation curve handles. Note that the Graph Editor shows the animation curves of the channels of the selected objects only. When your ball is not selected, its animation curves will not show. Highlight one of the channels in the Graph Editor to see the curve for only that channel. In this assignment, we are mostly interested in the y-axis channel. The y-axis channel animation curve was created when we set the keyframes for the three initial positions of the bouncing ball. Further adjustments include the squash and stretch channels (x-, y-, z-scale) and the rotation of the ball. Although the assignment seems simple, it is not easy to give the ball a specific narrative quality. For inspiration watch the classic Luxo Junior.