Animation Principles: Add Playful Personality To Your Animations | Jake Bartlett | Skillshare

Animation Principles: Add Playful Personality To Your Animations

Jake Bartlett, Motion Designer

Play Speed
  • 0.5x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 2x
25 Lessons (3h 17m)
    • 1. Course Trailer

      2:22
    • 2. Course Structure

      0:50
    • 3. Anticipation & Follow Through

      18:51
    • 4. Overlap

      7:27
    • 5. Squash & Stretch

      14:55
    • 6. From Illustrator to After Effects

      6:51
    • 7. Custom Controls & Organization

      11:18
    • 8. Secondary Controls

      7:21
    • 9. Zeroing Out Values

      2:37
    • 10. Stretching the Car

      17:07
    • 11. Overlapping Motions

      3:19
    • 12. Popping the Frame Up

      5:02
    • 13. Lifting the Car

      11:08
    • 14. Opening the Hood & Bouncing

      12:28
    • 15. Spinning the Tires

      12:20
    • 16. Mirror, Antenna & Hood Ornament

      11:16
    • 17. Adding Squash & Stretch

      5:16
    • 18. Driving On & Off

      6:07
    • 19. Scene Details

      7:27
    • 20. Adding Textures

      4:24
    • 21. Finishing Effects

      6:31
    • 22. The Shadow

      6:58
    • 23. Tire Smoke

      7:45
    • 24. Exporting a GIF and MP4

      6:05
    • 25. Thanks!

      1:16
526 students are watching this class

About This Class

Animation principles are an invaluable set of guidelines for creating more appealing motion in your animations. Whether you've had formal training in motion design, or you've just figured it all out yourself, understanding and implementing these principles will make a huge difference in the quality of your work. That's why I'm so excited to be sharing this knowledge with you here on Skillshare!

e2ff743f

In this class, I'll be teaching you how to use animation principles in your motion design. But the knowledge you'll gain can be applied to any form of animation - not just in After Effects! You can use them in any animation software, hand-drawn animations, or even stop motion animation. Every principle is universal and applicable to any project. 

I've split the class into two units; the first will be where I teach you about these principles, and how to use them through an exercise in After Effects. The second unit is where I'll show you my entire methodology for creating an animation from start to finish. You'll get an in-depth look at how I approach an animation, organize and manage a project, build custom controls for my illustrations, implement animation principles, and export to both GIF and video files.

This is an advanced class. You should have a good understanding of Adobe After Effects’ user interface and functionality before taking this class. Every step will be clearly explained in each video, but we won’t be spending time learning how to do basic functions. We'll be using the graph editor extensively, so if you're not familiar with how to use it, check out Animating With Ease first.

I hope you're excited to learn about animation principles! I'll see you in class.

Transcripts

1. Course Trailer: Hey. I'm Jake Bartlett, a motion designer based in Denver, Colorado and this is animation principles add playful personality to your animations. I've been working professionally as a motion designer since 2010. My skills have come a long way from where they started in that time. But I can confidently say, that the biggest leap that I saw in my motion design skills came when I learned fundamental animation principles. In this class, I'm very excited to be sharing that knowledge with you. If you're not familiar, animation principles are a set of guidelines that help you make more appealing motion in your animations. Understanding and implementing them will make a huge difference in your projects. I actually got into motion design without any formal training. But even if you've taken animation courses, using animation principles will completely overhaul the way that your designs will move and the way that you approach animation in general. Another reason animation principles are so valuable, is because they transfer over to any form of animation. It doesn't just have to be in After Effects. It can be in Cinema 4D or stop motion animation or drawing frame by frame. It's all completely universal and can be applied to any project. I've structured this class into two units. In the first unit, I'll teach you those animation principles through an exercise in After Effects. You can download my project file and follow along so that you can practice these techniques yourself. In the second unit, I'll show you how I built this animation as my class project from start to finish. You'll be able to see my entire methodology for creating an animation this complex. We will cover how I handle a complex idea building custom controls, project organization, implementing the animation principles, adding finishing effects and exporting as both a gift and video file. Along the way, I'll show you how I use third party tools for a more efficient after-effects workflow. For the class project, you'll be choosing a vehicle of your own to bring to life through animation principles. If you're not up for creating your own vehicle, you can download my car to animate yourself. We're going to be using the graph editor extensively in this class. If you're new to After Effects, I would strongly suggest you first take my other class, animating with ease, so that you have a good grasp on how the graph editor works. This class is for anyone ready to take their animation skills to the next level. I'll see you in class. 2. Course Structure: All right. I hope you're excited to learn about animation principles. I'm very excited to be teaching them to you. But like I said in the class trailer, I've split this class basically into two units. The first unit will be the actual teaching the animation principles, and we'll be using an exercise which you can download in the Project and Resources tab. On the right side, you'll see the downloads there. But in the first unit, through that exercise in that project file, I'm going to teach you those animation principles, how they work, and how you can use them in your projects. In the second unit of the class, I'm going to show you how I created my class project from start to finish. You'll see my entire process and how I implement these animation principles into my own design so that I can get what's in my head onto the screen. At the end of the class, I'm going to show you how to export your animation as both a GIF and a video file so that you can share it online. Let's get started. 3. Anticipation & Follow Through: Let's talk about these animation principles that we're going to be covering in this class. I've set up this project as an exercise that I'm going to teach you these animation principles through, but also for you to practice yourself. You can either watch me as I do this and then practice yourself, or you can download the project file now, under the Project and Resources tab, so that you can follow along as you're watching. But what we're going to do in this exercise, is just have this box right here, travel from one side to the other side of our composition. We're going to see just how exciting we can make that. It's a pretty linear movement. It's not of particularly complex animation, but as we stack on these different techniques using animation principles, you'll see how we can really give a lot of life to something as simple as a box. First of all, let me center that back up, and the first thing I want to do is make the center of my composition the origin of the composition. Currently, it's in the top left corner. That's how After Effects measures its pixel grid from the top left corner. This is 0,0 and the center is 960 by 540, since this is a 1920 by 1080 comp. If I press P to bring up my position property for this layer, you can see that it's 960 by 620 actually, because I don't have this right in the center. If I turn on my title/action safe guides, you can see that I've dropped this down a little bit. But I want this to be a position value of zero on the X. I don't really care about the Y because that's where I want it. But a really quick and easy way to do this, and a technique that I use a lot when I want to place the origin somewhere other than the top left corner of the comp, is to create a null object and parent this object to it. I'm going to go up to Layer, New, Null Object, and this is just an empty layer that doesn't render. It just allows you to parent things to it and control other things. But I want this null to be in the exact same position as the box. I'm going to grab the position property, copy with Control or Command C, paste with Control or Command V, and now it's in the exact same spot. I press P on the keyboard again, we can see same position value. Now all I need to do is parent the box layer to the null object. You can see that my position values are now 0,0, because they are now in relationship to the parent. So the boxes position in relationship to the null is zero. That's literally all I needed that null for, so I'm just going to rename it zero. I'm going to lock it. I'm going to hide it so I don't see it in my composition, and I'm going to shy it. I already had the Shy switch enabled because I'm hiding some of the other layers that make up the background, but that's why it just disappeared when I clicked on the shy switch. Let me turn that title and action safe guide back off and we're left with the box. But with that parent relationship set up, I now have an origin of 0,0, which means that I can know exactly how far to the left and right of the center of that comp I moving it. I can just say, move this negative 400 pixels to the left, or move it positive 400 pixels to the right, and it'll be equal distance from the center. I use that trick all the time when I want these nice position values in relationship to the layer. The next thing I want to do is separate the dimensions of my position property. I'm going to right-click on it and say separate dimensions. That gives me individual controls for the X and Y position. That allows me to use the value graph in my graph editor a lot easier than it would be if they were still combined. I don't always use the value graph, but in this case, I'm only animating the X position. I think the value graph is just going to make more sense visually for this animation. Let's go to one second maybe, and I'll back this up to let's say around negative 500 pixels. I'm going to set a keyframe on that X position, and then go forward one second to two seconds, and change this to 500. Now I'm working at 24 frames per second. If you're using this project file, then it's already set up for you. But just so you know, this is at 24 frames per second animation. Let me play this back. You can see it's very boring. Obviously these keys have no easing, but it's just traveling from one side to the other. What's the first thing we could do to make it better? Well, first let me just rename this Box 1, and then I'll duplicate it so that we have a little paper trail of where we were at the beginning. Box 2, I'm going to press U to bring up the keyframes. Naturally, the first thing you probably think of is to ease these keyframes with Easy Ease. So I'm going to select those keyframes, press the F9 key on the keyboard and now they are eased. Let's play that back and you can see that it is better. It's easing in and out, but it's a very standard slight ease, it's the default Easy Ease. It's not all that interesting, it's still pretty basic. If we go into the graph editor with those keyframes selected, and let me clean this up. I'll turn off my expression editor, and then give myself a little more room in this graph. Now we can see our graph a little bit better. If you're not familiar with the value graph, and this is just a representation of the value over time. At this point in time, the first keyframe, it's at negative 500 pixels. At this point in time, it's at positive 500 pixels, and this curve is the value over time between it. You can learn all about the graph editor in my other class, Animating with Ease. Definitely check that out if you haven't already. But what I can do here is make my ease just a little bit more dramatic and a little bit more stylized. I'm going to pull the handle out while holding shift so that it snaps to that baseline. Just drag that influence out a little bit on the outgoing keyframe, and in quite a bit on the incoming keyframes. Let's see what that looks like. Now it's just a much better looking ease. It has more speed in the middle. It eases in and out a lot more smoothly, and it's just generally more pleasing to look at. So far it all seems pretty basic, but this is actually one of the principles of animation. We've already touched on it, which is slow in and slow out. Which another way to say that is ease in and ease out. Basically, it's moving faster in the middle of the animation than it is on either side, and it just makes for a more pleasing to look at animation. But what can we do to make this better? Well, let's duplicate this layer. Again, turn off the second copy, and talk about what we can do next. We close up this layer and press U on this one to bring up the position keyframes. The first animation principle we're going to talk about is called anticipation. Anticipation is basically giving the viewer a visual cue as to what's about to happen, so that they're able to anticipate what you're going to do with your motion. We can do that really easily in our animation. What we'll do is just back up maybe five frames. I'll press Page Up 1, 2, 3, 4, 5 times, and set a keyframe. Going back to this key frame right here, what I want to do is just back this up a little bit on the X position. It looks like I forgot to turn Box 2 off, so let me disable that. But we'll move it back just maybe negative 525, so 25 pixels. It's traveling in the opposite direction before it goes forward. If I play this back, you can see it just shifts backward a little bit, anticipating the movement that's about to happen across the screen. Anticipation is as simple as that, but it can be an extremely effective way to give the viewer cues as to what's about to happen. Like all of the principles of animation, it's there to make the movement you're creating more desirable. Let's again go into the value graph, and I'm going to zoom in here so we can see it a little bit better. Right here between the first two key frames, I don't really have much of an S curve, so I'm just going to pull this out a little bit, coming out of that first key frame, and then pull it out a little bit more going into the next keyframe, and we'll play that back. Now it's a little bit sharper of a movement going back and then forward. So that's looking really good. Now we have anticipation in this movement. Well, we can make this even a little bit more interesting to look at, by adding in something that goes along with anticipation really well, which is follow-through. Let me duplicate this, hide this layer, and then we'll bring up the position values for this. We're going to do the exact same thing in the opposite direction. Anticipation happens before the big movement, and follow through happens after the big movement. Let's go five frames after this last key frame, 1, 2, 3, 4, 5, on the page down key and set another key frame, and then go back to this one, and we're going to add 25 pixels to it just like before in the opposite direction, so we'll say 525. Now it's going to go past that final resting spot before coming back to it. Let's play that back. Now we have some anticipation and some follow through. Now let's go back into the graph editor and just clean this up a little bit. I'm going to zoom in with the plus key, and scroll down so I can see the curve a little bit better. We'll adjust these handles again. Take a look at how that moves. We've got a snappy in and snappy out animation. This might be a little bit too tight, maybe we need to ease more into that last frame a little bit better. Now maybe on this big movement, the curve needs to be adjusted just a little bit so it's not slowing down quite so much before that follow through. I'm going to just drag this back a little, maybe tighten that out a little bit, and we'll see what that looks like. Yeah, that looks pretty good. With just a couple of extra keyframes, we've added both anticipation and follow through to this simple animation, and it's giving it a lot more life. But we can take this anticipation and follow through even one more step further using another property other than just position. Let's duplicate this, fold that up and hide it. On this one, I want to include rotation as well, but I need to rotate it from two specific points on my box. I don't want to rotate it around the center where the anchor point is. I want to do it on the bottom left corner and the bottom right corner. This is another technique that I use all the time when I need to rotate or distort something or transform from a different point than the anchor point of the layer itself. We do this through an effect called transform. You'll notice I don't have my effects in presets panel open and that's because I want to show you my real-world workflow. There's a free plug-in from Video Copilot called FX Console and you can find the download link in the notes of this video right now. But what it allows you to do is with a keyboard shortcut, I'm on a PC so it's Control Space, pop up a search bar right here that allows you to search everything that would be in your effects and controls panel. So very quickly, you just press the hotkey and then you can search for anything you want. I want the transform effect, there it is. Just press "Enter" and it's applied to the layer I had selected. Here are all the transform controls that are exactly the same as what you have inside of your layer transform controls, but it also gives you the ability to skew and some other control. So it's a very useful effect, I use it all the time. Now by default, it puts the anchor point right in the center of your layer, just like a normal layer would. But if I tried to move that anchor point, you see that the layer contents are shifting within it. What we need to do is actually tie the position to the anchor point. So wherever the anchor point goes, the position value follows it. This is extremely easy to do. I'm just going to double-click on the "Anchor Point Value" and that will bring it up down here in my layers. My anchor point position right here, all I need to do is grab my property pick whip, click and drag to the anchor point and After Effects will tie this value to this value via an expression that it writes itself. You don't need to know what that expression is or how to write it, just to use that property, pick whip and now wherever the anchor point goes, the position value goes with it. So I can put my anchor point wherever I need to and it will always appear correct. What I want to do is put this in the bottom-left corner and I want to be pretty precise with this. If I take a look at the values, the anchor point is almost at 150 by 350. I know that this pre-comp is a perfect 500 by 500 square. I can know that these should be round numbers, so I'm going to say 150 by 350 and there we go, my anchor point is in the bottom left corner of the box. Now, I can grab the rotation property and rotate it on that corner, that's exactly what I need to do. I'm going to set a keyframe on the rotation, press "U", so I'm just seeing the key and then we're going to align this with our anticipation keyframes and our follow through keyframes. Let's start with the anticipation. I want to move this keyframe back to here and then go forward and on this anticipation, I'm going to rotate this back just a little bit, it doesn't need to be all that much. But now it's going to slide back as well as tip back before moving forward. I'm going to need to set another keyframe maybe right about here where it comes back down before it does that big slide. Let's set that rotation down to zero and then easy ease all of these keyframes, F9 on the keyboard, go into the graph editor and just make that a little bit nicer of a curve. We'll tighten this one out a little bit and this one can actually come down pretty hard, it can stay up in the air longer and then slap down there. Let's see what that looks like. Not bad. Let me zoom out so we can see the whole animation and we'll play that again. This is working out okay. But because we're incorporating that other property, we can actually modify our animation a little bit. I don't think that we need the X position anticipation or follow through anymore. I'm just going to delete those two outer keyframes and we're just going to use that rotation as our anticipation and follow through. Let's see what that looks like now. It is a little off, let's take a look at why. Let's zoom in here and play this back. The reason it's a little bit off is because it's really slowly easing out of this position value. That's what we wanted before, but now we want it to just take off as soon as it slaps back down. Let me move these rotation keyframes back so that it hits the ground right here on this keyframe and that's when we want it to take off. Then I'll go into the value graph and instead of easing out of this really slowly, I'm going to pick this up so it's not perfectly flat and hopefully that will help it take off a little bit quicker. I'm going to do the same thing on this and I'm going to pull that down and we'll see if we can finesse this a little bit to make it just look a little bit more believable. We're getting there, but now I think that this animation is just taking too long. Let's back this keyframe up a little bit and now we're getting somewhere. Let's play that again. We're getting there, I think I'm going to stretch this out just a little bit more so that it starts to move before it gets all the way down to the ground. We're almost there. I'm going to scoot these forward one frame and then maybe adjust my easing so it's a little bit more eased out of there. I'll bring this up to be a little more symmetrical. That's a little too extreme. There we go, that's looking a lot better. So it really takes off as it slaps down. Maybe that easing is a little bit too strong right here on my rotation so I'll just back that up a little bit. There we go. Now we've got a little bit of that anticipation and maybe it could even rotate back just a couple more degrees so maybe around 14 degrees backwards, and maybe I'll just slow that anticipation a little bit by backing up that first keyframe. There we go. Now we've got that visual cue of the rotation indicating that some motion is about to happen. It's revving up, getting ready to move across the screen. Great. How do we apply that same principle to our follow through? Well, we're basically going to mirror that movement on the opposite end as it starts to slow down, so maybe just a couple of frames before this keyframe will set another rotation value. But the problem is it's still going to rotate off of that back left corner, so we need to move that anchor point over here. But if I do that, if I just click and drag, then this rotation animation is broken. I'll undo that and we need to do one more thing before we start animating this corner which has set a keyframe on the anchor point. Just click once on that stopwatch to set the keyframe, press "U" to bring that keyframe up and I want to make this a hold keyframe. If I right-click on that keyframe, and this is at the bottom of the screen recording but it says toggle hold keyframe, you just click on that and now this is a value that will not change until it reaches another keyframe. I'm just going to back this up to the start of the animation. Now I can change this value to something else, so I'm going to move it over to this corner, and that should be a 350 value. Now if we zoom in here, you can see is on the bottom right corner and if I go back one frame, it snaps back to that left corner. So it's going to stay there until I need it to be on the opposite side. Then I'll just go forward a few frames and will rotate it in the opposite direction. Again, we'll go 14 degrees and then back down to zero. Let's take a look at our value graph. We obviously need to carve that out a little bit more. I'm going to just drag these handles out. I'm holding down Alt or Option on a Mac to click and drag those handles out. Just make this a little bit nicer. This can slap down a little bit, hold on or hug that keyframe right there, that value, and see what that looks like. Not bad I think you can make it even tighter. Now it's really just shooting in here and taking off. Maybe this doesn't need to ease quite so much. Yeah, there we go. Maybe back this off one or two frames. Yeah, that looks really good so let's zoom out and look at that as a whole. Play that all back. Now we've got our anticipation and follow through being completed using rotation instead of that position value. I think it could lift off the ground even a little bit more quickly right here so I'm going to go back into that value graph and just pick that up. Yeah, and now it really looks like it's stopping on a dime. I think the X position easing, that is happening a little bit too strongly so I'm going to pull that back a little bit. Now we have a slightly more linear movement between the start and the end of the animation, but that anticipation and follow through are really selling that movement. 4. Overlap: All right, so we've come a long way with our animation so far. We already have five versions, but let's duplicate it and make it even better. We're going to talk about our next principle of animation, which is overlap. We can use this with what we already have. Overlap is an animation principle that it's basic idea is nothing should be moving all at once. This box that we've animated so far is totally rigid. It's holding its shape. All of it is moving at the exact same time. What we're going to do is introduce a little bit of distortion so that parts of the box aren't moving at the same time as other parts of the box. That's going to add a lot of personality to the way that this box looks. We're going to do this with another effect called the bend it. I'm again going to use my keyboard shortcut for FX Console and type in bend it. There we go, CC bend it. I'll press "Enter" to apply it, and I need to set this up a little bit. The reason why this composition, this precomp has so much empty space is because this effect can actually crop the contents of it. I'm just going to grab this top control right here, which is, if I scroll all the way down the end value of the bend. I'm just going to click and drag while holding shift and move it to the top of the composition. Then I'm going to zoom in nice and close and move this end to the bottom, which should be 350. I'm just going to type in 350 on the y. Now, that's centered up. What this effect allows me to do now is bend this box in a cartoony way. That's going to add a lot of life to this animation. Let's back this up to the start of our animation and we're going to, along with that rotation and actually, look at that, our rotation is getting cropped off because of the bend it. What we're actually going to do is bring our bend it up just before the transform. Now that's going to be applied to the box before the rotation. That stacking order of the effect does matter, but that's what we'll do to fix that issue. What we're going to do is in conjunction with that rotation anticipation is add some key frames for the bend. Let's add a key frame there. I'll press "U" to bring up that key frame and then drag that back to the start of our animation. At this point where it's rotated back, we're going to bend it back as well. Maybe negative 25. Now it's got that bendiness and then we'll go forward to where it slaps down. We're just going to mirror these rotation values. Here is another pro tip, I'm going to select and the Bend property by holding down Control and clicking and then just double-tap the "S" key, so SS, and that solo's my selected properties. I'm not worried about those other key frames. I just want to compare the bend it key frames to the rotation key frames. Right Right where it slaps back down, we'll just put it back to zero and then zoom out a little bit and go forward in time. Make sure that we can see that box and set another key frame. Stay zero between these two. Then on that follow through, we're going to bend it 25 degrees in the opposite direction and then finally bring that back down to zero. These key frames are timed exactly the same as the rotation, and I'm going to just ease everything really quickly and then add a little bit of easing on all of my curves just so it eases in and out a little bit more. I'm doing this completely arbitrarily. I'm not really seeing any visual feedback of what I'm doing. I just know that stronger easing between these is going to look a little bit better. It's a starting point. Let's play that back, and there we go. Now we've got some bending happening. You might notice that it doesn't look all that great and that's because everything is happening at the exact same time. Remember, overlap is about having motion overlap not happening at the same time. What I want to do is grab all of these Bend it key frames and I'm just going to shift them over in time. I'll do that with the Alt or Option key on a Mac and press the right "arrow" key two times to shift it forward in time two frames. Now if I play this back, it looks a little bit better. It's still a little off. I need to finesse my curves a little bit, but now that bend is overlapped on top of that rotation. It's not happening all at once. It rotates back and then it bends and you can see that the box is actually starting to rotate forward a little bit before the bend is completely all the way bent back. I think what I want to do to make this a little bit more interesting is take-off the easing on this key frame right here, just drag that out so it slaps down the same way that the rotation value does. Then maybe ease this out even more. Then we'll do a similar thing on this end. It can start bending a lot more quickly and get to that extreme value a lot quicker, and then just slap back down on this end. Maybe I'll back that off a little bit and bring this down just a little bit. We're getting there, now I want to bring up all of my key frames. I'll just press "U" to collapse and "U" again to bring up the key frames. I think we can have this motion in the middle happen even quicker. These key frames here are the second half of my animation. I'm just going to grab them and bring them back maybe three or four frames. Option or Alt and the left "arrow" key one, two, three, four times, and we'll play that back. That's a lot zippier of an emotion, I like that. It speeds across and that's going to allow us to have a snappier follow through an overlap at the end here. I think that's happening just a little too slow and just a little too softly. Let's go into our rotation key frames and really crank this one out, bring this one all the way up so it smacks down on the ground. We're actually going to give a little bit more life to this with our bend adding a couple more key frames. Instead of just returning to its square shape very softly here, we're going to have it go in the opposite direction. We're going to bend it back, maybe a value of 15, and then go forward a couple of frames and make this a value of say, five, and then go forward a couple more frames and set this down to zero. You can also call what I just did an overshoot. That's something I teach in my animating with ease class. It's basically just going beyond the resting value, which is also follow through, but then on the way back it doesn't go to the resting value. It overshoots back in the opposite direction and then again, slightly less than the opposite direction before finally coming to rest. This overshoot animation that we've created is giving the follow through some decay and a little bit more wobblingness, a little more jigglingness, and it makes it a lot more playful. I know that I need to modify these curves, so I'm going to select them, ease them and then just modify their curves a little bit. I know coming out of this extreme value, I want it to hug that key frame, but then go into the next one and then jiggle back and forth pretty quickly. I'm going to make these one's a little bit more extreme. Let's play that back. There we go. That looks really nice. It's just a lot more jiggly, and it's basically showcasing that conservation of motion with that tip up and slap back down because we're overlapping the top of the square, we're using that animation principle. It's giving a lot more life to the motion that we're creating. 5. Squash & Stretch: We've come a long way from those original two key that we said, but we can take this even one more step further using another principle of animation. I'm going to duplicate this one, hide that, and bring up the keyframes. Now, I think this is one of the most fun animation principles, and it's called squash and stretch. You've probably heard that term before, but if you've never used it yourself, then you're going to be in for a treat. Let's take a look at what exactly this is. The way that we're going to be incorporating squash and stretch is using another instance of the transform effect. I'm going to just select this transform and rename it. You can rename any effect, just select and press "Enter" or "Return". I'm going to call this one the rotation, just so I don't confuse it with the next instance. I'm going to press "Control", "Space Bar" to bring up my effects console, type in a transform and hit "Enter". This one I'm going to rename as squash and stretch. That can be at the bottom of the effect stack, no problem. There's my squash and stretch effect. I'm going to open it up because I need to again link the position to the anchor point, just like I did with the rotation. Remember you just grab the property pick whip for that property and drag it to the anchor point. Now wherever the anchor point goes, the position value follows it. Before we go any further, let's just talk about the theory of squash and stretch for just a second. The idea is that you can distort your animation to make it feel a little bit more cartoony. After effects, it's as simple as using the scale property. Since we're doing this through the transform effect, I need to go into the uniform scale and uncheck that. That will give me independent controls for the height and the width. The very basic formula for squash and stretch is basically if you were to stretch in one direction, so let's say stretch upwards 125 percent, you need to squash in the opposite direction. In this case, the width in an equal and opposite amount. I went 25 percent higher than 100 percent on the height, so I need to take 25 percent off of the width. What this is doing loosely is maintaining the volume of the layer. That's pretty much what you want to do with squash and stretch. Now, there is another animation principle called exaggeration, and that's basically the do whatever you want card. In the animation principles world, it's allowing you to have creative freedom to make your motion and your objects look however you want them to. But as a general rule of thumb, you want these two numbers to always add up to 200. If you're adding something to one value, you need to take the same amount away from the other. Let's say I put the height down to 50, then I need to make sure that the width goes up to 150. Now it's super squashed out and wide. But we can write a tiny little expression to make this happen automatically. Let's just go down into our effect in the layers panel and take our width and add an expression to it. I'm going to hold down Option or Alt and click on that stopwatch and just delete what's in there. Just hit the ''Backspace''. What we want to do is very simple. We just need to say a value of 200 minus, and then grab this expression, pick whip, and drag it to the height. Let go, and it's going to fill in the expression that references that property. Finish it off with a semicolon and then click off. We're going to give this scale width a value of 200 minus whatever this value is right here. So 200 minus 50 is 150. Those two numbers added together are 200. Now as I move the height value around, you can see that it is going in an equal then opposite distortion on the other property. Now we don't even have to think about that math, it's done automatically for me. I use that little tiny rig all the time for squash and stretch. It makes it a whole lot easier. Because I'm using the transform effect, and I've already set up my anchor point in position, I can drop this down to the bottom, which is a value of 350. Now I can squash and stretch that very easily off of that ground plane, and that's super cartoony. That's a lot of fun. Let's set that down to 100. We'll set a keyframe on that scale height. I'm going to set a keyframe on that anchor point as well. Then press ''U'' to collapse, and U one more time to bring up all my keyframes. Before I do anything else, I want to again set a hold keyframe on that anchor point. Another quick way to do that is hold down ''Control'', ''Alt'', or ''Control'', ''Option'' on a Mac and click on that keyframe and that converts it to a hold keyframe. I want the squash and stretch to happen at the beginning of my animation on the bottom right corner. I'm going to shift that anchor point value forward to 350. I'm making sure that I'm still on top of that keyframe that I just set so that it modifies that value. That is where I want it to squash and stretch from. But as it lifts up, I'm noticing that that anchor point is staying down here. It reminded me that because of the way that I have my effects stacked, it's going to rotate the layer first and then apply the squash and stretch. That's not exactly what I want to happen. I want the squash and stretch to happen off of this corner, and because it's next in line basically after that rotation, it's going to stay down here. But if I just drag it up, then even though the anchor point didn't change as far as this effect is concerned, it's still looking at this version of the layer. I just disable the rotation. It's going to squash and stretch off of the correct spot. If I now grab my scale height right here, let me drag this out so we can see those value names. My scale height property, click and drag. You can see that it's scaling off of that point. I just want to squash this down a little bit, maybe down to 85. I'm not really doing this in any point in time. I should probably line this up with maybe the bend. Let's just look at those two properties. Scale height, Control-click on the bend and press ''SS''. We're just going to line these keyframes up. It squashes and there's no easing yet. But next, I actually want to go right in the middle of the animation, which should be right about there. That looks like the center of the line of travel. I'm going to set another keyframe at a scale height of 85. That'll make sense why in just a second. But then we'll go to, let's say right here where the extreme of that bend is, and we're going to go in the opposite direction, maybe 115. Instead of taking 15 percent away, we're now adding 15 percent. It's stretching upwards in the opposite direction. Then we'll do our same overshoot type animation or we back up in the opposite direction of the resting point, just a few units, maybe 92 percent. Then we'll go to the next keyframe and go to maybe one percent. Then finally at 100 percent. Just to recap, we are squashing down as it rotates back, which now that I look at it actually might make more sense to stretch that up. Maybe we go to 115. It was like it's standing up tall and rotating back before slapping down. In that case, this actually should probably be on the opposite corner. Let's press U to find that whole keyframe, which is right here and I'll just align it with the first keyframe of my squash and stretch. I'm just going to back this up so it's rotating off of that back left corner, the same corner that it's rotating on. Now, it's really stretching upwards. I could probably exaggerate that even more, so let's go up to 125. Now it's rotating back, bending, and stretching upwards before slapping down and moving forward and getting squashed at this middle point. I think I'm going to exaggerate that even further as well, so we'll go to 75. Then at the end of the animation, we need that anchor point back on the other side so I need to find a point that I can move it. It can't really be anywhere I want because with the scale value changed, if I move that anchor point, you see that it's shifting the contents around. So what I need to do is basically switch the anchor point at a point in time where it's close to 100 percent. None of my easing is done yet so I don't exactly know where that will be so for the time being, this timing for this keyframe is probably going to be off. But I'll just set a value of 350 rate there so it switches to the other corner, and now it's going to stretch on the opposite corner. I'm going to do this pretty extreme as well, make this more extreme, 125, and then down to say 85, then back up to 105 before finally getting to that resting value of 100. Now that we have our values and our timing pretty well set, let's go into the value graph and ease all of this. It's all very rigid right now. Take a look at how this is going to affect our motion. It's actually not looking too bad but we can definitely make it look better, just like we did with the bend it effect. I'm going to stretch into this keyframe a little more quickly and really squash into this keyframe pretty quickly as well and stay there until right about there. That's probably where we need this to be at 100. I'm just going to add another keyframe for a scale value of 100 and we can ease this however we need to. So I'm just going to make it about there. But now I have a specific frame in time where I know the value is 100 and I can safely change my anchor point for that squash and stretch knowing it's not going to affect the position of that square at all. Now that we did that, I can go back in and finesse my squash and stretch a little bit more, and just adjust these curves on the final part of the animation a little bit more, and let's play it back and see what it looks like. Oh, yeah, that looks really good. It adds a lot more life. Let's make this a little bit bigger so we can really see what's happening here. Just so we can really isolate the squash and stretch, I'm actually going to just disable the rotation and the bend it so the only distortion we're getting is from the squash and stretch. I want to show you that even just on its own, squash and stretch can work as an anticipation and follow through technique. On its own, it's telling us a lot about the motion. It's giving us that anticipation where it stretches up before it squashes down, accentuating that motion. As it's moving faster, it's really squashing down, and then snapping back into its stretched out point. We're using the overshoot to really convey all of this motion, the energy and momentum of this movement, this simple movement that we've been working with this entire time, moving from one side of the composition to the other. On its own, it works really well, but you can combine it with other distortions like bend it to give that simple motion a lot more personality, and including that rotation, this gives even more movement and visual cues of what's about to happen and makes it all a lot more playful. We've made seven versions of this box. Why don't we just really quickly show all of them back to back. I'm just going to edit here so you don't have to watch me do this. But what I've done is now just sequence each one of these boxes so that we can watch the entire animation of each one that play out back to back. Let's take a look at the first one, and I'll make this a little bit bigger so we can see it nice and clearly. This was our linear movement. There was no easing at all, it's just two keyframes, position values going between the two sides of the screen. Next up was adding the easing to our key so now it just eases in and out. We did modify that value graph a little bit, and that really can be considered one of the principles of animation that slow in, slow out, or ease in and ease out. Makes it look a lot better already, but then we took it a step further and we added that anticipation at the beginning. It's just a very subtle movement but it gives the viewer a cue of what's about to happen. Next up, we included not only anticipation but also that follow through. Very similar to anticipation, just in the opposite end of the motion. Next up, we added in a transform effect, and that gave us the ability to rotate that layer on specific points. The anticipation and follow through is now happening with not the position value but the rotation value. We're animating on two different properties and it just gives a different feel. Then we added in some overlap, the next principle of animation, which we use the bend it effect to incorporate, but that allowed different parts of the object to move at different times, and overlapping that motion really brings a lot of personality into your animation. Then finally, we incorporated that squash and stretch, one of my favorite principles of animation that really added a lot of bendiness and jiggliness to our animation that brings a very simple square to life, giving it a lot more personality than where we started with just a box and moving across the composition. All of these animation principles can be used in any form of animation. It doesn't have to be just inside of after effects. You could be working in a 3D program like Cinema 4D or animating frame by frame, drawing every frame by hand, or even doing stop motion animation. It all applies to every form of animation, and that's why it's so critical to understand these principles, because you can combine them and use them together. You saw just how much effort I was putting into the easing of all of those keyframes and overlapping them and incorporating all of these principles. That's really what it takes to make beautiful motion. You need to get in there, look into tiny details, modify things a lot, and just be watching it back until you are happy with the way that it looks. I really want to encourage you to get in there and open up this project file. Practice this yourself and do these exercises the same way that I did. Just make it very simple motion, duplicate the layer, hide the first one and try and make it look better on the next version and just see how far you can push your animations. I would love to see what you come up with. If you have something that you want to share, go ahead and post that to the class project so that I can take a look. But once you feel like you've got a good understanding and grasp on these fundamental animation principles, then you can move on to making your own class project in the rest of this class. 6. From Illustrator to After Effects: For my class projects, I knew that I wanted to use vector artwork because of the idea that I had in my head, I knew I needed to be able to manipulate vector paths in After Effects. Naturally I created my artwork inside of Illustrator. This is the first thing that I did. I knew that I wanted to have this car and was going to have all these wacky proportions and not follow any kind of perspective or realism. I wanted it to feel very cartoony. This is literally my first sketch. I just took the brush tool in Illustrator and with my mouse, clicked and dragged to just sketch out something really rough. I'm not suggesting that that's the best way to sketch something but it got the job done for me. I didn't need to try to be very perfect. I just wanted to get the idea and the rough frame of my car out onto the art board. Once I was pretty happy with the layout of this car and all of the elements that I wanted to include, then I went back and cleaned it up. I made a cleaner version using the pen tool. You can see if I overlap these two, it's very similar. I just adjusted some of the angles. I made a lot of the lines perfectly horizontal or vertical but we got a second version and from here I just continued to refine it and I ended up with a car that looked like this. It's all basic shapes. I chose the colors that I wanted to use and I also created a background. This is my color palette that I came up with inside of Illustrator. At this point was ready to go into After Effects. Now, because I had a very specific idea in my head of how I wanted this to move, I knew that I would need access to a lot of individual layers inside of After Effects. Like the top part of this car with all the windows in the frame of this cab, I knew that I wanted this to be able to really pop out from the main body of the car. I wanted that to shoot up. Then I wanted the front of the car to be able to stretch out. Same thing with the back. I wanted the wheels to be independent. All these other little details like the antenna, the mirror, the hood ornament, I wanted all of those to be able to move independently. That's typically how I animate any given illustration. I know that I'm going to want to move a lot of individual parts. Any one of those individual parts that needs to be animated has to be on its own layer or at least accessible in After Effects as its own object. Now in a lot of my classes, I show you how to do this in a way where you're saving the Illustrator file, importing that into After Effects, and then converting that Illustrator artwork into shape layers. That is a perfectly fine way of doing it. But if you really want to step up your efficiency and make your life a whole lot easier, look into this extension right here called Overlord. It cost $45 but if you use it on one project, it will have been worth the amount of time that it saves you and then you'll never work without it again. It's absolutely fantastic. I'll show you what it does in just a second, but first I want to show you how I prepared my artwork. If I open up the layer, unfold this that has the car artwork in it, you'll notice that I have separated out every object that I want to be animated into either a group or its own object and renamed those objects so that I can identify them easily in After Effects. The mirror is made up of two objects, so that's why it's a group, but this window is separated, it's just a line, the frame is all one shape. Basically, anything that can be animated together, I grouped, so the front wheel, it's made up of these three shapes. But the important thing is that you see that I've organized every single one of these and took the time to give them all names. Here's why, because Overlord allows you to select any artwork inside of Illustrator and click this button, "Push selection to After Effects", and it is completely transferred over into After Effects as shape layers in the exact same place using the exact same colors, the same layer names as I had in Illustrator, 100 percent ready to go, no importing of artwork and converting to shape layers. It is just here. It's perfect exactly the way that I wanted it and my import process, my transfer from Illustrator to After Effects is done. That is probably the best $45 I've ever spent on my own After Effects workflow. It can do a lot more. You can push shape layers from After Effects back to Illustrator in the same way, you can also bring artwork in if I undo this from After Effects, so my selection is still made in Illustrator and this little button right here is split shapes to layers. But if I uncheck that and pull that artwork back, now it's all contained in one object, one layer. If I go into the contents, all of those sub-objects in Illustrator are transferred over as groups. It's just an amazing extension and it really speeds up your workflow. That is an extension that I definitely recommend you go check out. You can find the link in the notes of the video right now. But just in case you're not ready to purchase that or it's just not a possibility for you, I do want to show you quickly what you need to do in order to transfer this artwork over through an Illustrator file. I'm just going to duplicate this layer so that I don't lose that. I'll unfold the layer and what I need to do is basically select everything in it and then come up to this little menu in the Layer's panel, and my screen recording is cutting this off, so let me just scale the my window over here a little bit so you can see it. I just need to make sure that layer is selected. It doesn't even need to be the artwork. If you just click on that layer and then go up to the menu and go down to Release to Layers (Sequence), that's going to take all of the contents and change all of those groups and objects into their own sublayers. It does lose all of the names, so don't bother naming those objects in groups if this is the technique you're going to go with, but then I can just grab all of these sublayers and drag them out of the actual layer. Now they all exist on their own layer. Rename all of these because After Effects will take the layer names when you bring it into Illustrator and convert it. Then I'll just save this as a new file. We'll call this Car_layers and click "Save". Then I can bring that into After Effects just like any other item, just import it, and I need to make sure that the import kind is set to composition and my footage dimensions are set to layer size, not the document size. Then I'll click "OK". After Effects gives me a composition with all of those layers. If I had renamed them in Illustrator, they would be named properly here. But from here I can just select everything, right-click on any one of them, and come down all the way to create. This is off-screen, unfortunately. I think if I go to Layer, there's the Create menu. I can also go here, Create Shapes from Vector Layer. Now we'll convert every one of the Illustrator layers into their own shape layers. This is basically the same thing that we had from importing from Overlord. But you saw how much more work it was to get to that point when with Overlord, all I have to do is have the right file open. Let's go to the car, select the artwork. I'll just make a new composition and pull that in. After Effects builds it for me, no importing, no saving, no meeting to do anything special in Illustrator other than labeling my objects and I have the exact same artwork as shape layers ready to go. This is my preferred way of bringing Illustrator art in After Effects. But now you can see both ways of doing it. 7. Custom Controls & Organization: I have all of my artwork inside of After Effects now, and I can start preparing it to be animated. Now I've set up my composition settings to have 1920 by 1080 frames, so standard HD, a frame rate of 24 frames per second. Again, that's just my preference. I'm going to go with the traditional 24 frames per second. But you can work at whatever frame rate you'd like. I've sent my duration to 30 seconds. I know my animation is not going to be that long, but that way, any comps that I make, any precomps that I make are all going to be that length, so much longer than I need them. I do want to point out that I'm working in eight bits per channel. I don't need any higher depth than that. So I'm using very basic shapes and colors. My color working space is at the SRGB, which is pretty standard for screens. I'll start by just locking the background because that's not going to be animated, in that way I can just click and drag to make selections. But the reason I needed all my individual layers here as shape layers, is because I knew that I wanted this point level control of the vector paths. I didn't want to just scale things. If I were to move the anchor point in this frame layer, I didn't want to just scale this up and down because it's just distorting the proportions of everything and not maintaining the widths. I just knew that wasn't going to produce what I wanted it to look like. The problem is with shape layers and After Effects, if I go into the contents and into one of the paths here, this is a keyframe property, but it doesn't really give me much control, it's just the path property. There's no real values to it other than whatever I changed the path to. If I grab these paths up here, I could push them down. But it's just going to set another keyframe and linearly interpolate between those two points. I can't change anything like a motion path. There's no value graph in the graph editor, I have to use the speed graph, which isn't a huge deal breaker, but it just doesn't give me the control that I need over these points. Well, let me undo that, and I'll show you that there's actually a script that comes with After Effects that gives you much greater control over the paths of a shape layer. I'll just start with one of the more simple shapes. This door right here, it's just made up of four points. I'm going to find that in my layers, and then tore that open and go into the path property for this layer. Then I'll go up to window, and these are all of my scripts right here. There's one that comes with After Effects called Create Nulls From Paths. I'm going to click on that, and that opens up a panel. You're just probably going to open undocked. So it'll look like this. But I like to just doc mine right here in the interface whenever I'm using it because that way I can just quickly get to it. But what this is going to allow us to do, if I have that path selected and click on this button that says Points Follow Nulls, is After Effects will instantly generate one null for every point on that path and parents, so those points to those nulls. I can now grab any one of these null objects and manipulate the shape layer path much more precisely, I can do things like parent layers together. If I wanted this null object to follow that one, now I can move them both at once. It's going to give me the control that I need in order to manipulate the artwork in the way that I have in my head. Let me take that parenting off and look at my artwork as a whole for a second. I don't need to control every single vector path in this illustration, things like the wheels, these handles, the mirror, antenna, and hood ornament, those won't need that manipulation. But I have this idea in my head where the front end of the car can stretch out, and come back in, and the top of the car can collapse down and pop up. I need to be able to manipulate the main body part of this car using this level of detail. I'm just going go through my artwork layers and select everything that needs to be converted so that I can control those points using these null objects. So I don't need the mirror, but the window separator, the frame, the front door, and I'll just go down this list for all of the layers that I need control over. These selected layers are the ones that I need to drive with nulls. Now that they're selected, I'm just going to go to my Search bar right here and search for path. Press "Enter", and that will bring up the path properties on each one of those shape layers. Next, I just need to make a selection of all of them just by clicking and dragging right about here, and making a selection all the way down. It doesn't matter if extra layers are selected, it's just important that you have the path property selected. But then I'll just expand this out so I can get to my Points Follow Nulls button again, click on it, and After Effects will generate nulls for every single one of those points. Suddenly, I have a lot of layers. I have 90 already, and that's going to be an issue. Obviously, I can't control an animation reasonably with 90 individual layers. What I want do is actually groups some of these nulls, and create controllers that drive a bunch of them. For instance, all of these nulls right here on the front end of the car, there's a lot of them because there's a lot of different paths that make up all these details. But for the most part, they're all going to move together. I'm just going to really quickly lock all of my artwork. If I click on the label color for one of the shape layers, I can say, Select Label Group, that makes a selection of all of those blue layers, and then I'll just lock them. Now we can click and drag in my composition and not make a selection of the artwork, just the nulls. But if I select all of these and click and drag, then you can see that I'm manipulating all of those pieces of the artwork at once. So really I could make one control null, parent all of these to it, and then manipulate the artwork with one single null instead of all of these. Let me undo that, and we'll start to think about how we can actually do this. Well, I need to think about how I want this to animate. Let's just start with the front end, since that's what we're already talking about. I want all of these to move in a group. So I need to make a null object to serve as the parent for all of those controls. I'm just going to go up to Layer, New, Null Object, and that puts that right in the center of my comp. I want to move it somewhere over here, basically in the center of all of those objects. Just so it's centered around all of the nulls that it's going to control. Now it's a little hard to see, it's a very similar color, and it's the exact same size. So I'm going to change my label color to, say, fuchsia. By the way, all these colors are probably different than yours. In fact, I know they are because I customized mine. If you go up to the Edit, Preferences, and Labels menu, you can actually completely customize all of your label colors, and label names, and even what your default layer types will be assigned when you create them originally. I changed all these because I don't really like the default set of colors or the names. So I made a rainbow and then a few more unique colors. I definitely suggest that you customize your user interface to be exactly the way that you want it because you should be working in an environment that you enjoy looking at. But that's why my label colors look the way they do. The other thing I want to do is make this null object bigger, just so it's a little bit easier to grab. So I'm going to go up to the Layer, Solid Settings, and I'm just going to change this to 200 by 200 and click "Okay". Next, I want to name this. So I'm going to use a little naming convention just to distinguish these as controller nulls. Let's just call this hood.front, and that's how I'll name all of my controllers with a period between them, and they'll all be the same color and size. Next, I don't really like how the anchor point is in the top left corner. I'd rather have this null object centered around that anchor point. So I'm going to go into the anchor point by pressing "A" key the keyboard, and then back this up. If this is a 200 pixel square, then it should be 100 by 100, and there we go. Now that's encapsulating all of the artwork that it's going to be manipulating. Now that I've set that up, what I want to is just make a selection of all of those null objects and parent them to this new controller. I'll just find one of those layers in my layer stack, and parent it to that first layer, the hood.front controller. Now that those are parented, I can grab that one controller and manipulate all of those null objects with it. But in addition to that, I can also parent these other layers to it so that it all moves together as one unit, even though these ones aren't being driven by nulls. Let me just unlock my artwork. I'll press the Tilde key with my mouse over that panel, the timeline, and then I'll just click and drag down the Lock switch. Make sure that background is still locked. But now all my artwork is unlocked, and I can just freely select what needs to be selected. If we want that tire, I'm going to find that front bumper, the hood ornament, this grill layer, and I believe that's it. With that selected, I'm going to parent it to the hood front layer as well, and now I'll just test this out. There we go. Now the front of the car is all being driven by that one null. Let's move on to the next section of the car, which is right here, and do the exact same process. I'm going to just duplicate this main controller, so duplicate it and call this cab.front, and then I'm going to drag it over while holding shift, just so they're all on the same y-axis, just to make this a little bit cleaner, but I'll move it around the center of all of those nulls again. So right about there. Again, I'll make my selection. But I don't want all that artwork selected. So once again, I'll just lock all over that label group. I can drag a box around just those nulls, and then parent these to that cab front null object, so now that moves around with it. I'm just going to continue this process down the line for all of these individual groups of nulls. I'm going to time-lapse through this so you don't have to watch me do every single step. I've done all of the parenting now and created all of my controllers. You can see that I was just testing everything out to make sure everything is parented the way that it should be. Now this is still a mess. There's too much to look at here, but everything is being controlled now by these control nulls. So really I can lock all of the artwork and hide all of the extra nulls. To do that, first, I'll just start by hiding all the nulls. So with these point control nulls, I'm just going to select that label group. Because they're a unique color, I can know that only the ones I want selected are selected. What I want to do is just turn them off so we can't see them in our composition, and then click on this "Shy" switch so that I can make them disappear in my timeline. Let's look at how many layers we have again, we have 99. That makes this scrolling really difficult, and really hard to find the specific layers I'm looking for. But now that those are shied, if I click on my "Shy" switch, their hidden from my timeline, and I can focus on just what I'm looking for. Now, like I said, I don't need to see the artwork layers in here either because they're all being driven by nulls. I'm going to select that Label Group and do the same thing. I do need to leave the visibility switch on, but I can shy them, and because they're still selected, I'm also going to lock them just so I can't make a selection of them anymore. I'll press "Control" or command "L" to lock those layers. My background layer can be shied for good measure as well. Now I'm left with only these null object controllers that I created. I can click and drag to move them around. All of the individual parts of this car are going to follow them the way that I need them to in order to animate this the way that I actually want to. So the first step of this process is completed. 8. Secondary Controls: Now that I have the main controller set up for this artwork, I need to think about how I wanted to animate and if there are any other controls that I want to to into this. The first thing that comes to mind for me is the hood of the car because I know that I want that to open and right now, it's all being controlled by this null object right here. I need to target those layers and the specific null objects that are driving some of those points so that I can rotate that open. I need to disable the shying, so I'll just click on that so I can see all of my layers again, and then figure out which layers I actually need access to. Let's scroll down to wherever these headlights and the grill, those layers are living. Right around here. We've got the hood top, all of those null objects, I know I'm going to need control over some of them so I'm just going to turn those back on. I won't need these two so let's just isolate these to the ones that we need. These two can be hidden still. Basically, I just want to find all of the nulls that control these details on the hood of the car. So again, I'm just going to time-lapse this so you don't have to watch me find every single one of these layers. These are the null objects I need. They're the ones that control the front of that hood layer, that top hood layer, as well as all these little details, the headlights and that front panel. I need an extra layer of control here that not only allows me to manipulate it with this null object but also with a null object that's right here so that I can rotate it up like that hood is opening. I'm just once again going to grab this null object and duplicate it and then move it where I need it. So let's just zoom in here. This is the point that I want the hood to rotate open from, and I do not need this one to be nearly as big, and I don't even want it to be the same color so that I'm not confusing what it does. You saw that I even changed the label color for these null objects up here so I can distinguish this is part of the frame control and this is the body layer control. Let's change this one to a different color completely, maybe yellow, and I'm going to scale it down as well. It's going to solid settings, and this one can be 100 by 100. I can't forget to rename this, so let's just call this Hood.Rotation, and that should be parented to this hood front controller as well, and you'll see why in a second. Let me parent that to the hood front controller so it moves around with that just like all the other null objects. But now, I need to make a selection of just those null objects, not this controller, and I want to parent them all to that hood rotation layer. So let's scroll down to find those layers right here and change their parent to be the hood rotation. Now, because these are parented to the hood rotation and the hood rotation is parented to this hood front controller, they're still going to move around because that parent chain travels up the line to this master parent controller. But what it allows me to do is grab this null object and open up the rotation and then rotate it back so now I can open up the hood. Now, there are obviously some issues. This hood ornament needs to be parented to that, t0he antenna probably needs to be parented to that, but we can also see through the car and the trunk is not overlapping the windshield and it's just distorting a little weird. Let's just take this one step at a time. First, I'm going to grab the antenna and hood ornament and parent them to that hood rotation. So let me find those layers. I want to move the artwork for that hood at top to be above all of the windshield and frame layers, so I'm actually just going to grab all those layers and put them lower down the list. Now, all of those layers are basically at the bottom of the layer stack, but that's fine because everything else really should be above it. But now I can grab that rotation null and crank that back and it's going to overlap properly. Got to make sure that I re-lock all of those layers so I don't accidentally manipulate them. Then let's talk about the next issue which is when I rotate this back, it's twisting in a weird way. We definitely don't want that so I need to make another layer of control for the front end of the hood. I'm just going to undo that rotation and duplicate this one more time and we'll call this Hood.Front.Rotation and just move it to the front of the hood. So let me zoom in there and make it nice and aligned to the center of that artwork right there, and then I'll just make one more step in this parenting chain. The hood front rotation needs to be parented to the hood rotation, and now all of these null objects can be parented to the hood front rotation. Let's go into their parent it to the hood front rotation, and now I can rotate this hood back, but I can also correct for this twisting by rotating it back this direction. So we fixed one problem but we've caused another, and part of it is just the layer stacking. Again, these elements need to be in front, but they also need to be rotated independently of the front points of that top hood layer. So we're just going to add in one more control. I'm going to undo back down to the zero rotation and first move all of these elements above the hood, and it'll probably be easier to move the hood below those layers actually. There we go. Now I need to duplicate this controller, so I'll just duplicate it, and I'll just rename this we'll call it Hood.Headlights.Rotation. Actually we're not going to be controlling this with rotation, we're going to control it with position. I'm going to rename that Hood.Headlights.Position, and I need to move that down to the base center in the front part of the hood there. But it is parented up to that front rotation, so we've got our parent chain continuing down the line and now I can select all of these null objects that should be parented to it, which is everything except the two nulls that are driving the two points on the top of the hood right here. First, I'll just go find that those two layers, which are right here, and just shut them off because they're already parented to what they need, but I also need to grab these null objects that are at the tops of the headlights and this front hood shapes. I'm just going to find those nulls and turn them off real quick. That leaves me with just these null objects that are controlling the bottom points of these three shape layers. I'll make a selection of those, de-select the controllers that shouldn't be selected, and then parent all of those to the hood headlights position layer. I can go ahead and just shut them off because that's the end of the parenting. Make sure this one is still on. But what this allows me to do now is rotate the hood back and then correct that distortion with the next null object to right about there and then grab my hood headlights position layer and correct the perspective on that one right there, so it's all working. Now, I realize these null objects aren't showing up. I think it has something to do with the size of the null object, but they are there as I highlight over them with my mouse so you can see the transform controls show up, but it's all working now. Let me undo that and get back to this zero standard position of the way that I illustrated the artwork and just confirm that if I grab this main controller, everything is moving correctly. That antenna obviously should never go this far back, but I'm finding on animating that near the end of the animation after the hood is to this final state already. With that, I'd built in all of the control layers that I need to animate my car and I can shy all these layers and be left with just those null objects. 9. Zeroing Out Values: This next step is totally optional, but I think it's a really smart thing to do. Because this really is a rig for animation, just like a character rig, I want to make sure that I can easily revert back to this state of the illustration and I'm going to do that by zeroing out the position of all of these controllers. I'm going to use Duik, a script for After Effects, character animation to do just that. I'm going to go up to Window and scroll down to Duik Bassel, which is showing up off screen, but that's the name of the script. I already have it docked over here. If you're not familiar with Duik, it's an incredibly comprehensive character rigging script that's completely free. I'm going to put the link to where you can download it for free in the notes to this video right now. But I'm not going to use it to do any actual character rigging. What I want is to use its add zero function. That's going to be a little hard to do because of my screen recording size, but I'll just undock it so I can scale this up a little bit better. There it is, Zero. If you don't see this property, it's probably because your user interface is not set to the right mode. Go to the Settings and make sure that your mode is set to Standard, not Rookie. Just change that to Standard and that Zero function will show up. What I need to do is just make a selection of all of these layers, all of these null objects, which if I just press P really quickly before I do this, you see that all of their values are individual position values as you would expect. But as soon as I click this "Zero" button, suddenly all of their position values change to zero. It's kind of like magic. But really all that's happening is Duik is generating a null object in the exact same position of every single one of these layers and then parenting them to those new layers. The relative position to their parent is now 0,0, which allows me to do stuff like completely destroy my rig like this, and revert back to where I was just by selecting everything and typing in 0,0 on the position and it's right back to where I left it when I zeroed it out. I love working this way because it's like insurance, a way to get back to how you set up your controls in the first place. But it also just makes it really easy to know how far off of these position values you've moved things. If I wanted to bring this control in say 200 pixels, I can say 200 and then I want to move this one 200 pixels this direction as well. Then I'll just move it back 200 pixels. Then I'll know that this is much more symmetrical of a distortion. It's just nice working with much cleaner values. I'll revert back to where we were and now I'm ready to start animating with this rig. 10. Stretching the Car: Let's talk about how I'm actually planning on animating this car. My idea is that this state of the illustration is the final state. This is where I want the car to be before it drives off screen and then the animation will loop. At the start of the animation, I want it to come in from the left side of the screen looking different than it does now, much smaller and a lot of the pieces not even there yet, and then transform in a super stretchy, bouncy, cartoony way to eventually get to this state. I know at one point, I want this section of the car, the frame and the windows to pop up in a really exaggerated way so much so that it lifts the entire car off the ground and then slams back down. When it slams down, I want the hood to also open up and then slam down. After that, animation is completed then I'll probably move on to the smaller details like the mirror, antenna, hood ornament and have them all pop up. Since I know at the beginning of my animation that I want this frame, the windows and this whole top part of the car to be down. I'll start by just collapsing down this top part of the car so that it's at the state that I want it to be when it comes in on screen. I'm going to grab all of these and go forward to add on maybe five seconds, and just set a position key for all of them. Alt Shift P on a PC or Option P on a Mac, and then I'll just back up a second, we got four seconds and then start moving these around. Now the reason why I set a keyframe here is because as I drag this out, I can see the motion path and that'll allow me to match the angle of the frame. If I undo back to where we were, I want to keep this angle straight so that it looks like it's moving in a straight direction. I don't want it to go straight down like this, I want it to follow the angle of those paths. With that motion path, I can preserve that angle. I'm not going to push this all the way down so far that it's completely gone, but just probably right around here. It's really scrunched down there, and I'll try and line up this line here with this line here. That can also serve as a guide to get that lined up properly. I'll move it down about there and then move on to the next controller. I'm going to do the same thing for this one, bring it right on down, trying to match that angle as closely as possible, something like that. Then I'll grab both of these at the same time, and see if we can move them together. To a point, I can. I deselect that controller and then bring this one down. I'm trying to use this horizon line as a guide. I'll try and put that front end, ray in line with that as well. Then go to this center one and probably bring it up a little bit just so it's nice and clean. It's touching the paths that it should be touching, and then this back one probably shouldn't be down quite so far. Maybe I'll just pull out to about here, and that way we're preserving some of that perspective, but now it's nice in scrunched down. If I scrub through this, you can see that now it looks like it's transforming upwards on those paths in the same angles that they're drawn at. That's working really great. One issue though is that, you can't see the roof when it's down here and you should be able to, you can tell that this part of the car is just missing. I'm just going to draw another shape path real quick to make up that roof and then tie all of their points to knows just like I have the rest of the car. Just grab my pen tool, make sure the fill color is the same and the stroke color is the same. I think the stroke was two pixels wide, but we can adjust that later. Then I'll just zoom in nice and close so I can see these parts nice and clearly and I'll just make a rectangle following the contour of the roof. I'll pull one out here. I can adjust that perspective in a minute, and then just complete my path and now I have a roof shape. Let me zoom in here and maybe pull this down a little. That stroke width is definitely a lot bigger than two. Let me just find one of those artwork layers and take a look real quick. Set to three, so not that much bigger actually but let's adjust that to three pixels wide, and then just modify my path so that it fits the artwork a little better. I'll rename this roof, bring up my script to connect points to nulls. Make sure I find that path, and run that script. There we go. We've got our null objects controlling the four points of that roof and I can pair them up correctly. That's all done, and I moved it all the way to the bottom of my layer stack and I shied everything so I can be left with just my controllers again, but now that should follow the animation. When it's down, we see the roof, when it goes up it disappears. At this point, I'm not really thinking about animation and how the timing of everything is going to go, I'm just thinking about the different stages of my animation and the state that this car will be in. I know that there will be one state where the roof is flat like this and the car is the length it's supposed to be before the roof pops up and the rest of that animation happens. But now I need to think about what happens before this state. My idea is that this basically all gets scrunched in, so that it's a much smaller looking car at first and grows out in this really elasticy way. Let me get back to the state that I was in already. I'll set keyframes on these four controllers. The four main body controllers or five rather. I'll do that at three seconds as well, just to keep these keyframes nice and spaced out. Alt Shift or Option P to set a key frame on the position properly, and I will back up one more second, we go to two seconds. I want to grab the front end and bring that way back. Basically, I want the wheel to be centered in between the hood and the front of the cab. This is somewhere around there. Don't worry about how the antenna is moving all the way back there, we're going to deal with that in a little bit. But then I'll shift click on the next controller and drag that back. That's obviously causing some issues with the top of the car but again, don't worry about that, I'll address it in a second. The center controller I'm going to leave where it is for now, just because that might work where that controller doesn't move at all, just the ones on either side that do. Next, I'll grab these two controllers and bring them way in. Really I want that entire section where you see this whole section of the door with the handle to be covered up by this door. It starts with one door on the side and then ends up with two. Somewhere around there is probably going to work just fine. That tire should be overlapping that. I just need to rearrange the stacking order. Let me unshy my layers and find the two tires. There we go. The front and rear wheels, I'll move those above the back door and the front door too. But there we go. Now the wheels are showing on top of the artwork that they should be. Now my car is nice and scrunched down into this mini version and then it pops out to the long version and then the roof goes up. What I need to do is basically pair each one of these roof controllers to their corresponding body controllers. That way when these move horizontally, these ones will move with it. This one needs to be paired to this controller. This one is the cab rear, let's pair that to Cab.Rear. I will need to zero out that position out again but that's no big deal. Then this one or frame center will go to the Cab.Center. Then both of these are parent to the Cab.Front controller, so Cab.Front. Now they're going to stretch out with it. If I disable my overlays by pressing Control Shift H or Command Shift H on a Mac, you can see that now the entire car transforms together and that's looking really good. Before I forget, let me grab all those controllers and bring up Duik again, make sure I go to the actual state that I want to be zeroed out in my timeline, and then with those layers selected, just click on that "Zero" button. Now those are all re-zeroed out, my position is set to zero, and we're good to go. Let's back this up and take a look at the scrunched down version. Again, I'll hide my overlays, Control Shift H or Command Shift H. We have a couple of issues. First of all, the mirror, the antenna, and the hood ornament, those are sticking out the most to me. I'm actually going to unshy those because I will be animating those outside of the controllers they're parented to. I'm going to unlock the antenna and unshy it, as well as the hood ornament and the mirror right here. Now when I shy my layers, those will stay visible, but I basically want to just grab all three of those layers and drag them forward so that they're not visible until after this part of the animation. Right around five seconds, that's where we put our set of keyframes there, so that'll work for now. That roof layer, I never locked and shyed that so let's go ahead and do that now, lock and shy. But now this scrunched down version looks a little better. Let's take a look at what's going on here. Behind the cab, that is the window separator layer right here. When it's all the way scrunched down like this, it's sticking out back this way. What I want to do is see which control layer is modifying those paths. I think that would be the frame center because at this point, this state, that's the path that's moving it. I should be able to just grab that frame center and move it so that it's hidden behind this path that's very similar to it. That should've set another keyframe for me automatically, it did. I'll just put that at the two-second mark and then we'll set another keyframe identical to this one at the three-second mark so that it looks the way that it should at that point in time. But that way, it's hiding at this point and then it goes to where it should be at this point. So we've got a couple of our states down. We've got the shrunk down version, the stretched out version, and the final version. Now that that's set up, let's actually start timing this out and working on the easing so this animates the way that I actually want it to. I'm going to press U to bring up all the keyframes that we set and scroll down so I can see the keyframes between these two states. That center controller never ended up moving so I'm just going to get rid of that so I can make my timeline a little bit cleaner. I want to start adding in some of those animation principles that we talked about, so I'm going to grab these key frames and ease them. I'm sure by now, you've noticed that I have my Motion-3 extension docked up here as well as Flow, and that's because I use both of them all of the time. If you're not familiar with them, definitely go check them out. Motion-3 is some of the best money you can spend on a workflow enhancer in After Effects just because there are so many tools involved with it. But these little handles right here allow you to adjust the easing of any keyframes just by clicking and dragging. You can do them on incoming and outgoing velocity. It's just fantastic so definitely check that out. Flow is also amazing. It's basically a value graph that lives in a panel instead of having to go into the graph editor. Like I said, I use both of those all the time. If you see me using those, just know that it's identical to going into the graph editor and modifying the speed or value graphs. It's just a whole lot faster. Sometimes I just start there and then end up in the graph editor, it all depends on what I need to do. To get the ultimate control, you have to go into the graph editor, that's just the way it is. But these two extensions really minimize how often I actually need to do that. This animation right here, I'm just going to set a work area so that we can preview this. This is pretty boring. I don't want this all to be animating at the exact same time. I want to overlap these animations and have some overshoot in there so that this is a lot more bouncy and playful. I also want to make that easing a lot stronger so I'm going to grab those keyframes again and really increase this up to maybe 66 and then this one to 88 so that my easing is a lot more intense. That easing looks better now, but what if we incorporated some overshoot so that it doesn't just go from point A to point B, but it goes beyond point B and then recoils and bounces back and forth a little bit? Let me bring up my controllers again so I can see them, Control Shift H or Command Shift H. We'll just focus on the front for now. Instead of going from just here to here, we're going to go maybe 100 pixels past that zeroed position and then I'll go forward maybe four frames, 1, 2, 3, 4 times, on the page down key, and then we'll go back maybe negative 75 pixels from the zeroed position, and then four and more frames forward, page down, 1, 2, 3, 4. Then we'll go, let's say, 35 pixels forward and then 1, 2, 3, 4, negative 10, and then 1, 2, 3, 4 and then zero. We're at the final state. Now the timing that I put between all these keyframes was really arbitrary. I was just using the equal values so that I could get my keyframes there and now I can go back in and refine the timing. Just focus on that front end, and obviously the timing is way off and the easing is off. Let's go into the graph editor for this so we can see all of these values together and talk about what needs to change. This amount of time right here is just way too big. I need to bring this key frame back a little bit so that it starts recoiling back past that overshoot sooner. It probably doesn't need to ease in that strongly. Maybe somewhere around here, it'll come out. I think that's even still a little bit too long so I'm just going to back it up a couple of frames, looking a little bit better. Let me grab these keyframes here and just back them up. All of the easing is just a little too strong so I'm just going to turn that down a little bit equally on all of them. Then that first motion between these two keyframes is just way too slow so I'm going to back it up a bunch of frames and we'll see what that looks like. You know what? I'm actually going to separate my dimensions so that I can be using the value graph. For this type of overshoot animation, I think using the value graph just makes more sense. I don't need any of those Y position keyframes. These are only traveling on the X position. My graph editor is set to auto-select graph type, so it's automatically switched to the value graph for me. But now I'm going to select all those, I need to re-ease them so we'll just do this again. I can ease out of that first key a little bit more, bring the ease in a lot more on that second keyframe. I think the value change might be a little bit too strong on this overshoot so instead of going down to 75, I'm going to double click on that and say negative 50 and see if that helps. Then on this one, we'll change it to maybe 25, this one is still a value of 10. That overshoot shape should be a little bit better. I'm just going to work on these curves a little bit more so they're a little bit nicer and see how it affects the animation. Now it really shoots out fast and hangs there. I don't think I wanted to hang there quite so long so maybe this easing is a little too strong. I still want it to be nice and buttery smooth. We're getting there, I just need to work on the timing a little bit of these keyframes and space them out a little, maybe bring this one back one frame. This is just how the animation process for me goes. I just work on the timing of all the keyframes, play it back and see how it looks. You do start to develop a little bit of an instinct as to what will look good. But really, I do my animation by eye. I keep modifying properties until I'm happy with the way that the motion is looking. I really want that first animation to be a lot snappier so I think I actually do need to make this curve pretty extreme right here. It's traveling really fast in the middle of those two keyframes. But I don't want it to stick out so long on the opposite side. So instead of making these handles symmetrical in their length, I'm going to bring this one back quite a bit and then pull this one out as well, pretty much all the way and see what that looks like. That's a lot better. Now it takes more time to move and then it's really snappy on this end of the animation. I'm just going to bring these three keyframes back one frame. I think that's a pretty good starting point, and I'm just going to mirror that same animation with the overshoot to the other controllers now. I'll use the timing of these keyframes as a guide just so I don't have to spend so much time figuring all that out. But I am going to timelapse through this since it is a pretty repetitive process. Because I zeroed out all of those positions, I'm moving them symmetrically. I knew what the overshoot values were here. Remember we did a value of 100, then 50, then 25, then 10. I can remember those numbers very easily because relative to their final state, those values are going to be the same. I was able to just replicate those numbers on this controller. Now I just need to work on the easing so that it's similar to the other animation. There's the overshoot animation happening on all of those controllers. 11. Overlapping Motions: Now let's add in some overlap. I want the hood of the car to go out first. I'll select everything except for that, these ones right here and move them forward a few frames. So Alter option on Mac and the right arrow key, I'll go maybe four frames forward. Now that hood comes out first and then we'll have the trunk come out next. I'll deselect the trunk and move these ones forward four frames again and play that back. We're getting a lot of overlap there. Four frames might be a little too much, so I'm going to grab these key frames and bring them back two frames each, as well as these ones, bring them back two frames each, and see if that works a little bit better and I think it does. But let's stagger the cab front and rear controllers as well. We'll have the rear section animate last, that's this section right here. I'll just nudge those forward two frames and I think that's working pretty well. There is an issue that I'm seeing right here with the trunk of the car. It looks like because of the extreme overlap rate there, just one of the layers is appearing over the windows and the frame and all that. I just need to move the trunk top layer below those. I'll do that real fast. So that fixed that issue, but it also made me notice this wheel is floating out there, but I think I'll deal with that in a different way in just a little bit. For now, this overshoot animation is working pretty well. I'm happy with how stretchy and elastic this all looks. Let's get a nice big view of that. Yeah, I think that's looking pretty good. All right, so the only thing that I'm noticing about this that I'm not really liking is how that center controller doesn't move at all, this center section of the car. I'm just going to add in a little bit of motion here so that it starts out forward a little bit more. I'm going to again use the exact same timing of these other key frames as a guide to add in and overshoot on that as well. Let me just find the right controller and I'll align it with the layer just above it for now. I'll set a position key frame there, and then one right here and fill in the gaps. I'll move this controller and that's going to force me to move the one behind it too. Since it's aligned at this point, I'm going to find that other controller and just for the time being, move these back so they're aligned again. I'll grab both of them at once, make sure that value is set to zero, and then grab both of them at the same time and move them forward together. That way I'm modifying this key frame right here, but we'll just move it forward about that much. But that way there is some movement on all parts of the car when it expands out and I can incorporate that overshoot now. This one will not need to be quite as extreme, since it's not traveling as far of a distance. Now I just need to overlap the animation again. We'll have the cab center go out last. I'll tap that out a couple of frames and I think the cab rear will be right behind it, so I'll grab those and tap them out two frames as well. Now everything has a little bit of movement to it. It's all overshooting and we've already incorporated some overlap into our animation, So looking good so far. 12. Popping the Frame Up: The next part of my animation is going to be the top of the car, the roof popping up so that the car can lift off the ground and then smack back down. Let's start by animating that. I'm going to exaggerate that a lot with an overshoot as well. Now I'm focused on these blue layers and I'm going to ease all of these keyframes. Again, do it probably pretty extreme. I will be animating on both the x and y position values for these. I'm going to leave them connected. I'm not going to separate the dimensions. What I want to do is, go forward, maybe 10 frames, shift page down and just copy and paste these keyframes over so that I know where I need to overshoot past. I'll zoom in nice and close here and focus on the back controller. There's an issue with the roof and I know exactly why. It's because we parented this point null to this controller, the same as this one so the angle never changes. I will need to fix that, but I'll do that after this overshoot. I want to grab all of these null controllers and get a rough idea of how far up I want this to travel. Probably pretty high. Pretty far past where it should be just so it's super cartoony. Then I'll zoom in here, nice and close so I can take a look at that motion path. I dragged all of them straight up. But if I now shift this over, I can see that my motion path will start aligning with this path right here. That's exactly what I want. I want to continue that trajectory, that angle of motion as it's animating out for each one of these controllers. I'm going to start by modifying those. Then I can work on the overshoot, the recoil part of this overshoot. I'll go down, again, timing isn't really important right now, just setting the values is so I'll go four frames forward. Again, copy all of these values over so that I have the point that I need to recoil past. I overshot quite a bit there. It's going to need to recoil a lot as well. Let me grab all of these, bring them straight down, maybe this far, and then just line them up again. You can see how that motion path is making a straight line after I modify that x axis. We shoot up, come back down, and then we'll probably overshoot and recoil one more time. Four more frames, 1,2,3,4. Copy, paste and grab all of them and bring them up a little bit. This time not nearly as much as the first time and realign them. Then we'll go four more frames 1,2,3,4. Copy and paste one last time. Then just bring him down a little bit and realign. I can see that some of my motion paths are not lined up, but I can click and drag them right there so they're all in line. Once you get in zoomed into a little bit more detail, it's easier to see those mistakes that you might make. But it's really simple to correct. There we go. I've got my value set. Now I can work on the timing and spacing of all these keyframes. Let's ease them all out and play it back. There you go. It's a very bouncy animation. There's nothing wrong with that overshoot, but I think I do want to modify it just a little bit. Again, I want this to be very strong on the ease out of the first keyframe. I'm going to drag that out probably around the 80s percent. That way it takes a little more effort basically to get out of its previous state. But honestly, the rest of that looks pretty good. I might bring this set of key back one frame. That way you can see, because this is the speed graph that every time that it moves, it's moving slightly slower than the set of keyframes before it. That's looking pretty good. The line of decay is basically the principle of how quick this springiness is dying out. You can see that from each one of these peaks of the speed graph is pretty much going in a straight line. It's a very linear. What I want to do is space these out just a little bit so that it's more of a curve than a straight line with the velocity of all of these keyframes dying out. Now if you were to draw a line connecting all of these tips, you can see that it's a lot more curved than it was before. Let's see what that looks. I like that a lot better. It's just coming to a rest more gradually. Honestly, I think I could bump this one out in two more frames. That's a great looking overshoot. Let's back it up and place these keyframes where we want that overshoot to happen. Probably right about here, where the rest of the body of the car is starting to settle. I grab all of those keyframes and back them up. These ones I do not want to overlap, I want to keep them together as a group so the entire roof is moving as one unit. I think I can back it up even a bit more. There we go. Now, it's starting up before all of this has come to a rest down here. Let's play that together now. It comes out and then pops up, and I'm happy with the way that looks. 13. Lifting the Car: What I want to happen when it pops up is for the entire car to just lift right off the ground. But I don't want to have to grab all of these controllers and animate all of them at once. I'm going to build one more controller that's going to drive that lifting off the ground animation. I'm going to just press U to collapse all of my keyframes and make another new null objects. Go Layer, New, Null Object. I'll rename this car lift. I want to make this one a little bit bigger as well. Let's make it maybe 250 by 250, and put that anchor point right in the middle. Then make it a color that's a little bit easier to see, maybe orange, and that way you can distinguish it from the other controllers. I'll just put this probably down at the base of the body, in the center of the two wheels, roughly anyway. Then I'll just zero that out real quick. There we go. Now I just want to parent all of these controllers, these future ones to that master controller because these are what are driving everything else in my scene already. I'll just click and drag to that car lift. Now when I move this around, it's going to move the entire car. However, when I did that, I did lose my zeroed out position. Again, just to be nice and tidy, I'm going to grab these controllers, open up Duik again and zero that out one more time. All right, now I can animate the car jumping up. Let me bring up my position and separate those dimensions because I only want to move it on the y position. I'll find the point and time that I want the car to start lifting probably right about there. I'll set my keyframe here and then move forward 1, 2, 3, 4, 5, let's go eight frames. As the roof is starting to come back down is when this will be at its peak. I'm not quite sure how far off the ground I want it, but negative 150 sure, that's a nice round number. Then it needs to drop back down. I'll go eight frames forward again, 1, 2, 3, 4, 5, 6, 7, 8, and put it back down on the ground. Then I'll go into my graph editor and just modify this a little bit. I want it to ease in and out of this position keyframe really strongly, and I want it to lift off of the ground really quickly. This is the shape that I'm going to make with my curve. It starts off really fast, it slows down at its peak, and then it slams into the ground really quickly again. Let's see what that looks like. Okay, not bad. I'm going to fit this to my comp viewer so I can see the entire composition. That's a good start. I also want it to rotate a little bit, so let's add a rotation keyframe. Alt+Shift+R, or Option+R on a Mac, and we'll just rotate it maybe backwards a few degrees. It does not have to be a whole lot to make a big difference, so maybe four degrees back. In fact, that can keep rotating until it hits the ground. I'll just copy and paste that zero again. What I need to do is make a guide so I know where my ground actually is. Let me press Control or Command+R to bring in my rulers and then click and drag to bring a guide out. Now we'll be able to know when the wheel is making contact with the ground plane. It lifts off the ground and is rotating back, we can keep that rotation going until really just before it's back on the ground. I could probably rotate that back even further and see how that looks. I do need to go in there and ease this maybe not perfectly straight here. I'll just ease it a little bit out of there and ease this one out a little bit as well. I think that's a little too extreme, so I'm going to just make that a little bit more linear. Yeah, that looks a little better. But now that I'm seeing it, I think that the car is just not moving high enough in the air. I really want to exaggerate that lift, so I'm probably going to move it up quite a bit more and play that again. That's almost touching the top of the screen so maybe not quite so much. Maybe more like there. All right, that's a good start. Next when it hits the ground, I really want it to rotate forward, but still be on the ground. It'd be rotating from this front wheel. We need to make another controller rate at that point so I can rotate from there. I'm going to duplicate the car lift. This one doesn't need to be as big, so let's go into the solid settings and I'll make it say 150 by 150. We'll call this front wheel rotation. Get rid of the keyframes on it and position it right over that wheel's hub caps. I'm going to zoom in nice and close. That's where I want this to rotate from and then parent the car lift to it. Neither of these layers are zeroed out correctly because I changed their parenting relationship, so I do need to fix that real quick. I realize this is very repetitive, I'm going back and forth a lot, but this is just the reality of managing a rig that's really this complex. You need to make sure that you're keeping everything nice and clean so that when you actually are animating, you're not fighting your rig. But now that that's zeroed out, I can rotate this on the front wheel. Perfect. I'm going to set a rotation key frame rate here so that on this frame it will have already started rotating and we'll go forward maybe six frames, so 1, 2, 3, 4, 5, 6, and then rotate the whole car forward a little bit to get some lift off of the front end and then back down 1, 2, 3, 4, 5, 6. These motions can be very symmetrical since it's basically gravity that's stopping it from rotating and then pulling it back down. I'll do a very similar shaped curve here where it's very strongly eased at this point and not so much on the start and the end. That might be a little too strong, so I'll just ease it slightly. There we go. Now it looks like it has some weight to it on its way up. Could probably lift it even a little bit more. This is a value of four right now, let's change it to six and see what that looks like. Yeah. Now on the way back down, you might have guessed, I want that to pop up on the front end now rotating on the back wheel. I'm going to make one more controller. We'll call this rear wheel rotation, and I'll move that back here. Align it with that hub cap. I need to parent the front wheel to the rear wheel. I can probably just use similar keyframes here, just to change their values. I'm going to back it up one frame from the last frame of the front wheel rotation, and then instead of going into a positive direction, I'll just change this to a negative direction, maybe negative four degrees, or even negative three degrees. See that made a big difference, just one degree change. Then take a look at that value graph and just reverse these curves. Now it rotates on the front, as well as the back wheel. I think it's just taking a little bit too much time to do it, so I'm going to modify the timing. I'll take off one frame on each of these three key frames, as well as these. Just speed up the whole animation a little bit, and then back these up and see what that looks like. All right, so yeah, now it's rocking back and forth a lot quicker. I think the easing on this key frame right here could be slightly less, since it is, again, decaying that movement. This is still taking too long for me, so I'm going to take a frame off of each one of these key frames. That way it's just a little bump on that last rock up. I think what this animation needs is just one more little jump up that's just nowhere near as much as this one right here. But again, rotating on that back wheel, like the backend of this car is heavier than the front end, which in reality probably wouldn't make sense. But this is supposed to be cartoony, not trying to be super realistic here, but I'm just going to go forward maybe another three frames and back this up maybe two degrees. Not even that. I'll do 1.5 and then slam back down to zero. Take a look at that easing and make sure that this is nice and symmetrical, and see what that looks like. Yeah, that's a lot bouncier. I think one and a half is still too much, so I'll just do negative one. Now there's just that extra little bounce right at the end of the animation. Let's increase my work area so we can see the animation a little bit more as a whole. There we have it. I'm liking the way this looks. The things that I am noticing are for one, the roof, I never went back and fixed that one section. Let me just collapse all of my keyframes by pressing U, unshy and find that roof which should be at the very bottom. Here we go. The roof, and I need the point that's on the back in that top section there. I think that would be, let's see this point right here, this null. I need to add some keyframes to that. It's visible at the front of the animation, but once that roof expands up, it pops up, that's when I need for it to hide behind the rest of the artwork just to match the perspective a little better. Right here is where it starts lifting, so I'll set a key frame for the position there and then just go forward and tell we shouldn't see it anymore, which is really about there. Then drop it down behind the rest of the artwork just so we can't see it. Just for good measure, I'll ease these key frames. Now at the top of this, we shouldn't be able to see it at all, and my artwork looks correct again. The other thing I noticed about the roof is this point didn't look like it was too aligned, and that's this one here. I'm just going to free hand move it a little bit, just so it lines up a little nicer. Now that roof looks great. I'll shy up all those layers again. The other thing I noticed is that the overshoot on that roof coming up is probably just a little too exaggerated at this point. It's coming really close to the top of the frame net that the car is lifting off, so I'm just going to back that down a little bit with my position keyframes. Just press P to reveal that position property. These are the keyframes that I need to modify. I'll zoom in here and one at a time, just back these off just slightly. All right, that's the bulk of the animation, the main body portions of the car with all this distortion and transformation. Next, we can work on some of the finer details that's going to take this from looking like it's still a pretty rigid piece of artwork, into something much more playful and cartoony. 14. Opening the Hood & Bouncing: Now I'm going to get into some of the finer details of this car moving so that we can bring it to life a little bit more because there's a lot more that we can actually do with this rig. First, I want to just get this hood flap going as the car is traveling up and down because we built in those controls but we haven't animated that yet. That's these three controllers right here that I need to worry about. I'm just going to go to about where I want the hood to start opening, which really should be when the car takes off. I'll step the first keyframe on the rotation of this controller just by pressing "R" on the keyboard and then clicking the stopwatch on that frame where it's still on the ground. Then over the course of it jumping up in the air and then hitting the ground again, it can open. In the same way that the car is rotating back, this hood can be rotating open all the way up until it hits the ground again. Let's just back this up. Probably a good amount may be around negative 35 degrees. Then I need to fix this part of the hood where it's twisting. Again, that's where we built in this hood front rotation. I'll add a keyframe on that property and back it up. This is just a counter key to counteract that distortion. Then we have one more controller to counter key this section of the hood. This one, I'm going to use the position property to do that, so I'll set a keyframe and back it up and then I'm just going to freehand distort this until it's about where I want it. That perspective matches a little bit better. It's not 100 percent perfect, but this whole illustration is out of perspective. I'm not too worried about it. It just looks better than it did, but now that hood flap pops open before coming back down to the ground. I want that to ease into this state pretty quickly. I don't want too many frames where you can barely see the thickness of the hood. I'll just grab all these keyframes and go into my graph editor. I want to make sure that I'm looking at the same graph here. Right now I have the speed and value graphs, but I'll just go into this menu and change it to the speed graph since I do have that position property, select all those keyframes and zoom in a little bit and actually I just want to ease these ones right here, so I'll just grab them all on easy ease and then pull this out quite a bit. Maybe not to the 90s, but to somewhere in the 80s. By the way, when I say in the 80s, when I'm pulling this out, you can see the influence. It's telling me what the percentage is, that's what I mean by the 80s. It's in the 80 percent influence range. Let's see what that looks like. That pop is open really nice. Honestly, I think I could make that even more extreme. I'm going to grab these keyframes and take the influence off and maybe even pull this tighter. Maybe we will be around the 96 percent. Yes, so now it pops open really quickly. Then it's going to come back down as the car is slamming into the ground. Maybe two frames after this frame where the back wheel is about to make contact 1, 2, that's where I want it to hit close. It looks like it's coming down with a lot of force because of the car hitting the ground. We'll just zero out this position. We get back to it's closed state and then zero out these two values as well. That sets keyframes for all of those. I want that to come down pretty quickly. If I play this back there, it closes really quick, but I don't want it to just stop there. It's not going to just slam, close, and stay, I want it to pop up and bounce a couple times. We'll go forward maybe 1, 2, 3 frames and then back this up again. We'll start with the hood rotation, we'll go maybe negative 12 degrees back, correct that distortion just a little bit and do the same thing for the headlights. Let me zoom in nice and close. We'll just do it about, let's say right there. Then I can work on the easing. Maybe these keyframes coming back down, it's going to be a lot more strong on this end. It closes really quickly, but then it pops back open really quick as well. I'll just really crank the influence on this side take off some of the influence here, see what that looks like. Yeah, looking good and I just need to bounce it down and back open one more time probably. Let's do that real quick. I need to duplicate these keyframes, so I'll get out of my graph editor, copy paste for that closed state, and then we'll have it bounce one more time a lot more subtly. We'll go in here, 1, 2 maybe this time instead of three frames, and then back this up just a couple of degrees and rotate this back just slightly and then move this one out just slightly. Something like that. Then we'll go forward two more frames and set these all back down to zero for that closed position and work on the easing. I'll grab these ones right here and ease them. It just make this a little bit more extreme again. Let's see, it pops close and actually I don't want that to be eased, I want it to be a mirrored ease of this section right here. This should be extreme. Then these ones over here should be not so extreme. That way it stays open longer and then slams back down. Then we have that same shape between these sets of keyframes over here. These handles should be pulled out, and these ones should be pulled out, and that should work. Let's zoom out and just preview that part of the animation. Yeah, that looks great. The only thing that's missing is the part of the car that we should be seeing when the hood is open. I need to just draw that in real quick just like I did with the roof. I'm just going to time-lapse to this. There we go. I just want to make it a slightly darker color, so I'm going to grab that shape and just make it a little bit darker, not a ton, but that way it just has a little bit more depth to it when that hood is open. There we go. Now, that's all set up. I can show my layers and that's my hood animation. Let's look at that as a whole. Great. Let's think about what to do next. Well, the car doesn't really look like it's moving right now. It's just sitting there. Even though in my animation the car will be centered in frame, I want it to look like it's moving. I want it to look like it's driving down the road. There are a few things that I'm going to do to make that happen. I'll start with bouncing the car up and down a little bit, just so it looks like it's bumping along down the road like there's a motor in it making it go. But I don't want the wheels to be bouncing up and down. Those should always make contact with the ground. I'll start by duplicating the car lift and just rename it car bump. I'll move it down just so it's visually in the same hierarchy is this parenting chain. I want to parent that car bump layer to the car lift layer. But I need to make sure to get rid of those keyframe, so I'll press "U" to bring up those keyframes and get rid of them and this y position is all I'm concerned with. I'm going to change the color of this to, let's say, indigo and make it smaller. Control Shift Y or Command Shift Y brings up the solid settings for a layer, and I'll just make this, let's say, 75 by 75. That way it's nice and small. I'm not actually going to be animating this around, I'm just going to use it to loop an up and down motion, so I won't need much access to it. But what I need to do now is parent everything that moves the car to that layer, so all of these fuchsia controllers. That's what's driving the back of the the car. If I do that, now I can grab this and move it up and down. But I still have that issue of the wheels following it. We'll fix that in a second. But first, let's just animate the bump going up and down. I'm just going to go to say 10 seconds, open up the position and set a keyframe on the y position. I want to zero this out as well as those controllers that I just reparented. I'll do that fast. Great. This is my zero position and I want to bounce it down and probably up a little bit. We'll start in the down position, so we'll go to a positive direction, may be 10 pixels, and then we'll go forward maybe two frames and bring this up to maybe negative 10 pixels. That might be way too far, but we'll see how it looks. Then I just want to loop this animation, so I'll go forward two more frames and copy and paste this. Then I'll just set my work area around these keyframes, making sure to come back one frame from that last keyframe because that is a duplicate frame of the loop. That way I can preview the loop exactly how it should be. I think it's happening too quickly and it might be covering too much distance. Let's just spread these out by one frame each. Now there's three frames between each of them and preview that again. That might be okay with the timing. I just need to work on the spacing now with this ease. I'm going to ease this out, go to my value graph. If this is the downstate, I want it to bounce up pretty quickly and hop off of the ground with each bump. I'll grab these handles and bring them down a little bit so that they don't hang on those values for very long and I'll ease this one out quite a bit. I'll just click and drag those out, and we'll see what that looks like. I think the easing is working pretty good, I'll just make this a little less extreme. But the distance traveled is definitely too far. I just want to grab all three of these keyframes and use another technique which is this transform box. Then I'll hold down the Controller or Command key before clicking and dragging on this bar right here and it's going to symmetrically scale this down. I want to do about half the distance. These keyframes are now roughly five pixels each in each direction. Now it travels half the distance. Now, the car is just bumping up and down. Since it's traveling less distance, I feel like it could be moving faster again. Let me back these up one frame each and then preview that. I think that's looking pretty good. I'm just going to work on this easing a little bit more. Maybe I'm not giving enough influence to these first and last keyframes. Now the bump isn't quite so drastic, but it's just bumping up and down the highway now. Honestly, it might still be going a little too quick. I'm going to put four frames between each set of keyframes. So 1, 2, 3, 4, 1, 2, 3, 4 and see how that looks. Yeah, I think that's a little bit better. I'm just going to get it into that upward position a little bit quicker. Now, let's deal with the wheels. I'm going to write a very simple expression for basically counteracting that motion. Let me scroll down and actually those two layers are shied, so I'm going to find them. There they are. I'm going to unlock them and unshy them so I can edit them. I want to grab the position properties of these and separate the dimensions so I can deal with just the y position. I want to write an expression that basically says, "Look at the value that I have set here for that y position and then subtract the motion from the car bump position." I'll start with the front wheel and write an expression by holding down the Alt or Option on the Mac and clicking on the "Stopwatch". I'm going to type out a value which is going to reference whatever value I set the tires y position to already and then say minus. Then grab my expression pick whip and scroll up to that y position value on the car bump controller. That will fill in the rest of the expression for me, I can just close it off with a semicolon, and it is very subtle but my wheel has slightly changed position. If I disable the expression and re-enable it, you can see what's happening. I want to shift this back onto the ground plane. I'm just going to drag that up. That's what this value part of the expression is allowing me to do. But now if I play this back, you can see that the car body is moving up and down independently of the wheel. It's like the shocks or the suspension of the car is keeping that wheel on the ground. It's as simple as that. I'm actually just going to copy the expression by right-clicking on the y position, saying copy expression only and then pasting that on the y position of the rear wheel. That actually kept it on the ground right where it needed to be. We should be good to go. There we go. Now our wheels are staying in place, the car is bumping up and down. 15. Spinning the Tires: Now the tires really look like they're not spinning at all, so what can we do to fix that? Well, I'm going to add in a little bit of distortion to help it look like they're actually rolling down the road, and I think I'm going to keep the same timing that I have for the keyframes on the car bump. So we'll just start at the 10 second mark, and I'm going to do this through an effect, the Transform effect which we already used for squash and stretch in our exercise. I'm going to just again use my effects console and type in transform, press "Enter", and I want to link up the position and anchor point just like the squash and stretch rig, so I'm going to double-click on that anchor point that'll reveal it down here, that will click on the position as well, and then just use the property pick whip to link the position to the anchor point. Then I want to find that anchor point, it's right in the center of my car, and move it down here. So its right at the base of the layer, this is where I want the distortion to happen around. We're going to use the skew part of this effect to make it look like the wheels are actually moving. So I want to just adjust the skew so I can see how it's distorting it, and then change the angle so that it's going to distort in the direction I want it to. So I want this at a 90 degree angle and that way I can skew this backwards and forwards. I probably actually don't want to go in a negative direction, but starting at zero and then moving forward. On this frame, I'll set a skew keyframe and press "U" to bring up that keyframe, and then I think that was four frames apart, 1, 2, 3, 4, yeah, for the next keyframe, and we'll just skew this out a little bit. So maybe about that far, maybe around a value of 12, and then we'll go four frames forward again, and set that back down to zero. Let's preview that and it's not eased at all, so it doesn't look that great so let's go into that graph editor and all ease this all out. This one doesn't need to be quite so extreme because I wanted to be more of a fluid motion. Actually I'm going to grab all of them and just easy ease it and see what that looks like. Sometimes the easy ease is just right. Okay, not bad. I think that on this starting position it actually shouldn't go all the way down to zero, I want to distort it forward a little bit, so I'm going to grab both of those keyframes and just click and drag while holding shift so that it's slightly skewed forward still, and then I'll probably need to increase the value of this currently it's at 12, so maybe we'll increase it up to 18 and play that. There we go. Now that wheel looks like it has some movement to it, but it doesn't necessarily look like it's rotating all that much. So I want to combine this with a little bit of squash and stretch actually so let's set a keyframe on the scale. I'll uncheck uniform scale. Since we have the anchor point where it needs to be already, it will still scale from that ground plane so the wheel will always be on the ground, and I want to link up the scale width and the scale height again. So remember that squash and stretch expression is really simple, and just alter option click on the scale width. I'm going to get out of my graph editor, and we're going to type in 200 minus, and then use our expression pick whip to grab the scale height, finish it off with a semicolon, and that's it. Now I'm going to Alt Shift Click or Option Shift Click on that property just to hide it, that way I don't have to be bothered with it in my layers anymore, and then I'll set a keyframe for the scale height. Now I don't want this to be 100, so I'll probably just increase this up to maybe 105, then go to the next keyframe and bring this down to 95, and then go forward again and set that to 105. Then I'll ease all of these keyframes, probably just easy ease just like the skew keyframes and play that back. It's still not looking correct, and that's because I need to add in some overlap. So halfway between these two keyframes is where I want these ones to start, and if I play that back, it's starting to look right and these keyframes are not looping, I just have three key frames for each property. What I need to do is write another expression that will automatically loop this for me. You might be familiar with the LoopOut expression. If I hold Alt or option and click on that stopwatch to write an expression, I can just start typing loopOut and the autofill will suggest that for me, I don't even have to type anything in here, I'll just press the semicolon at the end. What that's going to do is just loop these keyframes forever, as soon as it hits this one, jump back to this one and play through it again on this side of the animation. So before it, nothing happens but on this side it continues looping. So if I play that, it just keeps bouncing up and down. Let me just go into my graph editor and click on this switch right here which is show posts expression graph so that you can see that it's continuing on. Whatever I do here is mirrored in the loop. A less known expression is the loopIn expression. If I go back into that expression and type loopIn instead of loopOut and then show that graph again, you can see that it's doing the opposite. It's looping before those keyframes and as soon as those keyframes happen, the loop isn't going anymore. If we combine both of those expressions, we can put our keyframes wherever we want and they will loop throughout the duration of our composition and that's really useful for this type of thing, especially when we have a lot of different elements that are going to need to be looping. Let me edit that expression one more time and what I'm going to do is loopOut, then go outside of the parentheses and say plus loopIn, and then I'm going to add one more thing which is minus value and that minus value is important, it's going to allow it to basically be anywhere in our composition and continue looping perfectly. If I take that value off, then we get some really weird things happening so just make sure that you include that minus value and now I can move these keyframes around wherever I want, and the loop is going to follow it on either side of it. With that expression written, I'm going to say copy expression only, and then paste it on the skew, and now that it's looping in both directions, I can preview that animation again and because I worked in that overlap, this is kind of an oscillating distortion now and it is a lot more convincing that the wheel is actually rotating. So just with that simple wheel rotation, we included overlap and it made a huge difference. Compare that to this front-wheel, it's totally static and because we did that with the Transform effect, I can just copy and paste this over to that wheel. So let's grab that effect, copy and paste it onto the front wheel, and I make sure that I go to that 10 second mark so that all the keyframes line up. Just paste, and then I just need to make sure that I move my anchor point over to the base of that wheel, right in the center there, and play that back, and now those two wheels are working together. But I can also overlap these animations because currently they're being distorted exactly the same way at the exact same time. Remember overlap is that animation principle that says nothing should be moving all at once. So I'm just going to grab this set of keyframes for the front wheel and move it forward two frames. I'll just extend my work area out so I can see that loop playing out, and now those wheels are just slightly varied but the problem is my car bump is not bouncing up and down. So let's copy that loop expression one more time, Copy expression only, and then paste that to the bump as well. Now my car is bouncing up and down the road and the wheels are spinning. But if I go to the start of my animation and play this back, you can see that I have a very strange issue with the wheels and that is a result of the Transform effect and shape layers. If you remember, when I added the Transform effect to the tires, the anchor point was right in the center of my comp and that's just the way that After Effects treats Shape layers. Regardless of the contents of the Shape layer, After Effects is basically looking at the composition as the layer size. So the Transform effect doesn't know that when these wheels are moving around because of their parents, that this anchor point should be moving with it. Again, that's just because it's a Shape layer and this transform effect is being told by After Effects that the composition size is the size of the layer. So all we need to do is precompose each one of these wheels because then the effect will know exactly where the bounds of this layer are. But before I precompose them, I'm going to take a snapshot using this button right here. Take snapshot, so that I can always jump back and reference exactly where that wheel should be because when I precompose them some weird stuff's going to happen. With that selected, I'm going to say Control shift C or Command Shift C on a Mac and just rename this front-wheel, and it's going to force me to move all the attributes into the composition, including the Transform effect. So we have a little bit of work cut out for us, but that's okay. I'll just click "Okay" and the wheel shifts over to the middle of the car. But that's okay. Part of the reason for that was because it lost its parenting so I want to be sure to go ahead and repair that, that should be on the Cab.Front controller. But then I want to go into that pre-comp and just crop my composition to roughly the size of this wheel. I'm going to disable the effects just so I can see it without that distortion because I'm going to put that distortion back into the car comp. A really quick way to crop something is to grab the region of interest tool right here, and then click and drag a box around the object, and I'll give myself a little bit of a margin here and then say composition, Crop Comp to Region of Interest, so let's do that. Then I'll re-enable that effects and go back to the car composition and that wheel is way off up here. So I'm just going to click and drag it down to about where I think it was before, and then use my snapshot, my Show snapshot button to see where it was. That'll let me get it nice and close and I'll just use my arrow keys now to get it closer, just referencing back to that snapshot. So right there it looks close enough, and I just noticed I parented that to the Cab.Front, that's not the right controller. It needs to be on the Hood.Front. There we go, now it's going to follow the front end of the car. Next I'm going to go back into that composition, press "U" to bring up the keyframes for that transform effect, and zoom in nice and close so I can see those keyframes, and I'm going to cut that effect off of this layer by pressing "Control X" or "Command X" on a Mac. But I'm right on at 10 seconds and 2 frames, and if I jump back out of this composition, that's where my play head is here too. So I can know that now when I paste, it's going to put those keyframes exactly where they were before. Now all that's left is me moving the anchor point again to the base of that tire, and now if I play this back, the tire is rolling. The only issue is that it's going up and down with the car again. So I need to go back to this comp, open up the position, and cut this expression out which isn't even working anymore because it's referencing something that's not in this comp. But I'll just cut that off, go into that car layer and paste it onto the y position. So I need to separate those dimensions, and add that expression and paste it, and now it's sticking to the ground and the car is moving independently. So in hindsight, I really should have pre-comped that artwork before I added any of those effects and that's just how it goes sometimes, you make mistakes and then you correct them. But as a rule of thumb, you should pretty much just pre-compose any Shape layers that are going to need effects. Try to think ahead if you're going to be distorting the Shape layers, pre-compose them so that After Effects doesn't see it as a Shape layer anymore, just as a pre-comp, as a regular layer. But now if I play this from the beginning, you can see this wheel is staying in place and following the controller properly, even though this one isn't. So I'm going to do that exact same process with the back wheel real quick. Here's the corrected animation, the wheels now follow the controllers properly, there distortion is happening in the correct place, and it's following the layer wherever it goes. So we're getting a lot more life into this animation now. 16. Mirror, Antenna & Hood Ornament: The only thing that's left to animate on are these three elements right here, the mirror, antenna, and hood ornament. I'm going to do that really quick. What I want to do with the mirror is have it swing in. I'm going to move the anchor point with the anchor point tool, Y on the keyboard, and just move it down here. Actually since this is a shape layer, I'm just going to be cautious and pre-compose it. I'm going to press "Control shift C" or "Command shift C". Call this mirror click "Okay", and it goes away. It's over here now that's alright. I'm going to go in there and crop this to the region of interest again. Just composition, crop to region of interest, and then place that back on the frame about where it was. We'll call that good and then move the anchor point. Again, Y on the keyboard to get to the anchor point tool. I want it to rotate from rightwards attached to the frame. Right there. I want it to come out after the car has gotten back down on the ground. Right about here. Maybe just as the car is touching down for the last time. That's where I want to bring that in. I'm going to bring this layer to this point, the start point to this point in time by pressing the left square bracket. I can't see the mirror, if I go into that it's because the layer doesn't start until the five second mark. I'm going to back that up to the front of the animation again, left square bracket moves the end point of your layer to the play head. That way we can see it again and it's not where it's supposed to be. I realize that's because it's not parented to anything. Let's parent that up to that should be the cab front. Now it's going to follow that motion. I'll backup to again where I wanted that to come in right at the start of that layer and I'll set a rotation keyframe Alt Shift R on a PC, option R on a Mac. I'll just scoot that forward maybe six frames and rotate this down. Maybe negative 90 degrees. I also want to scale it down, so it's starting completely invisible and then rotating, and scaling out. Alt Shift S or option S on a Mac, scoot that forward and then change that down to zero. Then I'll ease all of these keyframes. I'll just grab this slider for really this set of key frames. I want the incoming influence of these to be really strong. I'll switch to my speed graph. That just pops up. It's not very fun. I think we can make it more playful by having an overshoot, but I'd like to do the overshoot with an effect instead of just rotations so I can make it distort a little bit. We're going to use that same CC bend it effect. I'll bring up my effects console, type in bend it, and apply that. I need to set these start and end points. This one right here is the start. This is where it's going to be locked in place. Then the end is this one right here. That's where it's going to bend from. I want to just make sure I'm not cropping off any of my layer. Move it to about there. Then adjust the bend. Now I can distort this in a much bendier playful way. I'll bend this back pretty far and we'll say maybe negative 55 and set a keyframe. Then press "U" to bring up all of those keyframes then back this up to the start of the layer. It'll rotate out and by maybe two frames past this point, I want it to overshoot in the opposite direction. Maybe we'll go about a value of 35. Then I'll go forward 1, 2, 3, 4, 5, 6 more frames and back it up to around there. Maybe negative 16, that's good. 1, 2, 3, 4 frames forward. We'll go to a value of six. Sure. Then 1, 2, 3, back down to zero. Again, these are arbitrarily spaced out. I'm just setting the values. Now I'm going to go into my value graph and ease them to make a nice overshoot animation. I'll grab this front one have it come out pretty quickly, and bend into that distortion a little more strongly. Then just give a little bit more influenced to each of these handles. Maybe push this one out another frame. See what that looks like. Yeah. I'd say that's pretty fun. Maybe the scale could take a little bit longer. That gets a little bit of overlap as well. But I like the way that that's coming out. It's a lot more unique than just a scale and rotation animation now. Next up is the antenna. I'll grab that and let's just go ahead and pre-compose it. I'll make sure that I still have that snapshot. I'll take another one. I'll select that layer. Before I pre-compose it, let's just take a note that it's parented to the hood rotation. While I'm at it, I'm just going to grab that and the hood ornament and move them to the front of my composition. That way I don't have to redo that once they're pre-composed or grab that antenna Control Shift C or Command Shift C, rename this antenna. This process is exactly the same as the mirror so I'm just going to time-lapse through this. Now I'll just move those layers to where I want them to come in. The mirror is going to pop out and then probably right about there is where the antenna is going to come in. I'm not sure how long after that I'll have the hood ornament come in, so I'll just shift it forward for now. But let's close up those keyframes and focus on the antenna. Basically, I just want this to pop out. Like it's one of those old school antennas that grows from the hood up. I'm just going to do that animation inside the princomp. I'll go into there. At the first frame, I'm just going to open up the contents and see what we have. We've got the antenna tip group and the antenna itself. For the antenna, I'm going to add a trim paths. That'll allow me to trim that down and up. We'll set a key frame at the first frame and a value of zero and go forward, I don't know, four frames, 1, 2, 3, 4, and change that up to 100 and see how that plays out. Nice and quick. I probably don't even need any easing, we'll address that in a second. Then I'll go into the antenna tip transform controls for that group and set a position keyframe. That would be the final keyframe. I'll just press "U" to bring up the key keyframes and then bring that down to the base. I'll see if I can get away with just having it go from where it is at the bottom and going in a straight line upwards. Yeah. I think that happens quick enough that you'll never even notice that it may be deviating a little bit from the antenna path. But just for good measure, I'm going to ease these. I Can't help myself, I got to make them all eased. I'll select these keyframes and easy ease them. Switch to my speed graph so I can see that a little easier, easy ease, and then just ease into that final position a little bit more strongly. There we go. It's going to literally not exist and then just pop up. Even though in that first frame its tip just appears, so much more is happening in the other scene that you're never going to notice it. It's just going to go like this, perfect. But that's not all I want to do with the antenna. I want it to look like it's flimsy and flapping in the wind. Again, I'm going to add the bend it effect to this. Bend it. I'll move the start at the bottom and the end at the tip. I just want it to go back and forth a little bit, not all that much. I'll set a keyframe on the bend property and bring up that keyframe with the U key. Then just back this up, maybe I don't know, even a value of two might be enough. I want this animation to happen pretty quickly. Maybe I'll go 1, 2, 3 frames forward and set this to two. Then 1, 2, 3 frames forward again and go back to negative two. Then I'll just write that loop in loop out expression really quickly. Loop in plus loop out minus value and then a semicolon. Now that will loop in either direction. Let's see what that looks like. I think it could even be moving faster. I'm going to take off one frame between each of these keyframes. There we go. Any easing I do to this really won't make much of a difference because I want it to be a symmetrical ease and there's only one frame in between each key frame. I can just leave those as linear and look at this as a whole. You can see that it's just flapping back and forth a little bit. Maybe I can make that a little bit more strong. Instead of a value of two, I'll go negative 4, 4, and negative 4. Then it's just a little bit more obvious what's happening here. Then we need the hood ornament. We've got the mirror, the antenna, and then the hood ornament will bring in right after that. Right about there. Bring the hood ornament back with the left square bracket. Really I can do the whole animation right in the pricomp. There's no reason why I couldn't do that. I want to do a very similar motion to what the mirror did with the bending and the rotation. I'll set a keyframe for rotation. Alt Shift R or option R. For the scale Alt Shift S or option S and scoot those forward, maybe four frames, 1, 2, 3, 4. But I do need to make sure that I move my rotation anchor point. Y on the keyboard for the anchor point tool. I want it to rotate down from this point. Rotate this back as well as scale it down to zero. We'll do negative 90 on the rotation and zero on the scale, and that will just pop up. Then I'll ease these keyframes, my speed graph, easy ease. We don't need any easing on the front end. I'll increase that a little bit. Then we'll have the bend it effect, do the overshoot. CC bend it. Set the two points for the bend and then we can rotate it. We'll go back maybe negative 60 at the start. Then by this point will go forward 25, looks good forward it a little bit more back, and then just complete this overshoot. It's the same process regardless of what property you're applying it to. Overshoots are something that you'll get a lot faster at with experience. But this is my typical workflow. I'll set the keyframes, work on the easing a little bit, and work on the timing of those keyframes until it looks good. There we go. It's now just a little bit more springy. That should come on right in time. We You in here so we can see all three of those elements coming on. Mirror, antenna, and hood ornament. That hood ornament can probably be shifted forward just a couple of frames. Great, I like that a lot. That completes bringing on all of the elements. In the next lesson, we're going to add in one more of those animation principles to really finish this car going down the road off. 17. Adding Squash & Stretch: I'm really happy with the way that the wheels look and how cartoony their distortion is. Same thing for all of those little elements on the hood and the frame of the car. But the car itself, even though it is very elastic and stretchy here and cartoony at that point, once it's moving down the road in it's final state, it feels really rigid and static again. We are going to take advantage of squash and stretch to really finish off the cartoonyness of this animation. We're going to do this through one more controller and everything needs to be parented to this. The position of this controller in the hierarchy of the parent chain is important because basically everything needs to follow it, but it needs to be happening off of this ground plane except for when it's off the ground, then it needs to be in line with those wheels. That tells me it needs to be below the parent chain if the car lifts, right around where the car bump is. I'm just going to duplicate that car bump and go to a point where it's just traveling down the road normally and bring up the keyframes forward and get rid of that Y position as well as the expression, I don't need that giving me any errors. I'll call this squash and stretch. I want to zoom in here nice and close and move this down to my guide for the ground plane. It's right there. I actually want to leave that right there in my hierarchy because the car bump is moving up and down, but I don't want this squash and stretch controller to move up and down. I always want it to be in line with the bottoms of those tires. The car bump layer needs to be parented to the squash and stretch layer. But as soon as I did that, you see that the wheels changed and that's because this layer is no longer zeroed out, changing its parent, modified its property value. But that's okay because I wrote that expression on the wheels, I want to make sure I grab the actual artwork, so that I can still modify their value even though they're being offset by another value. I'll just bump them back up so they're in line with that ground plane again, and we're good to go. But now I can grab that squash and stretch controller and bring up the scale of it. That will change the scale of everything that is parented to it. Now, because I'm using the scale property, it's a little bit more complex to write that expression that will automatically adjust the width based on the height. But because I'm just going to do a simple squash and stretch loop, I really don't need to go to the trouble of writing that expression. I do want this to be in sync, at least in terms of the timing of the keyframes to this car bump animation though, so I'm just going to go to one of those key so I can see that, zoom in nice and close, and align my squash and stretch to those keyframes. I need to first unlink the X and the Y scale so that I can change them independently. This keyframe is the down position of the car and then it goes up. This should be the squashed down version of the car. I'll make the X position a little bit wider. You see that just increasing that value a little bit really makes a big difference on such a big piece of artwork. Maybe I'll go to 102. That means I need to take two percent off of this one, which would be 98, and that'll be my first keyframe. Then I'll go to the next keyframe on that Y position property and invert these numbers, so 98 on the X and 102 on the Y. Then I just need to copy and paste this keyframe, and my squash and stretch keyframes are set. I just need to work on the easing. For now, I'm just going to ease ease them, F9 on the keyboard, and then copy this expression only so that I have my loop in and out and paste that under the scale as well. I'll set my work area around here so we can preview that. You can see that just that little bit of squash and stretch adds so much cartoonyness to this animation. I do want to modify the easing just a little bit, so it's not perfectly symmetrical. I think this will make more sense with the speed graph, so I'll just zoom in here nice and close, and coming into this keyframe, I want it to hold on this one, so I'm going to grab these handles. Unfortunately, I do have to do the X and Y independently, but there's no real way around it. It's not a huge deal. I'm just going to do my best to line them up and play that back. I like the way that looks. It might be just a little too extreme, so I'm going to pull those handles back just a tad. But now the squash and stretch is just a little bit more bouncy. I'm going to see what happens if I add in a little bit of overlap between the squash and stretch and the car bumps. I'll just scoot those keyframes forward two frames, and it looks a little bit more like Jello. I don't know if I really like that. I'm going to try overlapping in the opposite direction. Honestly, I don't think overlap is working well between those two properties. I actually want to keep that bouncing up and down in squash and stretch together. But let's take a look at that animation as a whole because it's really come a long way from where we started. Because of the way that I've set up this rig and build all these controllers in, that squash and stretch is carried throughout the entire animation, even though I have all of these other complex things happening to the artwork. I'm really happy with the way that that turned out. 18. Driving On & Off: Now I need to animate the car going on and off and add in some background elements that I've already created to really sell the movement of the whole thing. What I'm going to do is use this car composition as a precomp now. Let me make a folder in cleaner my project a little bit. I'll call this precomps and just move all of these elements into it, and then I'm going to take that car precomp, and just drag it to the ''New Comp'' button. We'll bring that out of the precomps folder and I'll rename this car-render. This way, I can treat this composition layer as just the car itself, and I'll be able to drive it onscreen and offscreen to complete my animation loop. Obviously, I need to do that independently of the background. What I'm going to do is go into this precomp and unshy my layers, go all the way down to the bottom where those background layers are and unlock it, copy it, but I don't want to get rid of it in this comp because then I'm going to have a black background and I just don't like looking at that. Instead I'm going to right-click and say guide layer. What that will do is allow me to see it in this comp, but it will not render. In this comp where I'm using that precomp, you can't see it anymore. Let me shy those layers again. Go into my car render and paste that background layer. Move it down to the background. Now I can move my car around independently from it. This lock that up and let's do the animation, the car coming out. I'll separate dimensions and that way I can work with just the X, and let's find where it starts to stretch out right around the two second mark. That's right. That's where we put it. We want the car to come out and probably overshoot a little bit and then come back. Just so it has a little bit more personality than just coming out to a rest. I'll set a key frame right their X-position at 960 right in the center of the comp, and then on frame zero, I'll bring it off screen and probably right around the one second mark is where I want it to overshoot just a little bit. It doesn't have to be all that much, and I'll ease all of there on my value graph. Get rid of that Y position, and basically just want to do something like this. It nicely eases into that resting point with a little bit of overshoot. Honestly, even that is a little too fast. I think that coming in could be a lot more gradual so it doesn't look like the car is racing all that fast. I think I was a little too extreme with that timing, so I'm just going to adjust this a little bit until I get something that I'm happy with. That works really well. It's just a very nice, gentle overshoot to get it centered on screen, and then we're going to have the animation play. Then right about there, I want to use anticipation to show what is about to happen, which is it's going to drive off screen again. I'm going to set another X position keyframe and then go forward in time a little bit in this anticipation is the car moving backwards just a little touch before moving forward and driving all the way off screen. That's way too slow. I wasn't really paying attention how far I spaced those keyframes out. I'm just going to bring these in much tighter. That's a little too quick, so I'll just keep adjusting this until I get the timing that I'm after. That looks a little bit better. Now the car is going to come in and out on the front end of the animation in the tail end and it will be able to loop that way. Probably add a little bit more time at the end of the animation before it loops, something like that. But I do want to exaggerate that anticipation a little bit more. I'm going to add a transform effect to the car layer, link the position and the anchor point, and move that anchor point down to the ground plane again right about where the wheels are touching the ground, and I'm going to use the skew at a 90 degree angle to be able to distort that car even further. You can see that I'm layering on all of these effects and distortions to just continue implementing these animation principles on all different levels because when they're all combined, it just creates something so much more unique and playful than if you're just to move shape layers around. I'm going to set a keyframe and just press ''U'' to bring it up. In that way I can align it with this anticipation. We'll move it to it be aligned with the X position and then at this key frame obviously needs to be at zero. It will anticipate back, and then I want it to shift to going forward, like the car is speeding off forward before it gets off screen completely. It's going to look something like this. I just need to get in there and modify the easing. It really gets into this extreme back pose before switching to being at that extreme front pose, and I don't want that to be quite so dramatic here. Maybe adjust these handles just a little bit. Then I think that X position, this just needs to get out a little bit more quickly, and then the skew could probably take just a couple of frames longer. There we go. I think I just want to overlap that skew. It happens a couple of frames after. I'll grab all of those keyframes and shift it forward maybe two frames, and that way it's overlapping that X position animation, so it backs up. In fact, I can probably even move that two more frames forward. Now those motions are just overlapped and staggered to make it look just a little bit more appealing. The car animation itself is done. I just need to add in some background elements to imply a lot more motion, and then we can add some texture and effects to just give it a little bit more of a look. 19. Scene Details: Here in Illustrator, I've created some more artwork that I need to bring over. I have these clouds. I'll just use overlord to push them over to after effects. There we go. Actually I don't even need them separated, so I'm going to delete those and turn off the split shapes and pull them back in. That'll be my clouds layer. I'll lock that because those will not be moving, they're going to be static in the background. Then I have this telephone pole or power line, and it just extends out and there's only this one single pole, and that's because I'm going to loop it. You can't even see where it connects its outer frame so that should make the loop really easy. I push that out, drag it below the car, and I also want to draw a line on the ground. Let me lock up my car and telephone pole layers and just draw a line straight across. With my pen tool, I'll just turn off that fill. For the stroke, we'll just make it something bright like that sky background color, and I want to draw a line just going right down this part of the road and dash it. So I'm going to click, hold shift and click again, and make that a nice big stroke width, something around there probably. I'll rename this road lines. I need to get into the stroke options so that I can add a dash and a gap. I'll make my dash nice and wide and increase the gap size as well. Maybe a value of 300 for the dash and 150 for the gap. Then I want to add in some distortion so that it matches the scene a little bit better perspective-wise. So I'm going to pre-compose this. Just keep it named road lines. I need to go inside of it and crop pretty close to the line. So I'm going to grab my region of interest and just draw a box around there, bringing in nice and symmetrically close to that line and crop comp to region of interest. In here, I'm going to apply an effect called the power pins, so CC Power Pin is what I'm looking for. This is going to allow me to just pull out these handles to add in a perspective distortion. I'm just going to eyeball this so that those lines are angled out a little bit. Actually maybe I'll use this anchor point as a guide. I'll get both lines to intersect with that. That way I'll know that it's symmetrical or pretty close to it. Now those dashes just look a little more realistic. I'll make them a little bit skinnier. But let's see what that looks like in our render comp. I just need to move that down. Yeah, that looks pretty convincing. Now I just need it to animate so I can use the offset property in that stroke to be able to do that. So I'll go into the stroke and under dashes, I will find that offset and this will let me shift it down the line. I'm going to just set a keyframe at 0 and then move forward, I don't know 10 frames, shift page down and then offset this forward. Basically, I want to find a value that gives me this exact frame. So I'm going to take a snapshot. I'm going to go forward and move it one two dashes down probably and just see if I can line that up really closely. I'm just using my show snapshot to compare the before and after. It looks like if I round this off to a value of 900, that looks perfect. It looks like that offset value is based on the width of the dash. So it's moved three times the dash length. Let's just see how quickly that's moving. That might be fast enough. But what I want to do is write an expression to continue that velocity for the duration of the comp. If I just add an expression on that offset property and type in loop out. Inside of these parentheses, I can put a quote mark and type continue and the autofill will complete that for me. Then just finish that off with a semicolon and that will just continue the velocity of that value change based on the previous two key frames. So if I play this back, it's just going to continue looping. We'll see if that speed works well over here. Yeah, I'd say so. I just want to make those lines a little bit thinner. So I'm going to grab them, decrease their width a little bit and maybe speed it up just a couple of frames. We'll back it up two frames and that looks a little bit better of a speed. Yeah, now it really looks like that car is speeding down the highway. Now I just need to do the same thing for these poles in the background. I'm going to go about it just slightly differently. Let me unlock that telephone pole and I'm going to do this with a repeater. If I add a repeater, that will duplicate the shape off to the side. If I scale this down a little bit, you can see it's made a couple of copies. I only need one. Set the copies to two so I have two copies. Then I'm just going to take the transform controls for that repeater and slide the position value way way over until that line right here basically matches up, doesn't have to be perfect at all but somewhere around there and then change the scale of that layer back up to 100 percent. Now I have a seamless loop between those two duplicates. So I just need to animate that. I'll set a position key frame on the X, separate those dimensions right there, and then go forward. I don't know, maybe one second. We'll go 24 frames forward. Again, I'll take a snapshot so I can reference this point and then move this telephone pole on that X position until it's right back where it started. We'll compare that. It needs to be over this way more. There we go. Now I can use my loop out expression. It just repeats this animation over and over again, which is as simple as just writing loop out in the expression with the semicolon at the end and now it's going to loop. That's great. Now it looks like it's moving a little bit faster than the dashed lines if we just keep our eye on the pole. See it starts being in line with this dash. So I'm following this dash with my mouse. You can see that it's really going faster. I'm going to grab this second key frame and just back it up, maybe two frames and see if that works a little bit better. Now it still looks like it's moving faster to me, so I'm going to back it up two more frames. Actually to make this loop seamlessly, I'm going to want it to travel almost identically to the dashes. We're going to try that and see if we can find a good looping point. On the first frame of the animation, its right here. On the looping frame in the animation after the car has left the screen, it should loop right about there. Compare this. That's 100 percent identical frame so that will be my looping frame. I'm just going to add a marker to my composition at that eight second mark by de-selecting everything and going up to Layer, Markers, Add Marker. That way I know this is the frame that is identical to the first frame, and I will loop from that point. So if I play back from this point, it's going to loop seamlessly. Beautiful. So we've added a lot more believability to this car driving down the road with just those couple of elements. 20. Adding Textures: Now I just want to give my illustration a little bit more of a look, not have such clean vector lines. I created a few textures in Photoshop that I'm going to overlay on top of these. I'm going to bring them out just so you can see what they look like. I'm going to bring up my Align panel so that I can center that up in my composition and move it down to the bottom so that it overlaps that section of the composition, and then bring it down right above the background layer. This texture, I want to leave just on the road. I'm going to move my Align panel over here so I have more room. To do that, I'm just going to mask it off and visually adjust this down. I double-clicked on the Rectangle tool to add a mask the size of the layer. Then I double-clicked on the mask to bring up those transform controls and scale it down to the shape that I wanted. Next, I want that texture to be moving so that it's not static when the road is moving. That way it looks like it's actually texture or grunge on the road. I'm going to use an effect called offset to do that. What offset does, is just shifts the layer contents within the layer bounds. I'll set a key frame at the first frame, on the Shift Center To property, press "U" to bring that up, and then go forward, maybe 10 frames. I want to shift the exposition back. You can see that scene very clearly, but I'm not too worried about it because it's going to be traveling pretty quickly. I might adjust the colors so this texture isn't quite so extreme compared to the background. But we'll just back this up quite a bit, and use our loopOut("continue") expression, loopOut("continue"), so that that velocity just keeps playing out as I play back. That texture might be moving a little too fast, I'm just going to drag this out a little bit more. Really, I want it to be aligned with the speed of the dashes. If we look at this seam and how it's aligned with this dash right here, it's pretty close. It's moving a little bit faster by this point, I'll move it forward a couple of frames. I think now they're moving together pretty much identically. I'm going to call that good. I just want to adjust the colors. Since this is a transparent texture, I'm just going to add a fill effect, and base it on the background color. That's the exact same color as the ground, but I just want to make it slightly more dark, basically. Just enough to be able to see the texture, but not so much that it's taking away from the rest of the illustration. That might be it, just a little bit too dark. I'm going to make it a little less noticeable. Click "OK", and I think that'll be good. Then I'll just repeat that process by duplicating this layer and replacing it with this one right here. You can do that really easily by having the layer selected, clicking and dragging the layer that you want to replace it with, down to the timeline, and then hold Alt or Option on a Mac before you let go off your mouse, and it will swap the sources. Now I just need to rearrange where this layer is, and where this mask for that layer is. I'm just going to delete the mask to start. I can get that up where it needs to go. Obviously, that fill color is not correct, so I'm just going to shut it off for now. Then I just want to mask off that layer so the texture doesn't go out past to that orange color. I'll double-click on the Rectangle tool to add that mask, double-click on the mask to make my adjustment, and then double-click again to get out of that transform. I think I just want to warm up that color a little bit. I'm going to grab the layer color behind it, and then just increase the saturation slightly, and make it a little bit darker, maybe even pull a little bit more red into it. I don't want it to be super dramatic, but something around there. That just looks like a little bit of dirt. But because I duplicated this other layer, the offset animation is preserved and I can move on to the last texture which I'll just bring out on its own. Align that to the top and the left edge, and just bring it down to just above the background. That just adds a slight texture of grunge to that background. I don't think I need to change that color, that one's okay. Now we've got a little bit more texture to our illustration, but I can push this a little bit further with some other effects. 21. Finishing Effects: The first thing I want to add is a vignette just to give the background and the edges of the frame a little bit more dimension. I'm going to make an adjustment layer. Let's go up to layer, new, adjustment layer, and I'll rename this vignette. I'm going to add a curves effect to this layer and make it a little bit darker. As I do this, you can see that it's actually making everything more saturated. But if I change my blend mode from normal to luminosity, then it's only going to affect the luminosity or the lightness, the brightness of the pixels, not the actual saturation. I actually like that look a little bit better. I'm going to bring this to be a little bit darker, and then I'm going to draw a custom path. Normally I would use a perfect circle to make a vignette out from the center of the component, invert it, but I don't want this to be perfect. The rest of the animation is not perfect. The illustration itself is not perfect. I'm going to make an imperfect vignette just by drawing a shape like this. It's just a unique blobby shape, and pull it out to the edges a little bit more. Then I'll invert that mask and feather it out. But that way I have a nice dark edge around the outside of my comp, and maybe a little bit too dark. I might want to increase the feather and even expand it out a little bit. I'll just grab my mask expansion. You can see how that pulls it in and out of the edge, something like that. It's not too noticeable when you're not seeing the mask. If I turn it off and on, you can see just how much of a difference it's making. Now really the purpose of this is to put the tension on the subject, which would be the car. I'm going to just modify this path so it's not darkening the car too much, maybe we can darken the sky a little bit more instead. I'm going to lock that adjustment layer and make one more, so layer, new adjustment layer, and drag that below the vignette. I want the vignette on top of everything else. I'll rename this one effects. To make everything have just a little bit more of a distorted edge, not such clean lines, I'm going to use one of my favorite effects which is called turbulent displace. This just warps the entire image in a turbulent way. But if we turn the size all the way down to two, that's the minimum value, then it gets these rough edges. Now the amount is too high, so I'm going to turn that down just enough to give us that little bit of variance around the edges of our art work. This is without and with. It's just given a little bit of edge or byte to our artwork. Next is a technique I use a lot as well, which is slightly blurring my artwork and then sharpening it up again, and I can give it a more organic look sometimes. I'm going to add an effect called fast box blur. This blur radius is very touchy, so I don't want to do much at all, probably 0.2. It's just going to soften up the edges of everything. Honestly that might even be too much. I'm going to just say 0.1, and make sure to check the repeat edge pixels. But just 0.1 is enough to soften up the edges of that artwork. Then I'm going to add another effect called unsharp mask. Unsharp mask, right after that box blur. What this does is basically finds points of contrast in your image and then increases the contrast even more. You can control the radius of that contrast as well. That's obviously way too extreme. That looks terrible. But if I reset this and just play with it a little bit, I should be able to get something that just looks a little bit more chiseled, but it's playing off of that blur and gives a unique look. That's with and without. I could probably turn the amount down quite a bit, maybe in the 50s. So with and without. I just like the unique look it gives. One more effect I want to add is just some grain over the whole thing just to add a little more texture to everything. With that same adjustment layer, I'm going to add an effect called noise HLS, and that stands for hue, lightness, and saturation. What I like about this effect is that it allows you to apply different types of noise to each one of those channels, the hue, lightness, or saturation. I'm going to change my noise type from uniform to grain because that allows me to change the grain size. We'll just start with the saturation. I'll increase the grain on the saturation. You see that that's literally just adding in variance in the saturation of the image using this grain pattern. I don't need to do a lot on the saturation, maybe 10 percent. If I zoom in nice and close, you can see the variance it's giving, but I want to combine that with a little bit of lightness as well. If I crank that up too much, then it's going to get super noisy, but if I just keep it down around maybe four, you can see with that off and on, it's just going to give me a little bit of that grit. I'd like to make that grain a little bit smaller though, and I can do that with this effect. If I just grab the grain size, I can scale it down. Maybe around 0.4, something like that. That's without and with. Last thing I need to do with that is animate it because it's a completely static noise right now, and I want it to be different on every single frame. That's where this noise phase effect comes in. I'm going to use another expression to randomize that value on every frame. Alt click on that stopwatch. In this expression I'm going to just type random, and in the parenthesis, I need to put a minimum and maximum value that it can randomize this noise phase property. I'm just going to say negative 10,000 on the minimum, 10,000 on the maximum. Now every frame, it's going to be completely different grain. If I play this, you can see it's taking longer to preview because of all these effects, but you can see the grain is actually changing every frame. Let's just take a look at the illustration without the effects and with, just so you can see what we've done here and I'll zoom in nice and close so you can see the details without and with. Now this might be more grungy than you would ever want to go, but I'm just trying to add a unique personality to the look of my illustration. You can do whatever you want to it. If you want that clean vector look, by all means, keep it that way. It's totally up to you. You can art direct your own project. 22. The Shadow: There are just a couple of last details that I want to add to my animation to really finish it off. I know this has been a really long repetitive process at times, but you can see just how much work goes into creating an animation that looks truly unique. The next detail I want to add is a shadow underneath the car, because I feel like it's just looking a little flat still and adding a shadow will hopefully give it a little bit more depth. I'm going to do this using a rectangle. I want to make it similar color to the ground but just a little bit darker. I can always be adjusted later and I don't need a stroke, but I'll just double-click on the 'Rectangle tool' with no layers selected to generate a rectangle the size of the comp, and then go into the size of that rectangle and just scale it down. It's a lot shorter and then about the width of the car. Then I want to round it off so it's a pill shape. That's what that roundness properties letting me do. I just need to place it underneath the car. This needs to get renamed. We'll call this shadow, and it needs to go below basically all of the other artworks. I need to unshy this and just send it to the back control shift, left square bracket or command shift left square bracket. I'll put it just above the background. Let me zoom in here. Just for a second, I'm going to hide my overlays Control Shift H or Command Shift H. I can see that shadow a lot more clearly. I think that's a pretty good width and I'll just drop it down to that ground plane. I think that's pretty good. How can I get this shadow to stick with the car? Well, really it can be parented to that same squash and stretch controller. I'll shy up my layers again, bring back my overlays, and parent this to the squash and stretch controller. Now that's bouncing up and down with the car, so that's looking pretty good. But at the front of the animation it's obviously wider than it needs to be. I'm not going to spend too much time figuring out how to make this shadow actually dynamically respond to the width of the car, I'm just going to animate that scale by hand. I'll go into the rectangle, group into the size and set a keyframe, and just hand animate the actual size values. At this point, before the car stretches out, it should be more about this size. It looks like I'll probably have to add in a position keyframe as well. I'll do Alt Shift P or Option P on Mac and move that forward. Then just back this up. It's centered in the car again. Then again, I'll just hand animate all the keyframes I need to match the shadow to the car. There we go. It's not perfect but it's moving quick enough and there's a lot of other overlapping motions that I'm not really worried about it being perfect. I think it's looking fine. The issue that I have now, is that when the car pops up, the shadow needs to stay on the ground but it's going with the car. I need to counteract those in a similar way that we did with the wheels not bumping up and down. First, let's work on the rotation on press on the keyboard to bring that up. Basically, I want it to counter the rotation from all of these controllers. We can do that with expressions fairly simply. I'm going to just maximize my timeline so I can see both layers at once. That's by pressing the tilde key with the mouse over the timeline. I'm just going to grab my property, pick whip and grab that rotation value. That'll start off my expression. But what I want it to be is the inverse of this number. If I just add a minus in front of it, it's going to rotate this in the opposite direction that this one does. That's solves the first issue of keeping it level. Don't worry about the position right now, but that's only for the first rotation the car left. Once the front wheel rotates, then it's going to rotate with it as well. I need to add in the rotation of this controller as well into my equation. I'm actually going to do this a little bit differently. I'm going to write a variable for the rotation of each one of these layers just by typing in var for variable and then we'll call this a for the first rotation equals, and then that expression. I'll end that with a semicolon. This variable is just going to give me short hand for accessing that value or that property. Just makes it a little bit easier to write it. Then I'll do another variable on the next line and I'll call this one b. We'll bring up the rotation for the other two layers. I'll just use my expression pick whip to grab the rotation of the second layer. Finish that off with a semicolon, and then drop down one more line that var c equals, and then use the rotation value for the third controller. Again, finish that with a semicolon. Now I have all three of those written in. What this is going to let me do is now write an expression using those three values, but only having to write in a, b, or c to access those three values. Really I want the rotation of all of those added together which I can now write by just saying a plus b plus c. That will give me a new value. Obviously, I don't want to just add those rotations together and put them in this value. Remember I want the inverse of that. What I need to do is put these equation inside of parentheses. That way, it will add those three values together. Then I'm going to multiply it by negative one to get the inverse number. We're getting the rotation of the car lift plus the rotation of the front wheel plus the rotation of the rear wheel, and then multiplying that result by negative one. This should counteract all of the rotation and keep my shadow perfectly flat throughout that whole thing. Sure enough, it does. This is where it pays to really know some basics of expressions so that you can workshop an issue like this and quickly come up with a solution so you can keep focusing on animating. Now we're going to do a similar thing to the position value, specifically the y position. I'll separate the dimensions of the x and y and get rid of the keyframes on the y. What I want to do is add the expression that counteracts that car lift. I'm going to again, maximize this, open up the position of the car lift, and grab my property pick whip to parent to that y position. That'll just start out my expression for me. I want to save value minus that expression, they gives me the property value for the y position. Now, I can place my shadow right where it needs to be which it's preserving where it was already. The car lifts off the ground but the shadow stays where it's supposed to be until the car lifts up on the front wheel. Again on this one I'm not going to bother writing the expression, I'm just going to hand animate this. Sometimes it pays to have those expressions written in. Other times it's easier to just animate this by hand. There we go. Now that shadow is nice and planted on the ground. 23. Tire Smoke: The very last detail that I want to add to my animation is a little bit of smoke or exhaust coming off the back of the car just as it speeds off. Right there after it's anticipation, it shoots off screen, I want this smoke to be coming off the back of the car. It's right about there. We'll go into the car. I'm going to make a new composition to create this exhaust, so I'll go up to Composition, new composition and call this exhaust. The height can be something like, probably 400 pixels. To pull this off, I'm going to use a series of circles, so I'm going to grab the Ellipse tool and just make it white. Double-click on it to make an ellipse the size of the comp and then double-tap the "U" key to bring up the size. I'll just make this perfectly round, say 500x500 and bring it down to halfway down the screen. I only want to see half of this circle. Then I'll manually zero this out, the position just by making a new null object layer, new null object and parent this to that null. I can hide that null and just rename it zero. But now if I bring up the position value, my X position is zero. That's what I wanted. I don't need to see my Y position. I'll just "Alt Shift." click on it or "Option Shift" click it on a Mac. Now I can symmetrically move it off of the center of my composition. I'm going to start with it probably, 300 pixels to the right, set a keyframe and then move forward 10 frames and move it negative 300 pixels to the left. It's just going to move across the screen and that's probably even too slow, but we can deal with that in a minute. Next, I want to have it scale up and scale down at the front and tail ends. I'll add a keyframe on the scale position and move that forward a couple of frames and set this down to zero. Then mirror that animation on the other side. It's just going to scale up, move across, and scale down. I might even be able to get away with just scaling it up and down over the entire length of the animation. That's probably going way too fast, now that I see it with the scale animation, so I'm just going to bring these out a few frames. I'm at 16, so this should be at eight, right in the middle, and we'll see if that works well. Next, I want to ease the exposition and the scale. I'll just grab all of those properties, Easy Ease them and see how that looks. Okay, so it's a little bit smoother now. I'm going to precompose this. I'll rename this, "Smoke" and then precompose, "Control Shift C" and just keep it named Smoke, that's fine. Now I can duplicate this layer so that I have a bunch of circles scaling up and down. I'm going to duplicate it. Go forward in time to maybe, let's say four frames forwards, 1, 2, 3, 4. Then duplicate, go 1, 2, 3, 4 again, duplicate 1, 2, 3, 4. Then I'll just grab all of these, move them up and then go 1, 2, 3, 4 frames for it again. Now you can see the shape that we're getting. Now, I don't think it's traveling enough distance, but because I precomposed that element, I can just go into one of these layers and adjust these keyframes and all of those duplicates will get the same changes. Now I lost my zero position and I didn't think to precompose that zero null, so I'm just going make another null which, the keyboard shortcut is "Control Alt Shift Y", or "Command Option Shift Y" on a Mac. Again, I'll rename this "Zero" parent this layer to it. Now I've got my nice values back. Instead of 300 pixels, let's go 500 pixels to the right, 500 pixels to the left. Now it's covering more distance. If we take a look at our other comp, we can see what that looks like. I think the distance it's traveling is good now, but the speed it's going at is too quick, so I'm just going to make some more adjustments to this until I get something that I'm happy with. Okay, I've got something that I'm a little bit more happy with, but I can make this look just a little more interesting. If I go into this Smoke precomp and add a skew to it. I'm just going to make a new adjustment layer, Layer, New Adjustment Layer, and add the Transform effect, and then skew this on a 90-degree angle. I'm going to move my anchor point down and I need to link that anchor point position. Let's grab that position, link it to the anchor point, and just keep that anchor point right there at the bottom. But now it's got this angled shape to it. If we take a look at how that has been duplicated across all of the comps, now we've got something that just looks a little bit more unique. Maybe I want to adjust some of the curves of say, the scale so it takes slightly longer to get to that maximum scale. We'll see how that affected anything. Cool, I like that movement a lot. Now one last touch to this. We're going to add an Adjustment Layer and two effects. The first one is going to be the Fast Box Blur, makes sure to Repeat Edge Pixels and then just blur that out a good amount. Then I'm going to add a Curves effect and change the channel to Alpha. We're not adjusting the colors, we're adjusting the Alpha channel. I'll bring my top handle here to the middle, right around this middle line. I'll bring the lower point down there as well. You can see as I do that it's getting rid of my blur, but it's morphing all of those circles together. It's much more blobby now. It just gives it a little bit more of a cartoony look. Now we need to put that exhaust into our render comp. So I'm gonna go to the point in time in my render Comp where the car is basically anticipating back and then shooting off, right there is where I want this exhaust coming off of the back tire. I'll find that exhaust comp and let me just clean this up quick. Everything but the car render comp should be in precomps. I'll bring that Exhaust out just above the car layer and press the left square bracket on the keyboard to move the endpoint to that spot, but I need to find out where that smoke starts coming out. It's right here and just to help me remember that I'm going move my anchor point right to that spot. Then I want to move that right to behind that rear wheel. I'll zoom in here nice and close, make sure it's down at the base line right where the wheels are touching the ground. I also need to parent that layer to the car so it moves with it, but now that's going to scale off of that tire. That smoke is way bigger than I wanted it to be. It's a good thing that I put that anchor point where I did because now I can scale that down so it's a much smaller exhaust plume coming off of that tires screech and see how that looks. It looks good except that the car stops moving before all of that exhaust is gone. I'm actually just going to add the Loop Out Continue expression to the exposition so the car keeps moving. I'll just type, loopOut("continue"); and then the car is just going to continue moving for the duration of the composition and now the exhaust is going with it. That looks pretty good. I just want to change the color of that exhaust because it's still perfectly white and I'll make it probably the same color as the sky here. That way it just fits my color scheme a little bit better. I'm not using perfectly white anywhere else. But there we go. It screeches off in that exhaust comes out just giving a little bit more exaggeration to the overall movement of the car.. With that, my animation is complete. 24. Exporting a GIF and MP4: Now I want to export this a couple of different ways, just so you can see how to do it both with a GIF and a video file. My opinion on GIFs has changed over the years. They can be a really nice format for playback of animation, but they're extremely compressed. They don't handle compression very well, and they don't handle details very well. More and more platforms are accepting video files instead of just GIFs anymore. In most cases, a compressed MP4 video file is going to have so much higher-quality and so much smaller file size, than trying to cram a lot of detail and resolution into a GIF. The benefit of the GIF is that you only have to render out the number of frames for a single loop, and the video file you'll have to loop manually. For example, on Instagram, the minimum length of a video, I believe is 10 seconds. So you're going to have to export your video with at least that number of loops baked into it. My general rule of thumb for video files is to make it at least 30 seconds along it. That way the viewer is going to see the loop seamlessly a couple times before it actually loops the video and there's usually a frame jump in there. But as far as GIFs go, this scene probably has too much detail in it with all the texture and the color variations, there's a lot going on, but we're going to test it out. My preferred method of exporting GIFs from After Effects is using a script called GifGun. It's in my scripts list under Window, I'll just open it up, GifGun. I'll put a link to this script in the notes of the video right now. But it's a fantastic plug-in for exporting GIFs directly out of after effects. No conversion required outside of the program, and I just want to take a look at the GIF settings. Currently, I have the resize to width set to 800, and I think I'll leave it that way. I would never think of exporting a GIF this big, unless it was a lot simpler, clean vector graphics with no texture whatsoever. GIFs just don't handle that number of pixels well for keeping the file size down. We'll leave the framerate set to as comp. I want the maximum number of colors, which is 256. Render preset as lossless, that's fine, and I'm going to set the compression to low. Because I don't want to degrade the quality of my graphics, make sure that infinite loop is on and then click "Done". I'll just click on the ''Make GIF'' button, it will render, and automatically compress and generate a GIF for me. Just like that, here's my GIF. Now before we even play it, I want to point out that the file size is 15 and 1/2 megabytes. It's not outrageous, but honestly, I'd like to keep a GIF no bigger than five megabytes, and really two megabytes would be even better. But let's take a look at the quality. It's not bad. Coming through on this video that you're watching, you're not going to see all of the detail that I am. But I would be perfectly happy with the quality of this GIF in terms of being able to see all of the texture, and the grain, and other effects that we applied. But if I were actually going to share this as a GIF, I'd want it to be much smaller file sizes. What I'm going to do is actually remove a lot of the detail that we added just to get a smaller file size on the GIF and a cleaner compression. I'm actually just going to shut off the vignette and affects, as well as all of these texture layers that I put on them background, so that this is just now clean vector lines. We'll just do this again and compare the file size of this version to the first version. It's 2.4 megabytes instead of 15, so significantly smaller. You can see that the compression handled this color palette that was much more limited a whole lot better. It's much cleaner, a lot less artifacting, and this is probably what I would use for a GIF upload. I might even reduce the resolution a little bit more so that I could get it under two megabytes. But now let's take a look at how we could export this as a video. With those on, what I want to do is loop this animation a couple of times. Remember, eight seconds is our loop mark. So I'm going to grab the car render comp and drag it into a new comp, and I'll call this car render loop. My marker is preserved, so I'll go to that frame and backup one frame, since this is the duplicate frame, and trim my layer to that point with Alt or Option, right square bracket. Now I can just duplicate this layer, Control or Command D, click and drag while holding Shift to snap it to the end of the first layer, and just do that a couple of times. That brings me almost to 25 seconds, I'm going to call that good. I just need to make sure that I set my work area to the out frame of that layer. I'll select that layer, press ''O'' on the keyboard to go to the last frame, and then press ''N'' to set the end of my work area. Now I'll come up to composition and say ''Add to Render Queue'', then I'll just choose where I want this to go, I'll put it on my desktop. Then click ''Queue in Adobe Media Encoder." This allows me to export my animation as a compressed MP4 file that I can share to places like YouTube or Instagram. You can learn all about media encoder and compressing GIFs in two other classes. I have one called compressing GIFs like a boss and compressing videos for the web. Check both of those out if you want to learn all about compression. But what I'll typically do is just choose the YouTube 1080 Full HD, preset under the social media category, that's what we see right here, and then I'll just click on that text to verify a few settings. I want to make sure that the resolution is matching the source. I want to make sure my framerate is matching the source. I like to check on render at maximum depth, and use maximum render quality. Then just click "Okay" and click ''Play'', and that's going to export my looping video that I'll be able to share. Let's take a look at that video file. Now in this case, it is significantly bigger than the GIF, but that makes sense because it's full HD, it's using all of that detail and I had to manually loop it a couple of times, so it's significantly longer. The thing is with streaming videos, file size isn't really an issue. The platforms that you share videos on are very good at buffering and playing videos as they're still loading on the viewers device. Fifty one megabytes isn't an issue at all. Let's take a look at the quality, I'll hit ''Play''. There we go it's basically perfect. Even though it's a compressed video, all of that detail that I had an After Effects has been preserved. Even that little noisy grain that I added in, and this is now ready for me to share online. So that's how I handle exporting both in GIFs and videos from After Effects of my animations. 25. Thanks!: That's it. Thank you so much for taking this class. I really hope that you got a lot out of learning about animation principles. Like I said, it is truly the one point in my career where I can see a major leap forward in the quality of my motion. Before I knew how to use them, I really just was making stuff up until I was happy with the way that it looked. But now that I have these animation principles as a foundation, I have a much better idea of what to do rather than just guessing at things. It really helps when you're transferring to other mediums like 3D or stop motion because you can really transfer all of that knowledge over. I really hope you liked this class. I would love it if you left me a review to let me know what you liked or what you might not have liked. I always want to improve my classes, and getting feedback from you is the best way I can do that. If you create a class project, I would really encourage you to share it to the class project page so that I can see it, ask for feedback if you'd like. If you share your project on social media, tag me @Jakeinmotion so I can like it or heart it, and maybe even share it on my Instagram stories. As always, if you're ever having any trouble, issues, questions you want to ask me, don't hesitate to post them on the Discussions tab, and I will be more than happy to help you as quickly as I can. Thanks again for taking this class and I'll see you in the next one.