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.