Welcome to lesson three of animated loops. In this lesson,
we're going to animate our rigged character in a bouncing loop.
This will show how to create a very short loop using a lot of overlapping smooth
motion. Let's get started.
Before our character can bounce, we need to give them something to bounce on,
so let's create a trampoline.
We'll start with the Shadow layer,
which is going to become the trampoline shadow. Make this bigger,
490 by 90 pixels.
Then duplicate the Shadow layer and name this TrampolineRing.
Move the Position of this above the shadow.
Change the Fill Color to light blue and give it a Stroke 20 pixels wide,
the same color as the Fill.
Then duplicate the TrampolineRing and name this TrampolineRingFront.
Move this layer up just below all of the null layers.
Solo this layer so we can see what we're doing.
We don't want a Fill - just a Stroke.
We're going to add Trim Paths to this because we only want to see the bottom
half of it. Set the End of the Trim to 50%.
Change the Offset to 90 degrees to rotate it around to the bottom and also give
it a Round Cap just to smooth out the ends.
Name the Ellipse within this layer Top,
duplicate that and name it Side.
Move Side below Top.
We're going to make the Side layer a darker shade of light blue.
Move the Position of the Side ellipse Path one pixel lower,
then add a Repeater to the Side shape.
Make 18 copies of this,
in the Repeater Transform we just want it to move one pixel in the Vertical
Position only.
This gives a 3D style edge to the Front of the trampoline.
Next we'll create the trampoline legs.
We'll do this with the Rounded Rectangle Tool. Double-click that.
Change the Size of the rectangle to 20 pixels wide and 90 pixels high.
Make sure the Roundness is at least 20 so the rectangle has a round end.
We don't want a Stroke - just a Fill, the lighter shade of blue.
Name this layer LegsFront.
Move the Horizontal Position of the rectangle shape within the layer to 175.
Duplicate the rectangle and change the Position of the copy to -175.
Move the LegsFront layer below TrampolineFront.
Move the Position down so it looks like they're attached to the front edge of
the trampoline.
Duplicate LegsFront and name this LegsBack.
Move this layer down just above the Shadow layer.
Change the Scale to 75%.
And move the Position up so it looks like they're attached to the back edge of
the trampoline. Now we'll create the middle part of the trampoline,
which is the part that our character will be bouncing on.
Duplicate TrampolineRing and name this TrampolineMiddle.
We don't want a Stroke - just a white Fill.
Change the Size to 420 by 55.
We don't want the middle part of the trampoline to be a perfect ellipse.
We need it to bend and stretch. To do this,
open up the Ellipse inside the layer. Select the Ellipse Path,
right-click and select Convert to Bezier Path,
and this changes it to a shape made of points,
which we can then move around to deform it.
We don't want it to bounce with a uniform curve though,
so we'll add two more points to the shape.
Drag out a guide from the Ruler just to help make sure that the points we're
adding are symmetrical. Select the Add Vertex Tool,
unclick the Shape Path to add two more points where the guideline intersects it
and we can get rid of the guide now.
Now we can animate a less uniform shape when we are bouncing our character,
we will need to create a separate layer for when the trampoline stretches down.
Duplicate TrampolineMiddle and name this TrampolineMiddleDown.
Set the vertical Scale to -100.
Parent that to TrampolineMiddle.
Move the layer up just below LegsFront.
Change the color to a very light gray because this is under the trampoline,
in Shadow.
Then duplicate TrampolineRing and move this above TrampolineMiddleDown,
name this TrampolineRingMatte.
We don't want a Stroke for this - just a Fill. Then set TrampolineMiddleDown
to use the above layer as an Inverted Alpha Matte.
We did this because we want it to be the shape stretching below the trampoline,
which should only be visible below it, but layered above our character.
Now we can delete our Color Palette.
And we'll also create a null to control the Position of the trampoline.
Duplicate CharacterNull, and name this TrampolineNull.
Copy and paste the Position from one of the TrampolineRing layers.
Then parent all of the trampoline layers apart from TrampolineMiddleDown,
but including the Shadow, to TrampolineNull.
Then we can use this null to move the trampoline lower near the bottom of the
frame to give our character more room to bounce,
and we can use our CharacterNull to move the character near the top of the
frame, which will be the starting point of our animation.
Like with lesson one,
we're only going to animate using a short section of the Timeline. Again,
let's start at two seconds.
Drag out a marker and name this Start.
Press B to set the beginning of the work area.
We're going to make a one second loop,
so move to three seconds and drag out a marker for the End and go one frame
back.
Then press N to set the end of the work area and now we can start animating.
Select the CharacterNull and right-click on the Position.
Then click Separate Dimensions because we only want to animate the Y-position of
the character. Set a keyframe on the Y-position at the Start of the animation.
10 frames later,
move the Position down so the character is standing on the trampoline.
This is going to be the contact point of the bounce. 10 frames after that,
copy and paste the keyframe we just made.
This is going to be the release point of the bounce. Then at the End,
copy and paste the Start keyframe to put the character back in the air.
At the midpoint of the animation,
we want the character to be dropping through the trampoline slightly.
Select the middle, Start and End keyframes and set these all to Easy Ease.
This doesn't look great yet because we need to do some work in the Graph Editor.
Select the Y Position property and open the Graph Editor.
Make sure we're looking at the Value Graph for this
and in the Visibility you can just have Show Selected Property selected.
Then we can adjust the handles on each of these keyframes to smooth out the
curve of the Graph. We want the Start and End to have quite a flat curve,
which will make our character hang in the air at the top of the bounce for
longer.
The middle can be more pointed to have a quicker bounce off the trampoline.
Then use the Convert Vertex Tool to adjust the contact and release points,
making them steeper so the movement is faster.
The curve should be smooth and roughly symmetrical.
Now the movement should be much better.
Let's go back to the contact point and close the Graph Editor.
Now we'll go down to the TrampolineMiddle layer to animate the trampoline
bouncing when the character hits it. First, we'll animate the Position.
Again, separate the dimensions of this,
set a keyframe on the Y-Position at the resting point here,
five frames later at the bottom of the bounce, move it lower,
but not past the bottom of the trampoline.
Ten frames after that, move it up near the top edge of the trampoline.
And five frames after that,
move it slightly lower than the original resting position.
Copy and paste the End keyframe to the Start.
Then five frames after that,
move it slightly above the original resting position.
For every keyframe besides the contact point, add Easy Ease to them.
We also want to animate the Scale of this to help it look stretchier.
Set a Scale keyframe at the contact point at 100%.
Five frames after that, reduce the Scale to 95%.
Five frames after that, it passes through the resting point again,
so set the Scale back to 100. And five frames after that, at the top,
scale it back to 95%. At the End frame set it back to 100.
Then for all of these keyframes apart from the first one,
set these to Easy Ease.
Now we'll animate the path's shape to be even more stretchy.
Starting with TrampolineMiddleDown,
add a Path keyframe at the contact point. Five frames later,
pull the path points down to stretch the trampoline in the middle.
The middle can be quite flat because it needs to contain the feet.
Try to keep the shape symmetrical.
Five frames after that, copy and paste the first keyframe.
Add some easing to the middle keyframe,
but set the Velocity Influence to 50% for both values to give that a bit more
weight.
Now we will animate the TrampolineMiddle Path stretching up.
One frame after the stretch down disappears, add a keyframe to the Path shape.
Three frames after that, pull the points to stretch the shape.
Keep it symmetrical again,
but it doesn't need to be as flat as on the stretch down.
Set that keyframe to Easy Ease.
Then five frames after that, copy and paste the first keyframe.
Now we have the shape bouncing through the trampoline on both sides.
One frame back, add a keyframe to the TrampolineMiddleDown Path shape.
Then at the End frame, have it stretching down again, but less than before,
just poking out from the bottom.
Set that to Easy Ease.
Then copy and paste that keyframe to the Start.
Five frames after that,
copy and paste the resting keyframe from the contact points.
Back down to the TrampolineMiddle layer, three frames before that,
add a keyframe to the Path. Three frames later,
have it stretching up very slightly.
Add Easy Ease. Then three frames after that,
copy and paste the first keyframe. It's looking okay.
Now we'll do some very subtle animation on the shadow's Scale.
We want this to move in time with the TrampolineMiddle's position. Set
a keyframe with the Scale of 100% at the contact point.
Five frames later, at the bottom of the bounce,
increase it to around 103. Ten frames later,
when the trampoline is stretched up, reduce the scale to 99.
Then at the End frame, back to 100.
Then Easy Ease all of the keyframes apart from the first one. At
the bottom of the bounce, it's stretching a bit too low,
so I'm going to move that up a bit.
And I also want to move the character down a bit more on that frame.
We'll fix the Position of the feet now. Back at the contact point,
adjust the Position of the Foot nulls, so they're a bit closer together.
We're just going to animate the left foot first,
then copy and paste those keyframes to the right foot later.
Keyframe the Position and Rotation of FootLeftNull at the contact point.
Five frames later, rotate the foot up so it doesn't poke through the trampoline.
Keyframe the Position, too. Five frames later,
move the CharacterNull up first so the feet are at the top of the trampoline
stretch.
Then rotate the foot down to match the shape of the trampoline and keyframe the
Position, too.
At the End frame, move the foot to extend the leg out,
almost like he's doing the splits.
And rotate the foot to point the toes up too.
Copy and paste those keyframes to the Start.
Add Easy Ease to the Start and End keyframes.
We also want to adjust the motion path by using the Convert Vertex Tool.
Select the Start and End keyframes and click and drag on the Path to add a
smooth curve to the top parts of the motion.
On the frame after the release point,
move the foot down slightly so it's almost touching the trampoline with the toes
pointed down.
Set those keyframes to Easy Ease, too.
In the middle of the movement on the way up, point the foot down.
And at the contact point,
point the toes up so the foot is landing on its heel.
Then at the middle of the movement down, rotate the toes down slightly.
The speed of the foot movement needs adjusting to kick out faster,
but stay held out a bit longer. So select the first and last Position keyframe,
edit the Keyframe Velocity and set both values to 75%.
We also want to offset the timing of the rotation.
Now that we're using Character Tool,
we can also use this to help with expressions, so let's open that up.
In the Assistant panel,
there are three buttons under the Looper tab for looping keyframes.
In lesson one, I showed you how to use a loopIn expression,
and you can just use this button here to automate that. Or,
this button will add loopOut
and this middle button will add loop In and Out together.
Which one you use depends on your keyframes, but the way that I animate,
looping both In and Out is usually the best option because it means you're free
to move your keyframes either forwards or backwards in the Timeline.
So select the foot rotation keyframes and add loop In and Out to these.
Then select just the first and last keyframe and move these two frames later,
and this second keyframe - one frame later.
And rotate the foot up a little more.
We did this to give the foot rotation a slight delay behind the Position when
the leg kicks up.
Now, we will animate the Position of the BodyNull delayed behind the bounce.
So, starting three frames after the contact point,
set a keyframe on the Position.
Four frames after that, move the body down to bend the leg slightly.
Then four frames after that,
have the character stretching up as much as they can without overextending the
legs, which is pretty much the starting pose anyway. Four frames after that,
copy and paste the first keyframe,
add Easy Ease to the middle two keyframes.
Now we can copy and paste the keyframes from FootLeftNull to FootRightNull.
Do that for Position and Rotation.
I'll just move the first BodyNull keyframe back one frame,
and I'm also going to adjust the motion path of the foot.
I want it to have a wider arc on the movement down.
And I want to reduce the arc on the upper parts of the movement.
Copy and paste those Position changes from left to right.
And on the frame after the release point,
I want to move both feet a little lower.
Now we'll do some animation on the face.
Select the FaceNull at the Start,
set the Vertical Position to -50 and add a keyframe.
At the midpoint, change that to 25, then at the End,
copy and paste the first keyframe.
Add Easy Ease to them all, add a loop In and Out expression.
And shift them four frames later so it's delayed behind the movement of the
body.
Now, we'll animate the hands. First of all,
we need to change the direction that the arms bend.
Select the right wrist and change the Direction to 100.
Select the left wrist and change the direction to -100.
We'll animate HandLeftNull first.
We want the Start position to be up in the air a little.
Set a keyframe there.
Then change the rotation so it's pointing in the same direction as the arm and
add a keyframe. At the midpoint, move the hand down
and rotate it so it's pointed up even more.
At the End, copy and paste the Start keyframes.
Set the Rotation keyframes to Easy Ease. For the Position,
you want to add a curve to the motion path like we did for the feet.
Select the Start keyframe and drag out a handle with the Convert Vertex Tool,
select the End keyframe and drag the handle out in the opposite direction,
making sure the curve is smooth. And for the Start and End keyframes,
set the Velocity Influence to 50%.
For the middle keyframe, we'll just do Easy Ease. Select
the Position and Rotation keyframes and add a loop In and Out expression to
these. Move the Position keyframes five frames later
and the Rotation keyframes - five frames after the Position.
We also need to adjust the Position of the elbow.
We can do this by selecting the left wrist
and in Effect Controls we can keyframe the midpoint.
We want it to be 50% at the Start,
at the midpoint make it 25%, to move the elbow further out from the body.
Then at the End,
copy and paste the first keyframe and add Easy Ease to all the keyframes.
We will copy and paste these midpoint keyframes to the right wrist, too.
Then copy and paste the Position and Rotation keyframes from HandLeftNull to
HandRightNull.
We'll also animate the fingers. Scroll down to the hand left Shape layer.
Within that,
add a keyframe to the Path for all the fingers and the thumb at the start of the
animation.
We want the fingers here to all be spread wide apart,
which is pretty much how we set them up to begin with.
At the midpoint, we want to make it a closed fist,
so pull all of the outer points in towards the hand.
At the End, copy and paste the Start keyframes, then add Easy Ease to them all.
We'll also add a loop In and Out expression to these
and we want to offset the timing of these five frames later.
It looks okay, so we'll now do the same for HandRight.
Select all of the finger and thumb paths on that layer.
Then copy and paste all of the keyframes from HandLeft.
Now we will add some animation to the mouth. Go to the Start frame
and on the MouthMatte layer
we want to animate the Path Shape and the Stroke Width. At the Start point,
we just want to make the mouth as wide as possible.
At the midpoint, we want it to be a bit smaller,
a bit higher, and with a flatter curve.
At the End, copy and paste the Start keyframes and add Easy Ease.
In the MouthDetail layer,
we're going to animate the Position of the tongue shape.
When the head is tilted up, we want the tongue to be lower down.
And when the head is tilted down, we want the tongue to be higher up.
At the End, copy and paste the first keyframe and add Easy Ease.
We could stop the animation there as it's a pretty good loop already,
but I find that symmetrical animations like this can look a bit unnatural.
You want the movement in your loops to be balanced,
but not necessarily with perfect symmetry. To fix this,
we're going to repeat the bounce twice,
but with slightly asymmetrical animation, which is then mirrored on each bounce.
Press U to show all keyframes. To start,
you want to make sure that the first and last keyframe on all of our layers are
exactly one second apart. For those that aren't,
we'll add keyframes to the Start and End.
There should just be the BodyNull Position, the
TrampolineMiddle Path
and Scale, and the Shadow Scale.
Now we want to add a loop In and Out expression to all of these keyframed
attributes.
This will be any that don't already have this little arrow next to the
Stopwatch. Scroll down and select any attributes that don't have this arrow.
Then click the loop In and Out button.
Now we're going to make this a two second loop,
so drag the End marker out to 4 seconds on the Timeline.
Move one frame back and press N to set the End of the work area.
Now if you play the animation,
you should have a perfectly looping two second loop.
Go back to the Start frame, and we're
going to start by adding some rotation to the BodyNull.
Set the Rotation to -10 and add a keyframe.
At the contact point, 10 frames later, change it back to 0.
At the release point, 10 frames after that set another keyframe at 0.
10 frames later at the top of the jump, set the Rotation to 10 degrees,
back to 0 10 frames after that. 0 again,
10 frames later. Then at the End,
copy and paste the first keyframe.
For the first, last and middle keyframes which are all rotated,
set these to Easy Ease. Offset
just these three keyframes by two frames.
Then add a loop In and Out expression.
Now we'll adjust the FaceNull Position.
Copy and paste all of the Position keyframes to repeat them.
On the first keyframe, change the Horizontal Position to 15.
On the middle keyframe, make that -15
and the last keyframe back to 15.
We'll need to adjust the tongue Position now, too, to match the face movements.
Copy and paste those keyframes on the MouthDetail layer to repeat them.
On the first keyframe,
move it three pixels to the left to offset the movement of the face.
On the middle keyframe, move it three pixels to the right.
Then the last keyframe - three pixels to the left.
The hands are okay because they're parented to the BodyNull,
but we need to fix the Position of the feet.
We'll do this first on the FootLeftNull.
Copy and paste the Position keyframes to repeat them.
Then go to the first frame and select the first and last keyframe so that we can
move the null while changing both keyframes. Move the foot down slightly.
Then at the middle keyframe, move it down too but not as far.
Then just look through the movement to make sure the leg never overextends.
If it does,
adjust the handles on the motion path to reduce the arc of the curve.
Do this for the movement on both bounces.
It looks okay so
now we'll copy and paste these Position keyframes from FootLeftNull to
FootRightNull, but then offset them back by one second;
because they're on the opposite side, they need to have the opposite timing.
The very last thing we'll do now is add some squash and stretch to the body.
Select the Body Shape layer and show the Scale. At the Start,
keyframe the Scale at 100% in both directions.
Eight frames later, change this to 95 and 105,
seven frames after that, at the bottom of the bounce,
change the Scale to 110 and 95.
Four frames later - 95 and 110,
four frames after that - 105 and 95.
And seven frames after that, at the End of the first bounce,
copy and paste the original keyframe.
Set all of these to Easy Ease, add a loop In and Out expression.
Then offset the keyframes by three frames.
We need to adjust the hips and shoulders to move with the Body shape.
Start with the left hip.
Set a Position, keyframe at the same time as the first body Scale keyframe,
and another one at the last keyframe.
Then we need to fix the Position at this point in the bounce.
So change the Vertical Position to 160 at this frame.
Then four frames earlier, copy and paste the original Position.
Set all of these to Easy Ease,
add a loop In and Out expression.
It looks good, so copy and paste these keyframes to the right hip.
We'll do the same for the shoulders. Start with the left shoulder. Set
a Position keyframe at the Start and End.
Find the frame we need to fix.
Change the Horizontal Position to -175.
Four frames before that,
copy and paste the original Position and paste that four frames after,
too. Set all the keyframes to Easy Ease,
add a loop In and Out expression.
It looks okay so let's copy and paste these keyframes to the right shoulder.
And now we have a finished bouncing loop with the same asymmetrical bounce
mirrored twice so the animation still feels balanced without feeling robotic and
unnatural. I'll see you in the next lesson.
Thanks for watching.