Blender 5 Basics: Part 5 - Animation Finesse | Aaron Ross | Skillshare

Playback Speed


1.0x


  • 0.5x
  • 0.75x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Blender 5 Basics: Part 5 - Animation Finesse

teacher avatar Aaron Ross, Artist, author, educator

Watch this class and thousands more

Get unlimited access to every class
Taught by industry leaders & working professionals
Topics include illustration, design, photography, and more

Watch this class and thousands more

Get unlimited access to every class
Taught by industry leaders & working professionals
Topics include illustration, design, photography, and more

Lessons in This Class

    • 1.

      Blender animation finesse

      1:28

    • 2.

      Using the exercise files

      1:42

    • 3.

      Using the Graph Editor

      4:31

    • 4.

      Linear interpolation

      4:50

    • 5.

      Bézier interpolation

      8:15

    • 6.

      SimpleDeform Stretch Modifier

      4:54

    • 7.

      Holding a Constant keyframe value

      4:27

    • 8.

      Animating a damped oscillation

      6:38

    • 9.

      Aligning deformation with rotation

      4:35

    • 10.

      Fine-tuning and Extrapolation

      5:55

    • 11.

      Next steps

      0:57

  • --
  • Beginner level
  • Intermediate level
  • Advanced level
  • All levels

Community Generated

The level is determined by a majority opinion of students who have reviewed this class. The teacher's recommendation is shown until at least 5 student responses are collected.

6

Students

--

Projects

About This Class

I'm Aaron F. Ross, a 3D artist, teacher, and trainer with decades of experience in many different 3D programs. My knowledge of the whole field of 3D helps me provide deep insights into Blender. Whether you're a total n00b or a 3D expert, you will learn the most critical concepts and techniques needed to get up to speed in Blender 5.

Table of Contents:

Introduction

  1. Animation finesse in Blender
  2. Using the exercise files

Keyframe Interpolation

  1. Using the Graph Editor
  2. Linear interpolation
  3. Bézier interpolation

Animated Deformation

  1. SimpleDeform Stretch Modifier
  2. Holding a Constant keyframe value
  3. Animating a damped oscillation
  4. Aligning deformation with rotation
  5. Fine-tuning and Extrapolation

Conclusion

  1. Next Steps

 

Download exercise files

Blender mouse and keyboard shortcuts

My website: digitalartsguild.com

Next course in sequence: Part 6: Production Rendering

First course in sequence: Part 1: Setup and Layout

Meet Your Teacher

Teacher Profile Image

Aaron Ross

Artist, author, educator

Teacher

Filmmaker, 3D graphic artist, musician, author, and teacher! I've worked in video production and 3D since the early 1990's. Around the turn of the millennium, I transitioned into teaching and training. Along the way, I've instructed students at every level, from middle school students to experts at production companies such as ILM. For many years, I taught 3D, video, and audio production to undergraduate and graduate students majoring in animation, visual effects, game art, and interior design. My expertise encompasses many leading creative software applications, such as Maya, Blender, 3ds Max, and Cinema 4D. I've written several textbooks and authored over 80 online video training courses. Sharing my knowledge and experience is a great joy for me, and I'm honored to help guide your jou... See full profile

Level: Beginner

Class Ratings

Expectations Met?
    Exceeded!
  • 0%
  • Yes
  • 0%
  • Somewhat
  • 0%
  • Not really
  • 0%

Why Join Skillshare?

Take award-winning Skillshare Original Classes

Each class has short lessons, hands-on projects

Your membership supports Skillshare teachers

Learn From Anywhere

Take classes on the go with the Skillshare app. Stream or download to watch on the plane, the subway, or wherever you learn best.

Transcripts

1. Blender animation finesse: Welcome back. Aaron F Foss here, once again, with Part five of Blender Basics, the bouncing ball. And I've titled this course Animation Finesse because the previous course was Animation Basics. Maybe Finesse isn't the right word because a lot of what we're going to do here is actually pretty fundamental stuff. But it's all about interpolation, which is determining how keyframes are in between. How do we define the behavior of some properties such as a transform in between keyframes? And that is a Finesse process, but it's also a fundamentals process, because as we'll see, if we want to get smooth arcs to a bounce, for example, we have to use keyframe interpolation and we'll use Bezier curve handles in order to define those nice smooth flowing curved arcs. We'll also be looking at deformations, how to cause an object to squash and stretch. We'll do that with a modifier, and by the end of this course, we will have finished our animation, and then we'll be ready to render. So let's take a look at keyframe interpolation in blender. 2. Using the exercise files: Let's take a look at the exercise files. I provided with this series of courses on blender basics. At the beginning of the first course, you should have downloaded the exercise files and then extracted them and then placed those extracted files somewhere on your hard drive. So you should have a project folder, and it's called exercise files, but you can rename that if you want. The important thing is that the folders within that root level of the project are consistent. You don't want to change the names of these after the fact. We've got different folders for different data types. There's a folder for three D scenes, which are the blender scenes. There's a folder for input textures, which are all the bitmaps that are applied to environments and surfaces in the scene. And there's also an output renderings folder with some example renders. If we go into the three D scenes, just to refresh your memory, once again, the numbering scheme is as follows, the first number is the course number in the series. The second number is the chapter number within that course, and the third number is the movie within that chapter. Generally, the scene files flow from one to the next. Any given scene file is usually going to be the begin state of that movie and also the end state of the previous movie. With some exceptions, such as the case where it's the last movie in a course or the last movie in some process, I'll have provided a finished version which represents the end state of that movie. 3. Using the Graph Editor: In the last course, we created some very simple animation, but we're nowhere near finished here. We need to make a bouncing ball, not a floating rolling ball. And to do that, we need to learn all about keyframe interpolation, which is the transition between keyframes. And that's done in a window called the Graph Editor. Before we get to the graph editor, I want to do a little bit of user interface housekeeping. We could go to the animation workspace, and that's basically the layout that I want. I want to have a working window and then a rendered window and then my animation editor at the bottom. But I would have to set up a whole bunch of stuff as I did previously in these other workspaces. So I'm going to create another workspace that's similar to this animation workspace. I'll go back to four views workspace, click on the plus sign and say duplicate current. Double click on that. I'm going to rename it three views. And I'm going to join some areas, hover my mouse over the corner in the lower right of this user perspective view and drag on top of the top orthographic view below it until the cursor tool tip says, replace this area and release the mouse. Now, those two areas have been joined. I'll repeat that process over here. Join those areas or replace the area more precisely. And now we've got three panels. I've got a user view here. I've got a camera view, and I've got my animation editor. One last thing in this user view, I'm probably going to want to navigate within that view and go to, for example, a front orthographic view. To do that, I'll need to bring back my Viewport Gizmos Navigate option. So now I can, for example, click on negative Y, and I'm looking at the front orthographic view. And maybe I'll go into Wireframe as well. The keyboard shortcut for that is Shift Z. Now let's talk about keyframe interpolation. If I select something such as the position empty, in the timeline, as we saw previously, if we open up a summary and go through the whole hierarchy of categories of keyframes, we'll eventually get to the actual keyframes or the actual channels, which are shown here in black. And we see keyframes on those various channels, but we don't have the ability to visualize or edit the interpolation between keyframes. There's a similar window, which is called the dope sheet. If we go up here to our editor type, we can switch this over to dope sheet. It's very, very similar to the timeline. It's just got more controls. We have this menu up here where we can do things like delete channels and so on. And it does have a key menu in which we can work on interpolation, but we can't see the interpolation here. We can select keys. We can select ranges of keys and move them around. But in the timeline or the dope sheet, we have no ability to visualize or edit the function curves or the interpolation between keyframes. For that, we need the graph editor. I'll go back up here to the editor type and switch that to the graph editor. And now we see function curves. Those are curves indicating the change in some property value over time. Time runs left to right. The property value runs up and down. And some of these little dots are keyframes, some of them are tangent handles. It's really hard to see the difference. Keyframes are solid black dots. If I select a keyframe over on the right, we see the sidebar, and that gives us access to the numerical values for that keyframe and for its tangent handles. I'm not going to be using that, so I'm going to hide that with the key. Just like in the dope sheet and the timeline, we have a series of categories. We can open all that up and get to the actual animated tracks, and we have the ability to control properties of those curves themselves, for example, their visibility or whether they're enabled or not. 4. Linear interpolation: Continuing our exploration of the graph editor, you'll see we have a playback head up here, and we can scrub through time. But for some mysterious reason in Blender five, the playback controls were hidden by default. So we need to bring those back from the graph Editor's view menu. We want to enable at the top here, playback controls. And now we've got our transport controls, we can rewind and playback. Okay, now, let's talk about these function curves. Not all of them are effective right now. The Y location function curve is not actually doing anything. It's got a single keyframe on it. Maybe we can clean this up a little bit. We can navigate in this graph editor in the usual way using Control middle mouse, and that'll let us zoom. If we drag left to right, we can zoom out or in left to right. And if we drag up and down, we're zooming vertically. Let's hide the X location and the Z location curves because those are actually animated, and we only have the Y location curve or channel. It's got a single keyframe over here on the far right. I can select that and then press Delete, and that deleted that keyframe which also deleted the entire track. A track cannot exist unless it has a keyframe in it. Okay, we can re enable the Z and X location. If we click on a curve in the graph editor, we don't actually select that curve. But if we click on its name over here in the summary, then we do select the curve. This is the animation that we currently have on the position empty, and we're going to come back to this and do a lot more work on it. But to start off our journey in keyframe interpolation, I want to look at the most simple type of interpolation, which is linear interpolation, and a good candidate for that is our rotate empty. And to simplify things to make it easier to see, I'm going to disable this position empties animation. We see some check boxes over here. If I disable the checkbox for the object transforms, that turns off all of those subordinate channels or curves. And if I scrub in the timeline, we see that the location of the ball is not changing. That'll just make it easier for us to see what's going on. Going to the outliner, open the position empty hierarchy and select the rotation empty. And we can frame that in the graph editor with a couple of key commands. Press the A key to select all keyframes and then press the number pad dot key to frame the selection. We could go into the view menu as well and go to frame selected. So we can see the function curve for the rotation empty. And if we rewind and play that back and look closely, we'll see that the rotation is speeding up as it comes out of frame one, and it's slowing down as it approaches frame 60. And we can see that also on our function curve. The steepness of the slope indicates the rate of change for that property. If the slope of the curve is perfectly flat, that means that property is not changing in value over time. A shallow slope indicates slow movement, a steeper slope indicates faster movement. For this very simple example, I'm just going to make the ball rotate at a constant speed, and we can do that by setting the interpolation to linear. And to set interpolation correctly, we want to select the appropriate keyframe first. Interpolation only operates on the outgoing curve of a keyframe. So if I want to change this segment of the curve, I want to select the first keyframe. And now, when I change the interpolation type, that will affect this segment of the curve. Go into the key menu, and we can choose interpolation mode linear. And that's all there is to that. If we rewind and play this back, we will see that the ball rotation empty spins at a constant rate. And we can get in closer there, too with number pad dot and really analyze this. Linear interpolation is a super common algorithm or function in all of computing, and so you'll often see it referred to by its nickname, which is LRP LRP. If you see that, it just means a linear interpolation, transitioning from one value to another value at a constant rate. 5. Bézier interpolation: We've got our rotation set up for linear interpolation. Now we can go back to the position empty and reenable that animation. Turn on the checkbox in the Object Transform category. And now that animation has been re enabled. Let's zoom in on these curves, hover the mouse over the graph editor, press the A key to select all, and the number pad dot to frame the selection. The X location can be a linear interpolation also. I don't need that to speed up or slow down, and I don't want to slow out or slow in in that case. I'll set that X location to linear interpolation also. Select that just to make sure I've got the right curve and then select the keyframe on frame one. Go to the key menu and go to interpolation mode, set it to linear. Now it's linear between frame one and frame 25, but after frame 25, it's still got a curve to it. There is a keyframe at frame 25 that we don't actually need. I'll select that and press the delete key. Now we've got linear interpolation in the position. Play that back. So now we've got what we want for the rotation and the X position, and we're ready to focus in on the Z position. I'll hide the X location curve. Go back to the Z location, hover my mouse again, press A and then number pad dot to zoom in on that. And we can manually zoom with Control middle mouse, drag left to right, or up and down, and we can position with the middle mouse. Get that framed up. Now, this is a Bezier curve or a Bezier spline, and you're probably familiar with that from an illustration program. But the difference between a two D spline and this function curve is that we can only have a single value at any point in time. That means the curve cannot fold back on itself. The arrow of time is always moving in one direction forward. If I adjust one of these tangent handles, you'll see what I mean. I'll click to deselect everything and just select this first keyframe. And then drag this tangent handle. If I drag it down here, I can't take it any further. I can't move it before the keyframe itself, and that's so that the curve can't fold back on itself. Okay, so let's just adjust these, get a nice arc. I'll select this other keyframe, adjust its tangent handle. Rewind and play that back, see what we get. And that's a nice arc, but I think it's going up a little bit too high. I can move this first keyframe down. I'll select that key. And if I click and drag, I'm able to move it both in its value and its time, but I want to constrain this. As I'm moving that around, if I press the X key that's going to constrain in the X axis. So I'm not able to move in Y. I'm only able to move in X, which is the time. If I press Y, then I'm able to move in Y, but not in X, which is the value of the key. So I'll bring that down, which has the effect of lowering the position of the ball. And I'll make a minor adjustment to my curve, rewind, play that back, and that's better. Alright, cool. Moving on. We need more bounces, which means we need more keys. And we can navigate through time by dragging on this playhead. We can also use some buttons down here or some keyboard shortcuts. We have the jump time buttons here, and let's set that to use frames instead of seconds. Click on the little down facing arrow there and set the jump unit to frame. And now just using the arrow keys on my keyboard, I'm able to jump forward or back. So I'm just the right arrow to go forward, one frame, left arrow to go, back, one frame. So let's go let's say seven frames forward from that point of contact. One, two, three, four, five, six, seven. And I want to create a keyframe there. And there are lots of ways to do that. We can press the Ie key, and we can choose all channels here. Doesn't matter what we choose here because there's only one channel visible, so I'll choose all channels. And I've got a keyframe there. But notice what happened. It's navigate with the middle mouse button. Now we get this distortion in our curve, and that's called overshooting. And that's just a natural consequence of the automatic Bezier spline interpolation type. If we zoom out a little bit more, control middle mouse, and we select one of these handles, we'll see that they are joined. In blender terminology, they say these are aligned tangent handles. We need to break that relationship so we can adjust those tangent handles independently of one another. To do that, we can select the keyframe, and then we can go into the menus, but it's better to just remember the keyboard shortcut for this, which is V, and we can set the keyframe handle type. And in this case, we want it to be free. And then we can adjust that independently. Same thing here. We want this to be a free handle, so I can select that keyframe, press V, and set that to free. And I can continue on. Now, as an aside, it is really hard to see the difference between a keyframe and a tangent handle. So you might want to change the preferences. I'll do a quick detour into edit preferences to show you in the theme settings. In the graph editor drivers, we can set the vertex type, which is the color of a keyframe that's not selected. Let's set that to white. And then we have the active vertex, which is the keyframe that is currently selected. Let's change that to solid red or whatever colors you like. But this is going to make it a lot easier if you just customize these. So I'll close that. And when I select something like this vertex, this keyframe here, it's highlighted in red. And if nothing's selected, I can clearly see the difference between a keyframe and a tangent handle. All right. So we're doing pretty good here. Let's rewind and play this back. Okay, so that's a little bit extreme. Maybe select this keyframe and move it later so I can start moving and then press the X key to constrain that to X. Bring that a few frames later. So that's actually ten frames later than the initial point of contact. Okay, and maybe not quite so extreme of a bounce, bring that down and just play that back. And you can continue that process adding more keyframes and adjusting their tangent handles. So I can go to some point in time, add a key using the animate property button because that's actually faster than using the eye key and then go a few frames later, add another key and just repeat that process a few times until you get all the way to the end of the animation on frame 60, create a keyframe there. Okay. So we can move these around. We can adjust their tangent handles. But before we do anything else, we want to set all of these tangent types to free, select all those, and then press the V key, set the handle type to free. All right, then we can just go around, create some more bounces, maybe move key frames around. But this is pretty simple, pretty basic stuff. Rewind, play that back. And we've got a bouncing ball. 6. SimpleDeform Stretch Modifier: Now we're ready to add some squash and stretch to the ball. I've made some adjustments to the animation. If I select the position empty and then select the Z location track in the graph editor, we can see that I've actually removed one of the bounces and simplified this animation and fine tuned it a little bit. We can play that back, and we can see the end result I have currently. The other thing I want to do besides deformation is to illustrate that because of the way we set up our rig, we can rotate the ball in any direction, and that's not going to affect the spin animation. That'll be easiest to see if I go to the four views workspace, and I can zoom in on that ball with a number pad dot key. And I can rotate that in any direction, and it's not going to affect the spin of the ball animation. I want to make sure I have the ball selected, and I can go to the rotate tool with the R key and just rotate that in some interesting direction. Doesn't matter what. And then if I scrub in my timeline, we can see that the spin of the ball has not changed, but the initial orientation of the ball is different. So it's not orthogonal or square to the world. All right, very cool. Now let's add a deformer. I'm going to park the ball, in my case, on frame 25, which is when it contacts the ground. That's going to make it a little bit easier for us to see what's going on. And I'll zoom in a bit in the front orthographic view here, control middle mouse and shift middle mouse to position. I don't want to rotate anymore, so I'll go back to the select tool. The keyboard shortcut for that is B. And with the ball selected, I want to add a modifier. Go to the modifier properties. We've already got a modifier in here, which is the UV sphere primitive. We want to add another one. Click on the add modifier button. Modifiers are organized into categories. If you know what you're looking for, you can search for it. Otherwise, you can look through these categories. I know that my deformer is in the deform category, and it's simply called a simple deform. Here it is. And there are different types of simple deform. And we could try these out. Let's say I choose taper and play with this factor, and we can see how that's deforming the shape of the ball. Maybe I'll go over to this perspective you and press the dot key there, too. The stacking order of the modifiers is critical to the end result. Modifiers are calculated from the top down. So a UV sphere is created, and then it's deformed by this simple deformer. We can change the order of modifiers. I can drag this simple deformer up to the top. And when I did that, my taper went away. And now taper is not working anymore. This is a clear illustration that the order of operations is really critical. I don't want that simple to form modifier calculated before the primitive. That's not going to work correctly. I'm going to drag that symbol to form back down to the bottom, and now taper is working again. We can try these different types of deformers. What we want here is stretch, and the factor here is going to control the amount of squash and stretch, and it is extremely sensitive. You'll notice that, Okay, with a factor of zero, there's no stretch happening. As I bring this up, just a tiny bit to a value of 0.06, we see we've already got a very exaggerated deformation. And if I continue to bring that factor up, we can see, okay, we're actually causing that ball to flip inside out. So the range for the factor here is going to be very, very low. Okay? With a non zero factor, we can see that the deformation is aligned with the ball geometry. And again, if I scrub across here, we can see what's happening. The ball's rotating and the deformer is rotating with it. What we want is to control the deformation independently of the ball rotation, and we can do that by assigning an origin to this deformer. We see origin here. And if we click on that field, we'll see a list of all the objects in our scene. If that list is too long, you can use the eyedropper, but in this case, it's a very short list. I'm going to choose the deformer empty as the origin for the stretch modifier. Click on deformer empty. And now the stretch is happening in the space of this deformer empty, which is indicated here by single arrow pointed up. And as I scrub through time, we see that the deformer is not rotating with the ball. 7. Holding a Constant keyframe value: With the deformer on the ball, if we scrub through the timeline, we can see that the ball is spinning, but the deformer is maintaining its orientation to the world. Let's add some animation to that deformer. I'll go to frame one, select the ball and go to the modifier properties. We can animate any property just like we did with the transforms. On frame one, I'll set the factor to value of zero. Create a keyframe by clicking on the animate property button on the right. As soon as we do that in the graph editor, we now have a function curve for that factor. We can open up the ball action, and we can see that there's now a factor function curve, but it's only got one keyframe. I'll go down to frame 25 in my case, which is the point of contact and increase that factor. It's very sensitive. I'll set it to a value of only 0.05 and then click Animate property, and another keyframe is created. Even that small value gives us a pretty exaggerated effect here, but we do want some exaggeration. That's one of the 12 principles of animation established by the Disney studio way back in the Depression era. Exaggeration is going to make our animation more interesting, even if it's not exactly technically physically accurate. Let's take a look at that function curve. In the graph editor, I'll hover my mouse over the function curve area, select all with the A key, and then frame selected with the number pad dot key. And we see the classic spline curve interpolation. We've got a slow out of frame one and a slow in to frame 25. And we scrub in the timeline, we'll see that indeed the ball is deforming before it hits the ground. And that's not what we want. We want the ball to maintain its shape until it touches the ground and then instantly jump to that new deformer value. Now, a beginner animator would think that we could just move this keyframe to frame 24. So I'll deselect everything, select this keyframe start moving it, then press the X key and hold that down to constrain that to changing only in time. And if I bring that over to frame 24, that does actually do what we want. On frame 24, the ball is not deformed. On frame 25, the ball is deformed, and that's essentially doing the thing. But this is not the best way to do this. And the reason is, if you ever edit this animation, the relationship between those keyframes could change. If they suddenly become further apart than one frame, then you're going to have problems. What we want is just an instantaneous transition with no interpolation. So I'm going to move that key back to frame one, it may be a little bit difficult to select that because the tangent handles got changed. They moved closer to the keyframe, so now it's kind of hard to select that key without moving the tangent handles. We can move that key numerically. I'll open up the sidebar with the key and we have the frame number, which is labeled keyframe here, select that and type in a value of one. That sends our key back to frame one, press the key to hide that sidebar. So now we're back where we were. We don't want this spline curve interpolation. We actually want no interpolation. We want this value to remain constant until we reach the next keyframe and then immediately jump to the next keyframe value. And that's often called a hold key or sometimes a step key. In blender, this is called a constant interpolation, which is a bit of a contradiction in terms. If it's a constant value, then it's not interpolating. But with that first keyframe selected, I'll go into the key menu and choose interpolation mode, constant. And now as we scrub through, we can see that the ball maintains that value until it reaches frame 25 and that factor jumps to its new value. And we can move those two key frames around in time or change their values, and we'll never get any interpolation between those two keys. 8. Animating a damped oscillation: Let's add some more keyframes to the deformer factor to cause the ball to alternately squash and stretch. Select that ball and it's loaded into the graph editor. I'm going to set this up so that I can see the ball's function curve and the position emptys function curve at the same time. And that's done by clicking on this little pushpin icon. Pin that ball to the graph editor so that regardless of what's selected, we'll always see that ball's function curves. I'll do the same for the position empty, select it and enable the push pin on the position empty. Note, there's also a push pin for the object transform category. That doesn't work. It's a very long standing bug. I'm not concerned with the X location, so I can hide that. Go over to the graph editor, select everything with the A key and frame the selection with a number pad dot key. And now we see we have both of those curves displayed, and it doesn't matter what we have selected. Now the curves are in drastically different value ranges. The factor on the deformer is in the range of one hundredths of a unit. The ball's vertical position is in the range of ones of units. This difference in the range of values makes it difficult for us to visualize one curve while working on the other. We can force them to display in roughly the same value range by enabling normalize. And now those two function curves are stretched into an arbitrary range of negative one to positive one. These values on the left are, of course, not the actual values of those function curves, but that's just the range in which they've been forced. To create some keys for the deformer factor, I'm going to enable Auto key. This is a case where auto key is actually extremely helpful. So I'll go down to frame 25, and I want to create a new key frame three frames after that. And I've already set up the jump time buttons down here to operate on individual frames. I can use the keyboard shortcut of the right arrow that'll go forward one frame at a time. So three frames later, I want to create a keyframe on the deformer factor, select the ball. And I want this factor now to be a negative value. I want the ball to stretch in the opposite direction. But I don't want it to be as extreme of a value. So it's going to be negative but not as high of an absolute value as this. So that would be, let's say, a value of negative 0.03. Press Enter, and a keyframe is created. Cool. A couple of frames later, two frames later. I'll set the factor to a positive value, but again, not as extreme. I'll set it to positive 0.02. A couple of frames later with the arrow key, bring that factor down to negative 0.01. Frame this up in that front orthographic view with shift middle mouse. Go a couple frames later with the arrow key, and now we can set the factor to zero. Okay, we've got a damped oscillation, and we can see that as we scrub through here. We're getting alternating, squashing and stretching. Now, this is going by pretty quickly, so we don't need to worry too much about the precise details of this. I'm going to go down to the next point of contact, which in my case, is on frame 36, and that's when I want the ball to be squashed once again. And the ball hasn't fallen as far now, so the squash amount is not going to be as much. I'll set the factor to 0.03. And if we scrub, we will see that we are getting some deformation in the time between when the ball hit its value of zero and when the ball contacts with a factor of 0.03, that means our last keyframe here right before that point of contact is going to need to have an interpolation of constant. Go to the key menu, Interpolation mode constant. And we may need to clean up the tangent handle here on that incoming curve. But now we've got what we want. The ball is alternately squashing, then stretching, squashing, stretching, settling down, remaining at a constant value until it hits the next point of contact. All right, go a few frames later, one, two, three, and just repeat that process. I'll set the factor to a negative value, but not as extreme of a negative value. Let's say negative z 0.02. A couple frames later, one, two, set that factor to a positive value, but not as extreme, 0.01, couple frames later, one, two, factor of zero. Go to the next point of contact. We'll bring that factor up again, but again, not as much. Let's set that factor to 0.02. This keyframe here needs to be changed to constant interpolation, key interpolation mode constant. And then a few frames later. After that point of contact, one, two, three, I'll set the factor to negative 0.01, and then a couple of frames later, restore that factor to zero, and we've got a nice damped oscillation. And that's all we need. And again, this is going by so quickly that we don't need to sweat the small stuff. As long as this is oscillating and it's not deforming in times that it shouldn't be, we're all good. Okay? I can play that back. Okay, so we've got our deformer animation, at least for the factor. We also want to cause that deformer to rotate with the ball because we notice that on any deformation key, we'll see that the ball is squashing and stretching in world space because this deformer empty here is aligned with the world. What I actually want is for the deformer to rotate with the ball. But then when it hits the next point of contact, I want the deformer to once again be oriented with the world. So we'll need to put some animation on the deformer empty, as well. 9. Aligning deformation with rotation: To cause the deformer to track with a rotation of the ball will create some key frames on the deformer empty. This is the brute force method. It's not the most flexible way of doing this. And so we want to make sure that the animation on the rotation empty is finalized before we get to this point. I'm going to create some keyframes on the deformer empty. And I want to see the ball's deformation curve at the same time. But I'm not concerned with this position empty anymore, so I can reenable its location curve, but then click on the push pin to hide that object from the graph editor. So I want to create my first keyframe for the deformer empty at the point of contact that first point of contact of frame 25 in my case. Now, Auto key is on still, but I need to create the first keyframe manually. Select the deformer empty. In the object properties, manually create a keyframe on rotation Y by clicking on the animate property button on the right. Now we want to analyze the relationship between the deformer empty and the rotation empty. Scrub across the timeline and see how that relationship is changing. We want to just basically eyeball the rotation here so that the deformer empty is roughly aligned with the rotation empty throughout the entire period here. So I'll go to the last frame of the deformation. And with that deformer empty selected, activate the rotate tool with the R key and with auto key enabled, rotate that around Y until it roughly aligns with that rotation empty. Let's deselect everything, scrub in our timeline, and see if we've got it right. And it's pretty close. Alright, we'll re select that deformer empty, and let's activate the push bein there so that that curve is always visible. Okay, so that's pretty close. Let's go on to the next point of contact. In my case, frame 36. At that point, I want the deformer empty to be realigned with the world. I'll set rotation Y to zero. And now we've got that aligned correctly, and we'll repeat that process. We'll go down to the last frame of deformation scrub through that period and eyeball the rotation of the deformer empty so that it aligns with that rotate empty. So I'll rotate that around and a keyframe is created. We can see that, that is basically tracking. Now, don't get too obsessive about this because it's going to go by so quickly that it's going to be very hard to see any tiny inaccuracies. I'll go down to the next point of contact, set rotation Y to zero. And again, scrub through, observe the relationship between those two objects. Alright, so it looks like that's pretty closely aligned to the corner of the rotation empty. So I'll go down to the last frame of deformation and rotate that deformer empty so there's roughly aligned with the rotate empty and scrub through that and make sure that everything's good. Okay, so we're almost done. We just want to clean this up. We want to change the interpolation modes for these various keyframes. The keyframes at the points of contact need to be linear, and I can shift select these keys and then right click and we get a pop up menu, we can choose interpolation mode linear. And the same thing with these keyframes at the end of each deformation cycle, I'll select them with a shift key. Right click and set their interpolation mode to constant. Okay, so now our deformation is tracking the rotation, and it's also resetting every time the ball hits the ground. Very cool. And notice that those rotation curves are roughly the same slope for each cycle because we're trying to match to the rotation empty, which is interpolating linearly across the entire 60 frames of animation. 10. Fine-tuning and Extrapolation: We're almost done with our animation. Just a little bit of fine tuning left. We can play this back. And it looks pretty good, but the ball is actually not contacting the floor, so we need to fine tune that. So I'll stop my animation and scrub through to the first point of contact. And let's just clean up our graph editor here. We're not concerned with the ball's deformation anymore, so I can turn off the push pin for that, and we're done with our deformer empty, so I can turn off the push pin for that. And we're only concerned about the position empty, so I'll select that. And let's turn off normalize. Turn off auto key. We're done with that. And right now I'm only concerned with the Z location, so I'll hide the X location. And just select all the keyframes, maybe use the A key or just drag a rectangle around and press the dot key. We're concerned with these keyframes here, so maybe select those and press the dot key on the number pad. So on frame 25, we can see the balls not contacting the round. Let's just go back to the select tool, so we can hide that rotate Gizmo, press the B key. And we just want to move this keyframe vertically, parked on that keyframe. So select that key, then start moving it and press the Y key to constrain movement to the Y axis, which is the value, which in this case is the Z position and drag that until the ball geometry actually touches the ground. Go to the next keyframe. We've got a button for that down here. Jump to keyframe, select that next key. Start moving it, press the Y key, and move it until the ball touches the ground, go to the next key, select it, move it, press Y. Go the next key, select it, move it, press Y, bring it down. And then finally the last keyframe, make sure I can see it in that front orthographic view. Start moving the key, press the Y key, and then align the ball with the ground. And as we scrub across here, verifying that the ball is, in fact, touching the ground on every point of contact. Alright, so that looks good. The only thing we need to worry about now is, as I mentioned earlier in the course sequence, the shadow of the ball is actually a compositional element, so we need to be able to see that shadow. I'm currently in material preview mode in this camera view. I'm going to go back to the cycles rendered view. I previously created a keyboard shortcut for that custom one, which is F five, and I can set that view to be the rendered. And if you don't have that keyboard shortcut, you'll need to re enable the header up here by clicking on the little arrow and then set the viewport to rendered view from the icon on the extreme far right. Okay, I'm going to hide that header once again. So if we go through our animation, scrub through when we get to frame 60, which is the last frame of animation, the shadow is still visible. I want the ball and its shadow to completely leave the frame so that frame one and the last frame of the animation are exactly the same, which will allow me to create a looping animation. That means we need to revisit the X location for the position empty. I'll re enable that, and I can hide the Z location because I'm done with that. Go back to the function curve display area, hover my mouse, press the A key to select all, press the dot key to frame all. We could change the value of this keyframe at frame 60, just as we did by changing the values of the Z location keys. And that would solve the problem of the shadow, but it would introduce new problems. It would cause the ball to land in different places over time, and it would just basically change our whole animation. There's a better way to go about this, which is we can keep this slope of this interpolation here and just extend that infinitely forward into time and just add a few more frames to our animation. This is the easiest way to go about this, and it's not going to disturb our existing animation. So we'll go into the channel menu. And we're looking for extrapolation mode. Interpolation is finding the in between values. So extrapolation means extending the values, and we'll set this extrapolation mode to linear extrapolation. And now we can see that curve extends infinitely, and all I need to do is change my number of frames so I can scrub through here until that shadow is no longer visible. And in my case, that's frame 65, and I can set my end time down here to frame 65. And that's the same as if we went to the output properties. And that's that. Super easy. And I didn't change any of my other animation. I just extended that motion by five frames, and everything's wonderful. So I can go back to material preview here, use my custom keyboard shortcut F five and set that view to material preview. Very cool. So that's all there is to that. Now we've got our final animation done. And we can go back to our single viewport layout here, go to the camera view. Rewind, play that back. We can see that full screen. 11. Next steps: Alright. Awesome. We finally got our animation done. After 5 hours of work, learning all about Blender, now we've got an animation. We want to share that with the world. We've got to somehow export that to a series of images, which we call a movie. And that will be the subject of the final course in this six course sequence. It'll be all about production rendering. And that's actually a two step process. First, we'll look at optimizing rendering and exporting to an image sequence. And then as a little bit of a bonus, we'll also see that blender can be used as a video editor, and we can actually convert an image sequence into a compressed movie that then we can upload to the Internet or whatever. So I'll see you in the final course in this sequence, Part six, which is production rendering.