Welcome back to Animated Loops.
In this lesson, we're going to learn how to make a particle loop,
but that's only going to be the very last part of this lesson.
Most of this lesson we'll focus on creating more advanced shape layer animation,
using lots of expressions and nulls to link all of your shapes together.
Let's get started.
We'll start by building a chair.
I have a composition named RockingChair 1080 by 1080,
30 frames a second, six seconds long.
I'll start by creating an Ellipse.
No Fill, just a 40 pixel wide Stroke.
Make it brown
and 300 pixels wide. Name
the layer ChairSideLeft.
On the Ellipse, add Trim Paths.
Set the End to 30% and set the Offset to 126
degrees to make it level on the ground and give it a Rround
Cap.
Put the Ellipse in a group and name the group RockerFront.
Then create a new null and name this RockerLeft.
This should be at the same Position as the Shape layer.
This null will control the Rotation.
So link the Rotation of the Ellipse Transform to the RockerLeft Rotation with an
expression.
Now the null's Rotation controls the rotation of the shape,
but it isn't parented to it.
Duplicate RockerLeft and name it ChairMove.
Parent RockerLeft and ChairSideLeft to ChairMove.
Show the Anchor Point for ChairMove and add an expression to this, type: [-,
then connect this to the Rotation of RockerLeft,
then type: * 3,
This means the X Position of the Anchor Point will be three times as big as the
RockerLeft Rotation value, and negative. Then type: value [1]]
to make the Y Position of the Anchor Point the same as the current value.
This makes the chair rock back and forth controlled by the Rotation.
But I did this with the Anchor Point,
so we can still move the chair around if we need to.
On the ChairSideLeft layer, duplicate the RockerFront group,
name this RockerBack,
move it below and make it a darker brown.
On the Ellipse within that layer,
change the Transform Position to 2 and minus -0.2,
which moves it very slightly up and to the right.
Then on the RockerBack group add a repeater.
Give this eight copies.
And the repeater Transform will use that same Position 2 and -0.2.
Now we can rotate RockerLeft,
but the RockerBack group always stays at the same angle, creating a 3D effect.
On ChairSideLeft,
create a rounded rectangle.
Name this Seat.
Make the Size 200 by 40.
No Stroke, just a Fill, the same color as RockerFront.
Move the rectangle Path Position up to -56,
but keep the position of the shape in the same place.
Then copy and paste the Rotation from one of the ellipse shapes to the Seat
Transform Rotation to give it the same expression we wrote earlier,
linking it to the RockerLeft Rotation.
Duplicate the Seat and name this ArmRest.
Change the rectangle Size to 155 by 30.
And move the rectangle Path position to around -52,
-148.
Duplicate ArmRest, group this and name the group ArmRestBack.
Move this below ArmRest and make this a darker brown.
On ArmRest 2 within the group,
change the Transform Position to 2 and -0.2 again.
Then you can just copy and paste the repeater from RockerBack to ArmRestBack.
Now we have a '3D' arm rest too.
But having overlapping straight lines like this can create some sharp edge
noise.
So I'm going to add a slight 1.5 pixel stroke to the top ArmRest Shape to
smooth out the edge.
In ChairSideLeft,
reorder the layers:
ArmRest, then Seat, then RockerFront,
then ArmRestBack and RockerBack.
Now let's draw some lines connecting all of these elements together.
I'm using a Stroke,
20 pixels wide with a Round Cap.
Create the back leg,
the front leg, a cross bar between these two shapes,
another longer Stroke for the edge of the back rest of the chair
and a shorter stroke for the arm rest support.
Make sure the Position of all of these shapes is at zero,
where the RockerLeft null is.
Then copy and paste the rotation expression from the Seat shape to all of these
new shapes.
So RockerLeft controls them all.
Now duplicate ChairSideLeft,
move it below and name this ChairSideRight.
Reposition ChairSideRight to around 154 and -16.
Adjust the BackRest Path to make the top of the chair wider.
Move the Path Position of both ArmRest layers forward to around -34.
And move the ArmRest and ArmSupport shapes just below the BackRest shape.
Recolor the seat,
leg and rocker shapes to be slightly darker to give it some contrast from the
front.
Now we have two sides of a chair,
both rocking or controlled by one Rotation value.
Now we need to create the shapes connecting these two sides of the chair
together.
We'll start with the top of the backrest.
Just a Fill, no Stroke.
Then hold Alt or Option while dragging to draw a rectangle for the top of the
chair back.
Make sure the Position of the rectangle Transform is at zero.
Then position these points correctly.
Name this layer ChairBackTop.
Move the layer between both sides of the chair and parent it to ChairMove.
Now we're going to use a script that comes with After Effects called
CreateNullsFromPaths.
Select the Path in ChairBackTop,
then click PointsFollowNulls.
This creates four nulls for each corner of the shape.
First, rename these so you know which corner they are linked to.
Parent the left nulls to RockerLeft.
Then duplicate RockerLeft and name this RockerRight.
Copy and paste the position from ChairSideRight to RockerRight.
Then link the Rotation of RockerRight to RockerLeft.
And you can parent the ChairBackTop right nulls to RockerRight.
Now if you rotate just RockerLeft,
everything is linked together.
We'll do the same for the other parts of the chair.
First do the Seat using a 40 pixel wide Stroke,
the same width as the seat height, give it a Round Cap,
move the points to the back of the seat.
You can select each of the ChairSide layers and drag out some guides to help you
with the Position.
Then select the Path and click PointsFollowNulls.
Rename the nulls SeatBack:
left and right.
Parent left to RockerLeft and right - to RockerRight.
Now the back of the chair should move in 3D.
Duplicate all of the seat back layers.
Rename these SeatFront.
Select SeatFront and in EffectControls,
reconnect the points to the SeatFront Left and Right nulls.
Select both nulls and slide the Position over to the front of the chair.
Now the front and back of the chair move together.
You could do the same as with the top of the chair to fill in the hole,
but as I'm going to put the character here, you won't see the hole anyway.
Now let's connect the legs.
Duplicate the SeatFront layers.
Rename these LegsCrossbarFront.
Select the Shape layer and reconnect the points to the new nulls in
EffectControls.
Make the Stroke Width 20.
Select both nulls and move them down to connect the front of the legs.
Check it's working.
Then duplicate these three layers for the back cross bar.
Rename them LegsCrossbarBack.
Reconnect the nulls in EffectControls.
Select both nulls and slide the Position over to the back.
Change the color of the shape to the dark brown.
And test it's working.
Now we just need to add some more bars for the back of the chair,
but we need to make some new nulls to parent these to.
Duplicate SeatBack: Left and rename this ChairBack:
Bottom.
Link the Rotation of this null to the RockerLeft Rotation, but make it negative.
Duplicate ChairBack: Bottom and name it ChairBack: Top.
Move it up to the top of the chair on the left.
On the Rotation expression on ChairBack: Top,
make this -0.9 multiplied by the RockerLeft
Rotation as the top is slightly wider than the bottom.
Duplicate all of the SeatBack layers.
Rename these ChairBackBar1,
and the nulls - Top and Bottom.
Reduce the Stroke Width to 12 and reconnect the points to the new nulls in
EffectControls.
Reposition the nulls to the top and bottom of the chair.
Parent ChairBackBar1: Top to ChairBack: Top
and ChairBackBar1:
Bottom to ChairBack:
Bottom.
Now that should move correctly.
Duplicate these BackBar layers a couple more times for two more bars.
Test out the rotation.
It's looking good.
Reposition the ChairMove null to the left and lower down.
Create a blue background layer.
And create an ellipse for a shadow.
Make it darker blue.
Make the Size 570 by 60.
Parent it to ChairMove and position it below the chair at around
86 and 152.
In case you want to change the Scale of the chair at any point,
you should also parent all of the shape layers to the ChairMove null,
otherwise the Stroke width won't scale correctly.
I'm going to make all of the chair layers brown just to help keep things
organized.
Then select all of the nulls besides ChairMove and RockerLeft,
and hide them,
make them shy layers and hide completely because we won't need to move them.
Now the chair is done so we can bring in our character.
Copy all of the character layers facing to the right as we had them at the start
of lesson four. Paste these into the RockingChair composition at the top. Move
all of the shape layers down below ChairSideLeft.
Then move HandLeft and ArmLeft above ChairSideLeft,
move the ChairMove and RockerLeft nulls to the top
and move FootLeft and LegLeft just below ChairSideLeft,
then all of the face elements, and move the body,
hand right and arm right below SeatFront. Parent Character
null to RockerLeft.
Set the Character null Position to around 95 and -260,
then move the Anchor Point to the bottom of the body on the chair. And
also move the Anchor Point of the body null to the same position.
link the Rotation to RockerLeft rotation with an expression and make it negative
so the character stays level when the chair rotates.
On both of the ankles in EffectControls,
make the length shorter around 145 and change the mid point to
75%.
Parent FootLeft null and the LeftHip to RockerLeft.
And FootRight null and the RightHip to RockerRight.
And I'm just going to show all of the shy layers so I can move all of the hidden
nulls to the top.
Then hide them again.
Move the LeftHip to around 80 and -95.
And the RightHip to around 30 and -90.
Rotate both feet nulls to around 65 degrees.
Move FootLeftNull to around 120 and 25
and FootRightNull - to around 70 and 30 so the feet are hanging
down with the legs bending over the front of the seat.
Move the left shoulder to around -170 and 30 so it's a bit lower down.
Parent HandLeftNull to RockerLeft
and move the Position to around -15 and -175,
with the Rotation around -150.
Go down to the HandLeft layer and flip the Vertical Scale to -100.
Duplicate HandLeft and name this HandLeftFingers.
Delete the Ellipse and Thumb from this layer.
And delete the fingers from HandLeft.
Move HandLeft below ChairSideLeft.
And adjust the Thumb Path shape behind the armrest,
although you can't actually see it anyway.
Then adjust the finger Paths on the HandLeftFingers layer so they're resting on
top of the armrest.
Select the right wrist and flip the direction of the bend.
Now, we're going to draw a pipe.
Create an ellips. No
Fill,
just a light brown Stroke, 12 pixels wide.
Make the Size 105 by 30.
Name the layer PipeFront.
Name the shape Rim.
Duplicate the Rim, move it below, name the shape Bowl.
No Stroke, just a Fill, the darker brown.
Make the size 135 by 155.
Move the Path position to 0 and 38.
Duplicate the Rim ellipse path.
Move this below the Bowl ellipse path.
Link the Size of this ellipse path to the Rrim ellipse path.
Add Merge Paths to the Bowl, set this to Subtract.
Select the Bowl then add a rectangle,
which should be 100 by 100 by default.
Move the position of this up to -50
and change the Width to 200 so this cuts off the top edge of the Bowl.
Then add Trim Paths to the Rim.
Set the End to 50% and the Offset to 90.
Add a Round Cap to the Stroke.
Duplicate PipeFront.
Move it below.
Name this PipeBack.
Delete the Bowl from this layer.
Delete Trim Paths from this Rim,
add a darker brown Fill to the Rim behind.
Then link the Path Size of the PipeBack Rim to the Size of the PipeFront Rim.
Parent
PipeBback to PipeFront.
Now we can adjust the Size of the PipeFront Rim to add some depth to the Pipe.
Now on PipeBack with the Pen Tool draw the rest of the Pipe.
Okay.
Parent PipeFront to HandRight null.
Move the position of PipeFront to around 96 and -62.
And I'm going to make the right arm a darker yellow.
Move the pipe layers down above all of the Shape layers.
Go down to the HandRight Shape layer,
duplicate this and name it HandRightFingers.
In this layer, delete the Thumb, Finger1 and the Ellipse.
Delete Fingers 2, 3, and 4 from the HandRight layer.
Move the HandRight fingers above the Pipe.
Then adjust the finger Paths to be holding the pipe. Adjust
the finger and thumb on the HandRight layer, too.
Move the Position of the right shoulder down to around 150 and 90.
Move the Anchor Point of HandRight null to the end of the pipe
and position it just in front of the mouth.
Move the FaceNull over to around 65.
Now I'll draw some eyebrows.
No Fill,
just a Stroke, 20 pixels wide. I'll make them yellow,
a bit lighter than the body.
Draw the left eyebrow, give it a Round Cap,
make it roughly the width of the eye, following the same curve.
Name the layer Eyebrows and the shape within that - Left. Duplicate Left,
name it Right. Move the layer down above the eyes and parent it to the FaceNull.
Now, draw a beard. No Stroke,
just a Fill, the same color as the eyebrows.
Start with a point between the eyes around where the nose would be.
Then add points either side of the mouth,
name, the layer 'Beard' and move it down below the eyes.
Then add two more points around each knee.
Then one more point at the bottom with tangent handles pointing up at an angle.
Now as with the chair, we're going to create nulls to control these points,
but using a different version of the script,
which also creates nulls to control the tangents.
So select the Beard Path and click PointsAndTangentsFollowNulls.
This creates a lot of nulls,
one for each of the points and one for each of the in and out controls of the
tangents, controlling the shape of the curves.
First, let's name them all, starting with the Path points. Name them Beard:
Nose, Beard: MouthLeft,
Beard: KneeLeft,
Beard: Tip,
Beard: KneeRight, and
Beard: MouthRight.
Then rename all of the in and out nulls.
You can see which point these are linked to by which null they are parented to.
Parent all of the Path point nulls to FaceNull.
Besides KneeLeft, which is parented to HipLeft.
We should only need to use the Tip and KneeLeft nulls so select all of the other
nulls, hide them and set them to shy layers to hide them completely.
Make sure all the nulls are at the top,
limb controls below them,
and Shape layers at the bottom.
Now we're ready to animate, which we'll do in part two of this lesson.
See you there.
Thanks for watching.