[Music] [Nol Honig] I'm going to begin now. Hope you're ready. Great. This is session 6613, Time saving Secrets of Motion Design in After Effects. Welcome. Thank you all for being here. I appreciate it. I know there's a lot of great sessions here at Adobe MAX, and you chose this one, so I appreciate you.
I'm going to move on to part one of the talk, which is obviously my very favorite part, okay? Just want to explain a little bit about myself to you before we begin. I've been working in motion design since the late '90s, so I definitely have a lot of experience. And I'm fortunate enough that my career has taken two parallel paths at the same time, which is to say I'm known in the industry for teaching stuff, and I'm also known for making stuff. And I want to roll through these things just quickly. So I was a part-time faculty member at Parsons School of Design in New York City for almost 20 years, teaching motion design, and that was invaluable to my teaching experience to really be in classrooms with students, I think, was great. I won an award, a Distinguished Teaching Award for the work that I did there, and then I left. And I started teaching online at School of Motion. I teach After Effects Kickstart, their basic level class, and I also teach a much more advanced class called Expression Session with my buddy Zack Lovatt, which is a great class. School of Motion is a wonderful learning platform for motion design. If you've never heard of it, I definitely recommend you check it out. Not just my classes, but all. Also, the good folks here at Adobe have asked me to speak five years in a row at MAX. So I've met so many great people, and I think I've introduced myself to a lot more people in the community that way, okay? So a lot of people know me through my teaching. And also, I've also made a lot of stuff in the time that I've been working. And in the industry people know me as somebody who's also won awards for some of my work, and I'm somewhat in demand as a motion designer. I've made some title sequences of some shows and some high level projects and stuff. Anyway, so I'm pretty much out there along these two career paths, right? Now if you've never heard of me before coming into this room, you might have seen me in this context, which is that I was lucky enough also that Adobe made an ad that featured me.
And that was really actually amazing and also somewhat embarrassing because I popped up in all of my friends' feeds for months and they wanted me to stop doing that and I had no control over it. Anyway, I do have control over it here, so I'm going to move on to the next part of this talk, all right? And that is the part where I talk about this, all right? Any After Effects people in the house who know about the Pick Whip? Yes, okay? Pick Whip is a great time-saving device in After Effects, right? Well, I have only one question for you today. Are you ready to whip? Well, are you? Okay. Cool. Right. So the most important question for folks, maybe this guy over here who doesn't have a ton of After Effects experience is, "I don't know what you're talking about, Nol. What is a Pick Whip?" And I have two answers for you here, okay? The obvious one, and then a longer one, which I'm going to ramble on a little bit, okay? So the obvious one is a Pick Whip is a tool in After Effects that links things. It's a linking device in After Effects, and you can link lots of different things. You could link one layer to another or a bunch of layers to one layer, or you could link the property of a layer to another layer, or you could even do something a little bit more advanced and link a layer to the alpha information of a different layer, okay? We're going to go over all of these different things today, right? But for the deeper question of what is a Pick Whip, okay, I want to talk about the tools of After Effects here for one second, all right, and then get back to talking about the Pick Whip.
This is the After Effects toolbar in case you don't know, and I think these tools can be broken down into these two basic buckets, all right? So these tools here are literal representations of graphic design tools, at least in my mind, right? Things that graphic designers have been using since the beginning of graphic design history to make graphic design, okay? Their hands, magnifying glasses, brushes, pens, rubber stamps, erasers, etcetera, right? These are literal representations of tools that we all know what they mean, right? Then there's this bucket of tools, which are metaphors in my mind, okay? So like the arrow tool. In real life, there aren't arrows. It's a metaphor. It says you are here, or you're going in this direction, or something like that. But there aren't real arrows, okay? So these tools are more like metaphors for how we manipulate things in After Effects, okay? Both are useful. Then there's this silly thing, okay? This is my pet peeve, and I talk about this every year at MAX, okay? And if you're an After Effects person, you know what I'm about to say next, okay? Yeah. Let's do some chuckles, which is that this tool is known as the pan behind tool. Hey. And you know what you do with it? You move the anchor points of layers, okay? Now you can pan behind things. I think I did that once, okay? But every time I use After Effects, I need to move the anchor point of a layer, and so I need to use this tool, and I really think it should be called the anchor point tool, and the icon should be an anchor point. Thank you very much, everybody, okay? I say that at every MAX, and I notice now it says anchor point in parenthesis after pan behind tool. I don't know if I'm the one that's moving this needle, but I really like to think I am. Anyway, let's get back to talking about this. So what is the Pick Whip? Is it a metaphor? I'm sorry. Is it a literal representation of a graphic design tool? No, not really, okay? Is it a metaphor for something else? Well, maybe, okay? It's called a Pick Whip, and it looks like this, which leads me to believe that it's based on this, okay? And now I get confused. Because other than Indiana Jones and consenting adults-- I don't know who uses these other than cattle ranchers, because I mean the only thing you really could do with this that's really useful, as far as I can tell, is herd cattle with this, right? With a bullwhip or whatever. I don't actually-- I'm out of my depth here, but I'm like, this isn't really a-- This isn't really a metaphor, and it's also not definitely not a literal representation of a graphic design tool. It's more like a literal representation of a cattle ranching tool. So I got really confused about this when I was actually making this presentation, and I actually know some of the people on the After Effects development team. So I texted my friend, Brian, who's one of the engineers, and I was like, "Brian, there's no Pick Whip in Photoshop, and there's no Pick Whip in Illustrator or Premiere or Acrobat or anything else, right? What is this tool? Where does this come from, and why does it seem to be a whip, you know?" And he pointed something out to me, which I never knew, which was pretty cool, which was that in Adobe GoLive, which was their What You See Is What You Get or WYSIWYG, HTML editor between '96 and 2008, they had a tool in there that was a hypertext linking tool that looked like that, okay? And that is the basis of why we have the Pick Whip in After Effects today. Yeah, okay? Cool. That solved one little riddle for me. Now, there are other confusing things about the Pick Whip, which is that there are four of them, okay? And sometimes they're right next to each other and they're a little bit easy to mix up for one another. So I want to go over what the four Pick Whips are really quick, all right? So the first-- Oops. Sorry, I accidentally inserted pictures of my cats, Frankie and Sebastian, into my deck. Aw. Anyway, the four Pick Whips are the Parenting Pick Whip, the Track Matte Pick Whip, Properties Pick Whip, and let's not talk about that fourth one because that's too advanced for this talk, okay? Also, if you actually know the Properties Pick Whip, you know that it will do everything that the Expressions Pick Whip does anyway. So I'm going to avoid talking about that, all right? Great. So what I'm going to do now is jump into After Effects, and let's go over all of these things and do some whipping, all right? Cool. So if you've never used After Effects before, I'm not sure. Is anybody here is, like, really, really, really new to After Effects in this room? No. Okay. Well, then you know what this is but I'm going to talk about it anyway, just in case, all right? Somebody was humble, all right? So let's just go over parenting really quickly. It's sort of a basic function of After Effects, but it's an amazing one. So if I have two layers, right now they default to being separate layers, right? They're not linked in any way. But if I want to link them together, I can do what's known as parenting in After Effects. And I'll show you the mechanic of that and what the Pick Whip is. The Pick Whip is right here, by the way, in case you've never used it for parenting, all right? So what I do is hold down on this, and I'm holding down on my trackpad. And you can see that the word child here is highlighted, okay? That's because that's what I'm pick whipping from. And then if I move over the word parent, that gets highlighted to, so that's what I'm pick whipping to, right? So when I let go of that, you can also see in this little dropdown menu that the child layer is parented to the parent, okay? So what have I just done? Well, essentially, I've created a relationship between these two layers that After Effects is going to try to keep or will keep the same all the time, okay? So now when I move the parent, the child layer moves with it, all right? And if I scale this, that moves with it. And also if I rotate this, that rotates with it, okay? It's all about preserving that relationship however it can, all right? Now one thing that's just a little technical that I want to mention right off the bat is that because I am essentially animating the parent and then the child is borrowing that animation from the parent, the child takes, for example, the anchor point of the parent, and that's what it's rotating around, and that's what it's scaling around, okay? And that's the only way it could work to preserve the relationship between those two things, right? Now this doesn't mean that the child layer also can't be moved independently or autonomously while it's still parented. It still can. It's just whatever you set it at, that becomes the relationship that these two things are at together, right? Okay. So that's parenting in a nutshell. The reason I really like to talk about this, and I think the reason people use it a lot is because-- And this is built right into the title of this session, which is time saving secrets, all right? So if you never knew about parenting, let me just explain that a bedrock principle of saving time in After Effects, as far as I know, okay, is if you can get one layer to animate a whole bunch of other layers, that will save you a ton of time, and it'll save you time in a bunch of ways. If I have 20 layers and I'm animating those all independently, I got to set all those keyframes for all those layers, and then I've got to adjust all those keyframes and remember where those are and move them together. And if I want to ease everything, I have to do all that together too, right? So you're just-- By having one set of keyframes, essentially, that can drive a lot of animation, you're just saving a ton of time in a bunch of different ways, okay? So time saving. All right. So in real life, I'm not always just parenting one thing to another. Sometimes I'm doing what's known as parenting chains, okay, which is I parent A to B, and B to C, and C to D, and so on and so forth. The way I think about this is, if I was rigging up my arm for animation, I would start from the outside and go in. So I would parent my hand to my wrist, to my wrist to my forearm, my forearm to my elbow, etcetera, etcetera, right? And that's the way you always parent chain-- Parenting chains in After Effects. In this example, I have this little mini solar system, wildly out of scale, by the way, so don't blame me for that. But I have a sun and an earth and a moon, and I want the sun to revolve around its own center, the earth to revolve around its own center, and the moon to revolve around its own center while the moon is also revolving around the earth, and the earth is revolving around the sun, okay? So this is a parent chain situation because I have two different relationships of these three layers that I'm essentially trying to preserve, okay? I'm trying to preserve the relationship between the moon and the earth and between the earth and the sun. So the way that I would parent this is from the outside in, from the moon toward the sun. So I would get down here, okay, and I would parent my moon layer directly to my earth layer and then my earth layer to my sun layer, okay? And now let me back this up, and I can make a simple animation here to show you how this is going to work. Now if I'm going to go to the end here, I'm just going to make these loop. This is going to be a loop, but I'm just going to have it go one whole time, right? And now I can create an animation like this. It would honestly be very, very difficult. I'm honestly not sure how I would animate that without parenting. I think I'd need to have a circular path that would go around the earth that the moon was on, but that would still need to be-- I don't know. That would be very, very, very, very complicated, okay? Let me just point out one other thing about this. Does this make sense to everybody so far? Great. If I were just to parent the moon to the sun, okay, and not to the earth, then it would not revolve around the earth, okay? Now both things are being parented to the sun, which means the relationship between that object and the sun is what After Effects is looking at, okay? So parent chains are really, really useful. Let me give you another example of a parent chain, which is this snazzy sports car, okay? Right now I have these two wheels and then I have the body of the car, okay? And when I first started out in After Effects, this is the way I would have rigged this scene up, okay? I would have selected both of these and Pick Whip them to the body of the car, okay? And that would work. Now when I move the car, the wheels move with the car, right? But as I've gotten more experience in working in the actual real world with clients, I've noticed that, generally speaking, I do not want to parent one layer directly to another layer in a situation like this if I don't have to, okay? Why is that? Because I want to set something up that's more modular, okay? Because just say I've created a whole animation with the wheels parented to the car. And then my client comes back to me and says, "I love the animation that you built but I wish the car vibrated because that would make it more dynamic." And I'm like, "You're totally right, that would make it more dynamic." But if my wheels parented to my car and my car is vibrating, then the wheels will leave the road, okay? So I would have to undo all of the animation that I did for that and now start over, okay? So I've learned over time that it would be better to use objects known as null objects, okay, for much of the things that I parent to, okay? Who here has used null objects? Yeah, okay. So we got a lot of really more advanced people here, so great. So you love null objects.
But amongst you, smarty panties, who knows what the keyboard shortcut is for the null object? It involves a Y. That is correct. It involves the control. It's Shift Option Command Y, at least on a Mac, okay? Anyway, and by the way, it's also up here if you can't remember this amount of hot keys to press before pressing the word Y-- The letter Y, okay? Anyway, so I'm going to make a null object. And actually, thinking about this a little more, I'm going to do something that I'm going to explain later, but I'm going to move this, oops, I'm going to move this null object down here, okay? A null object, if you don't know, is a blank layer in After Effects that has an anchor point on it, okay? So it's really good at parenting things too, all right? So I moved that down there. And so what I would do is I like to name things and be pretty neat about it, so I would call this main, right? And then I would take both of my wheels, I parent those to the main, right? But then what I would do is make a new null object, and I would call that body. And I would drop this down above my body, and I would parent the body to that null, okay? And then I would parent that null to my main, right? I've just made a parent chain that works perfectly. Everything moves when I move this null object because everything's either parented to that null object or it's parented to something else that's parented to that null object, right? Okay, so everything is connected in a parent chain.
And now, oh, the reason that I dropped that anchor point of that first null down here is so that if I scale this up, it sticks to the road surface, right? So I could do an animation even like that, something like that, which would be really cool. Right, so pre thinking these things is often really useful. So now I could, for example, get in here to my body, separate the dimensions, which is something I like to do because in this case, I just want the car body to wiggle up and down just a little bit. So I'm going to use an expression here, but you don't have to know this. I'm just going to type wiggle 33, okay? And then I click out of this. And now my car can vibrate up and down and the wheels stay stuck to the road, okay? And I can still get in here and animate this whole thing through this main null.
Okay? You guys are lucky you're wearing headphones. It's super loud in here. I'm going to take this and now I'm going to put some ease on here and I'm just going to go ahead and make it look like the car is moving really fast at the start and then pulling in maybe, like pulling up to a stoplight or something, right? So this animation, even if my client came back to me and said, "You know what, we want to change the artwork for the car body." I could do that, and I wouldn't lose any of my animation because it's all just parented to things, and those things are doing the animation for those layers, okay? I find this is a much more modular way to go for all those reasons, and I would urge you when you get more into parenting unless you aren't already, to just start using null objects. Even if you feel like you're using too many of them, so what? They're free. So go ahead and try that out, okay? Now a different wrinkle that I think could happen to this really quickly I feel like I'm presenting in the subway, by the way, right now.
Anyway, if my client came back to me and said, "I really love this animation, but it's a little weird for me that the car moves in over the edge of your presentation graphics, I'd--" Oops, probably dropped. Yeah. "I'd really like it if the car's animation could be entirely contained within this box," okay? You see what I'm doing here. I'm leading up to the next Pick Whip that I'm about to talk about, which is the Track Matte Pick Whip, okay? Because I would say to my client, oh, yeah, I could totally do that. So let me move the car so it's like half on and half off here. Okay. Now we have more advanced people in the house today, but I still think in order to talk about track mattes, the best way that I'm going to start is by talking about video just for one second and the way that video works, all right? Because video is made of four channels, right? Many of you probably know this. Those are RGB, red, green, and blue, and then there's what's known as an alpha channel for video, okay? And the alpha channel for video is what determines transparency on the screen, okay? So the way that we know that outside this box is transparent and inside this box is opaque is because of the alpha channel of the video, all right? So in other words, you could look at this, right, not as a rectangle but as a rectangle of alpha information right in the inside of the screen that I can use for my animation, right? So if this doesn't make total sense, I think this will help, right? If I turn this off now, okay, I take my visible car parts, and now, okay, this is the Track Matte Pick Whip over here. You can tell that it's a Track Matte Pick Whip because it looks completely different from the other Pick Whips, right? Because it has two tiny little indistinguishable dots on it that make it completely look different, right? So at a glance, you know, wow, those are two different things, right? Now, I'm being sarcastic here because these things look exactly the same. And I wish that they would be different colors or something to distinguish them a little bit more. But again, pet peeve. After Effects is a great software, and I love it. Anyway, the mechanism here, okay, is I'm going to take this Pick Whip, and I've got my visible car parts highlighted. I'm just going to pull this over here, okay? And what I'm doing here, okay, remember, the Pick Whip is a linking tool no matter what. So what am I linking here? I'm linking the visibility of these visible layers to the alpha information of this matte layer that I just made, okay? And boop. When I do that, now the car is contained within the alpha information of that rectangle, all right? You guys following me so far? Cool. All right. Alpha mattes are really, really good and really useful for filling things into other things, And I do this all the time. I love track mattes. You guys love track mattes too? Yes. Some nods. Oh, less than the null object people though. Okay, great. Interesting to know. I just realized I didn't animate the wheels on this car. Should I animate the wheels on this car as well? Great, this system is flexible enough that I can do that, yeah? Because the-- You can still-- Even if something's parented to something else, you can still animate that layer, okay? So what I would do is press Option + R to make some rotation keyframes for these wheels. Now the wheels anchor points are in the center of the wheel. Otherwise, this wouldn't work as well. And now, I'm just going to go back here and, I don't know, I'm just going to dial this back a bunch. I don't think it really matters, but what does matter is that the easing matches between the car position animation and these wheels. So I'm just going to do this. Oops. Who's going to do this? Yep. And now this should-- Yeah, the wheels should slow down at the same time that the car is slowing down, right? So the combination of parenting and track mattes is actually really, really good, and I do this constantly. I use track mattes constantly. Let me show you another use case for track mattes that I think is-- Oh, actually, I'm skipping it. Sorry.
Wind that back. I'll talk about that next. There is one thing which is, like, if you're new to After Effects, there's another tool in After Effects that is a little bit similar to track mattes, and that is masks, okay? Probably all of you have used masks. They're super useful in After Effects. But I have this picture of my cat here, and if I want to contain Frankie within a circle, I could very easily use a mask to do that. So I could go up here to my ellipse tool, right? And with Frankie selected, I could just shift and double-click on this, and now that would put a nice circular matte around Frankie here, okay? Now I can move this, right, and I could scale this up and down, and I have some control over this mask. But, in general, if you just want to put Frankie in that mask and leave him there, and that would never animate or do anything different, this is the easiest way to go and I definitely recommend this. But if I want to animate Frankie and I want to animate this mask, it gets a little trickier because, literally, this mask is written on the Frankie layer. So when I move Frankie, the mask moves along with it. So I could easily create a conflicting situation. If I'm animating something that's already on an animated layer, it can get a little bit funky, all right? So I generally try to teach people more about mattes than masks because I think they're more flexible, all right? So let's go over this again. If I want to contain Frankie in this circle, I find that the most confusing thing for beginners to visualize this is, well, which is it? Do I have to track matte Frankie to the circle? Do I have to track matte the circle into Frankie? Well, the way I'd like you to always think about this is that you're linking one layer to the alpha information of another layer, right? So I need to link Frankie to the circle's alpha information to do this, right? And when I've done that, now Frankie is contained also within circle, right? But if I take both of these, for example, let's move these up. I can make a simple animation with these two layers, and I don't have that same conflict that I was talking about. If Frankie moves down just a little and then the circle moves down a whole bunch more, I'll create a little parallax kind of a scene where it feels like a little bit nicer, right, or it's traveling down. It's like, look at the cute face on the cat. Now look at the cute paws on the cat or whatever. If I had to do this with a mask, it would be much more complicated, all right? And it would definitely be more complicated to ease and put a bunch of adjustments on as well, all right? So that's the difference between mattes and masks. If you've only ever used masks to do this kind of thing, I definitely urge you to use mattes. I think they're just way more flexible. It does create another layer. So sometimes people, if you're new to After Effects, you really only like to have a few layers, otherwise it gets really confusing. So that's sort of the drawback of track mattes a little bit. Cool. So now as I started saying earlier, one different use case for me with track mattes is something like this, which is making type appear wherever I want on the screen and rather quickly, okay? Just say you're making a commercial and you need a little URL to pop up right at the end, and you don't have a lot of time to do that, okay? We've all been probably in this situation.
Another thing about type and motion is that if you're moving type, you can't really read it. You can't read it while it's moving sort of or it's a harder ask. So when it comes to type, especially something like informational like a URL, you just want it to move as quickly as possible and get exactly to where you want it to go, so you're not wasting time having an illegible thing moving around on screen, okay? So I use track mattes a ton for this, and I think based on everything I've showed you, you probably understand how I'm doing this particular shot, okay, which is I'm just moving the matte and then moving the type into that matte each time, right? I think track mattes and type would probably be if you've never used track mattes, this is probably the place that I would start. Because this kind of situation-- I mean, not this kooky one where it's moving all over the place, but just type moving up into a little matte, that's very, very useful thing that I think most people need to do at some point, all right? Cool. One more thing about track mattes is I set up this fun little scene here, and I like to do stuff like this with track mattes, okay? So right now I have this kind of a silly scene where I have day scene, okay, and then I also have a night scene, and they're both animated identically, all right? And by the way, I've parented all these up to some null objects up here, so those null objects are doing all of the animation for both the day and the night, okay? Just to try to keep it really consistent or whatever. And so I only have to animate something once rather than all these layers, right? Here's my night scene, by the way, because I didn't show that. It's here. It's a little bit spooky, so I apologize.
All right, so it's night in this box here, okay? And otherwise, it's identical. So if I turn everything back on, here we go. Here's the shot that I'm trying to make. I have this circle here, and I don't know, let's say-- I didn't really think about this too much, but let's say I'm making something for a magic show or something. And the client's like, okay, the way that this is going to work is inside the circle, I want it to be day, and outside the circle, I want it to be night, okay? But I want everything to animate, and I want to be able move the circle around so that wherever that moves to, we see the other pieces of the animation underneath the surface. And I'm like, all right, I could do that for you. So in order to do this, I would take my circle and duplicate it, okay? And let me solo this by pressing the solo button here, and turn this on so you can see what I'm looking at. Okay, so right now, this is a stroked circle, right? And there's nothing inside of here, right? So there's no alpha information inside of this circle for me to track matte into right now. So in order to make this into a matte, I would need to just add a fill in there. And it doesn't matter what color. I just need solid something in there, right? Okay, and then I can take the circle and parent that. I'm sorry. I can take the matte, excuse me, and parent that to the circle. Let me label this matte so this is not confusing, okay? And now what I have is a matte, which is just alpha information here that I could turn off. And wherever I move that circle, that alpha information will follow along with it so I can fill things into it, okay? Everybody following me here? All right. So check this out. If I select all my layers, all the art, right, and I go over here to my completely different looking Track Matte Pick Whip, okay? Two dots, right, and I Pick Whip over here to this matte. Now, everything is inside the circle, which is not exactly how I want this, but it's very easy fix. I could just select all my night layers, including this down here, and there's a button right here that inverts the matte. Boop. And when I do that, yes, now it's saying wherever the alpha information is for the night layers, don't have it on screen there and have it wherever's not inside there, okay? So that's like a really cool thing. What I could do is now I could lock all these layers, probably make this easier. And now I could move my circle around and wherever I move the circle, whoops, that didn't work. Oh, I-- Whoops, sorry. I parented this to the wrong layer. Excuse me. Lock that. Okay, now wherever I move my circle, the match should move with it, right? And what I could do now is also I could scale this down. Because I've parented the alpha information essentially of an identical circle that's filled in, this will also work this way. No matter what size I make this or wherever I put this on screen, right? So I could create a simple animation like this, and wherever that circle is, it will be revealing what's going on underneath. Yeah? That's pretty fun, I think, right? I like to do stuff like that where I have multiple layers, and some are inverted into a matte and some aren't, and you can create some special tricks. Like if I had to animate something like the MasterCard logo, like those two circles coming together, I would use track mattes to do that, something like this, okay? Anyway, so unfortunately, my client is not satisfied with this, right? They have a different idea about it how this has to work, okay? They say, "Well, you know what would be better for this magic show is if we were looking more through like a curved surface, something with a little more volume to it, like a crystal ball, how about? Okay?" And I'm like, "All right, I know how I could do that," right? This is how I would do that. I'm making a new adjustment layer. You guys familiar with adjustment layers? Okay, maybe a few less. All right, adjustment layer is also up here near the null object and also has a Y shortcut, but with a fewer hot keys on it. Okay, an adjustment layer is a different kind of blank layer in After Effects. An adjustment layer is something that you could put effects on. Just say I put a blur on this adjustment layer. What that would mean is any layers in the layer stack down here in my timeline that were below the adjustment layer would be blurred. And any layers that were above it just would not be. That's how adjustment layers work. They affect things below them in the layer stack, right? So what I could do is give this a name of what it's going to do, which is bulge. And then I'm going to go up here on this, and I'm going to find a distort and bulge effect and put that on there. Now, right now, the bulge distorts to being tiny, so I would need to make this bigger, so that it fits into my circle, both on X and Y, okay? But there you go. Now, there is the bulge effect that I'm looking for. Right.
Now we still need to be able to animate the circle. So how do I attach the bulge to the circle? Well, would I parent that? Bulge to circle? Okay, let's try that. Actually, I want to move the bulge below the circle so it's not influencing the circle. Anyway, okay, so I've parented the bulge to the circle, and when I move the circle, the bulge stays in exactly the same place, okay? It doesn't work with parenting. Why? Okay, well, if we look at the bulge up here in my effect controls, it has its own property called bulge center, and that's essentially the only way to move a bulge on screen, okay? So parenting in this case is not going to work, which is a perfect segue into the Property Pick Whip, okay? Who here has used the Property Pick Whip? Less people. Okay. It's a little bit of word of warning. The Property Pick Whip is the most advanced thing that I'm going to be talking about today, okay? I don't want to confuse you, but I also want to point the way to things that in the future you might be able to use, okay? So I'm hoping to inspire a little bit more as I go through this next bit, okay, if you haven't used Property Pick Whip before. Anyway, okay. I'm going to explain this this way. When you're using the Property Pick Whip, mostly what you're talking about is linking values, okay? And what do I mean by values? I mean these numbers here, okay? Property Pick Whip is all about numbers and establishing relationships between numbers. Now the keen observer of After Effects will note that this bulge center, okay, this is listed in X and Y coordinates like position, 960x540, which defaults this is the center of a 1920x1080 comp, right? And the circle position values are also 960x540. This is the X axis and the Y axis, right, the horizontal and the vertical, okay? So basically, if I move this circle and this bulge center would need to agree with these values, they would need to have the same values under the surface there, and then the effect would work, okay? This is basically exactly what the Property Pick Whip does. And this over here is the Property Pick Whip, okay? It also looks completely identical to the other Pick Whips. And in a situation like this, where you only have one property listed or opened or whatever, the Pick Whips are right next to each other, and this could be very confusing if you've never used it before. Okay, anyway, so check out the Property Pick Whip. I'm going to grab this here, okay, and the same Pick Whip mechanism. I've got the blue line and everything. And then instead of linking to the circle layer, okay, I'm linking to the position property of that circle layer, okay? And that's what the Property Pick Whip does. Boop. And when I do that, now these values here are red, okay? Which means there's an expression under the surface, which we'll talk about next, okay? But what it also means is when I move this, now that bulge moves with it, because the properties, sorry, the values of the properties match, right? So I could just take my circle now, and wherever I move this, the bulge will follow, right? You guys following with me basically so far? Okay. Great. Property Pick Whip is more advanced, but it's also really, really good. It's very, very specific, which is what I like about it. You're linking property to property, so it's really great. Okay. Anyway, we talked about parenting, and now I've introduced property pick whipping. And in some sense, they do or kind of similar things. So I want to talk about the difference between them quickly, all right? So right now, I have a situation that I set up before, which is a parent chain, okay? I've got the number 1 parented to the square 1. I've got the number 2 parented to the square 2. Number 3 parented to square 3. And then I've got the square 3 and the square 1 parented to the 2 square, okay? A chain, right? So that means, as I explained earlier, if I rotate square 2, it will preserve the relationship of these layers, right? We already went over this. But what if that pesky client who always has really good suggestions says to me, "I really love the way you're driving the whole animation and saving so much time," I don't know how they know that, "by only animating this one property," right? "But unfortunately, I want those squares here, squares 1 and 3, to rotate from their own centers and not rotate around the 2. Well, is there a way to link those to the 2, but so that everything still rotates around its own center?" And I say, "Yes, the Property Pick Whip will do that," okay? Because-- And let me first unparent these layers, square 3. I'm just going to unparent it, okay? So let me press R, all right, and reveal the rotation now of square 1 and square 3, all right? So if I Property Pick Whip from square 1's rotation property to the rotation property of square 2, and also from the rotation property of square 3 to the rotation property of square 2, which is very hard to say, now they will spin-- Thank you, thank you. They will spin on their own axes, okay? And why is that? What's the difference? What did we do differently here? Okay. Yeah. We picked whip from a different thing, but what's going on here? Why do they spin from their axes? Because all we're doing is feeding values into their own properties, okay? So it's animating as itself, it's just the numbers are being changed there by the numbers of another layer. Does that make sense a little bit? It's a little bit abstract, I realize, right? So anyway, so if you have a grid of 20 things and you want to save a bunch of time and you need them all to rotate together from their own centers or scale up, which is actually something I'm often working with grid situations actually. It could be a grid of logos. It could be whatever, a grid of photos of a bunch of people or whatever. And you just need one layer to animate them, you can use property pick whipping and just connect the rotation properties of all those things to whatever rotation of whichever one you want, and then that will save you a bunch of time, okay? And this, that in and of itself, just linking rotation to rotation, scale to scale, position to position, that's not that complicated, I don't think, right? Actually, what's going on underneath the surface is JavaScript code is being written on those layers, and that does sound really complicated. But you do not have to write that JavaScript to do this, okay? Which is kind of the nice thing. Is anybody here like a real JavaScript person who knows a lot about JavaScript? Okay. Most of you, I assume, do not, right? So you don't-- I would urge you actually to learn a little bit of expressions to get further into After Effects, but whatever, you'll do that on your own time, okay? So just let you know that the Property Pick Whip is a gateway drug into expressions a little bit, okay? Because you are starting to deal with expressions, though. It's set up so that you don't have to think about this code so much, okay? But not every situation calls for linking, rotation to rotation, and prop-- Position to position, and scale to scale. In that case, that's pretty simple to do with property pick whipping. But what if I had a situation like this, which honestly, this is more of a thought experiment than anything I'd probably do in real life. But anyway, it's interesting as a thought experiment. What if I wanted to animate the position of this square here, okay, and use that position animation information to drive the opacity of this square here, okay? I can do that. I can link the opacity of one layer to the position of another layer, okay? But sometimes you have to use a little bit of math to set things up. So, by the way, if you're not a math person, for the next five minutes, I think you should probably go, like, la-la-la-la-la, okay? Because I am going to talk about math. But it's like subtraction and division, so it's really not that complicated, all right? A little bit of algebra, maybe, which-- Okay. La-la-la-la. All right. Okay. First, let me just get in here and set this up with the position. I've split this square 1 into X and Y, which if you've never done that before, I think I showed this earlier, you could just separate the dimensions that way. Position defaults to being listed this way, but in this case, I know I only want it to animate on the X axis. And also, if I'm just basing this on one set of values, the math is way easier, okay? So I'm going to make a position keyframe here, and this value is 840, okay? So I'm going to pull this over here, and this is the animation I want to set up. But I want to make the math really easy in this thought experiment. So rather than just dumping this over here, which I chose 232 as a value, I'm going to set this to 240, okay? Just so this is 840, right, this keyframe, and this is 240, which means there's a nice even number, 600 between them, okay? I'm just trying to do this to make the math easier. All right. So now, if just say I'm you, okay? And you're like, "I know I want to link the opacity of this one layer to the position of this other layer. I don't know how to do that," okay? Well, if you're ever in that situation, which I assume you might be if you try this out, okay, this is what I urge you to do. Just try it, okay? Just try to link it as best as you can, and then look at the values and see what results you're getting, and then adjust that way, okay? So I'm going to do that. I know I want the opacity of this square 2 to be linked some way to this X position of this layer. So I'm just going to go for it, okay? And then I'm going to look at the values, and I can also look at the animation, in this case, and see that there is no animation. The two stays at 100% the entire, okay? So why didn't anything just happen? Well, if you think about this, I'm feeding two numbers into this opacity, 840 and 240. And opacity is listed as a percentage, right? And I think we all understand enough about math to know that there's nothing more than 100% of the opacity of this layer, right? So any number that you put in there that's over 100, in this case, is just going to default to 100, okay? So this isn't working, okay? But if I twirl this down here, let's just look at this code here for one sec. Now, what is this code here? How can I translate this into plain English for people who don't know JavaScript? Well, the question that this code is trying to answer right now is, what values should I put in here, okay? And what it's saying is, in JavaScript, ease, is saying, I want to take the position, the X position from the layer square that's in this comp right here, okay? It's written from top down. It's like what comp are we in? This comp. What layer are we talking about? This layer, square 1. What transform are we talking about? We're talking about the property X position, okay? Anyway, that's what it's filling in here. But if I go back here to the beginning and look at this, I can see that this is 240, and this is still 100. So what if we get in here and la-la-la-la-la subtract 240 from that value here what happens? Well now, okay, at the beginning, this is now 0, okay? So I've improved this a little bit. But if I put this down, yes, the position and the opacity of those two layers are now linked. But what I'd like to have happen is it for this to go from 0 opacity at this keyframe to 100% opacity at this keyframe, and right now, this is fading up over, I don't know, 10 frames or something like that, and then it's done. It's like fading up over a third of a second, and I'd rather have it fade up over two seconds, just say, okay? I'm going to do a little bit more math here, okay? Now I tried to keep this super simple, but remember again that this code right here right now is just referring to these values, okay? And that's moving-- Essentially, those values are changing 600 units of pixels, all right? We don't have to think about pixels. It's just changing 600 numbers, okay? Values. So if I say divided by six, right, now, if I play this down, it takes a lot longer for this box to fade up, okay? Because I've essentially said to have this move 100 units of something as well, okay? But there's one little conflict here, which is that it's starting at the number 40, okay? Because of the way this divided out. So I would just need to get in here now, okay, to finalize this, I promise. And I'm going to put some parentheses around this because of PEMDAS. Who remembers their PEMDAS, right? The division, we want the division to be calculated first, so I'm just going to put it in the parenthesis so that happens first. And then I'm going to just subtract this remainder of 40 out of there, okay? Minus 40. And when I click out of there, now this works totally perfectly, all right? Because what I've said is move it 100 opacity units or whatever, but start it at 0. Take 40 off at the beginning so it starts at 0, okay? Does that make sense to people, even if you're not like, "Wow, I would ever actually do that in real life because that doesn't make any sense"? Yes, okay? Cool. Right on. So again, this is more of a thought experiment there. But last thing that I want to talk about is, remember when I talked about animating that car and parenting and rigging up that car? What I said was, when I first started, I would have just linked directly to the body of the car. But over the years, I've learned that that makes a less flexible, less modular system, okay? Well, the same thing is also true with property pick whipping. If you're property pick whipping directly from one layer's property to another, you're hard coding something in there that is less flexible, right? If your client takes away one of those layers and everything's linked to that, then you'll have to start again, right? So often, instead of linking layer to layer, what I do also with property pick whipping is use null objects, okay? Shift, Option, Command, Y. It's a really good shortcut to learn, by the way, further you get, okay? Make a new null, all right? And I'm going to turn this off. It doesn't matter where the anchor point is for this kind of work, all right? I'm going to call this my control because I think it's a little bit easier to think about that way. And right now, let's use a metaphor here to talk about what I just did. I'm a puppeteer and I want to rig up a marionette puppet so that it works, okay? What I've just done is I've bought the wooden things, okay? And now I need to connect the strings from the puppet to this control layer, okay? So this control layer is like the wooden-- I think they're wooden. I don't know. Why do I think they're wooden? Are they wooden? Maybe. Nobody knows. No puppeteers in the house? Okay. Anyway, now I want to add the strings, all right? So the strings, in this weird metaphor that I'm using are these things called Expression Controls. Okay, now I need to use the word expression there, but actually they're not unfriendly. I promise. Expression Controls are really friendly, all right? So, here they are. Okay, and there's a whole folder full of them in the Effects menu here, okay? Anybody ever tried to use these and not know what they were and get confused about it? No, nobody. Yes, one-- Okay, cool. They are a little bit confusing when you first work with them, okay? Because they don't hook up to anything, okay? So I'm just going to pull an angle control, okay? That looks like this, right? If you've used After Effects, you've seen things like this before. You know what that does. That changes angles, okay? So it would be very simple for me to get in here and press R, and now I would have to lock my control, okay? So that when I click on other layers, this effect control stays open. So when I click on this, that's open. But now I could Property Pick Whip up here from the rotation of all of these layers up here. And now I feel like I'm rigging this, and here's my marionette puppet at work, right? Yay, okay. So now these all rotate based on this control on this blank layer here, okay? Great. And what this means is if the client tells you to get rid of square 2 and delete it, the other ones still work, right? And also, I could take square 1 and duplicate this and move this over here. And now, because of the code under the surface, that will also just already be coded to that tool, okay? It's way more modular this way, all right? Great. So I'm going to just undo that and put that back right now. This isn't the thing that I wanted to animate here. I just wanted to show you the mechanism of control layer as a null object and then using Expression Controls on there. What I actually want to do here in this scene, I'm going to get rid of this other one, okay, make a simple animation where using one slider, and I'll show you what the slider looks like later. This square here moves over this way. This square here moves over that way, and this one in the middle expands so that there's no gap, okay? I want to do this just with one slider so that I can control the whole thing with two keyframes. Great. I'm going to click on my control layer to select it, go up to Effect, and then pull down to my Expression Controls and Slider Control. Now, sliders are the friendliest of all of the Expression Controls. Look at this. It's so cool. I love sliders.
The slider is essentially just values that you can animate, right? It's really nothing other than that. So how would I rig this up? Well, my advice to you, I'm going to use, which is if you don't know how to do this, let's just try and then see what happens, okay? So I'm going to press P for these two layers, okay? Now again, I don't know what's going to happen, so I'm just going to link from the X position of my square 1 up to this slider. Boop. And when I do that, it moves it over here, okay? This says 0, and now this here says 0 for the position values for this layer, right? Which means that if I slide this slider, now that moves, okay? And if I were to set the slider at 720, for example, that would go back to its original position. Now that's not what I want to do, but I'm just saying that's what I could do. So if I set this back to 0, I essentially want to find a different way to get back to 720, okay? So sort of like the example that I just gave, I could do 720 minus that slider, okay? I want it to move to the left, so I'm going to say minus. But what that would mean is if I click out of this, this goes back to its original start point, okay? Because 720 minus 0, which is what this says is 0. I'm sorry, 720. So nothing has happened. But if I change this value, now these numbers are being subtracted from 720, okay? So it's moving to the left, all right? I know this is a little bit more advanced than the other stuff that I talked about, but just hang in there, okay? I'm not expecting you to know how to do this after this, but I'm hoping to inspire you of how I would do this, okay? So great. Now best practices, this is not the way I would code this, okay? And this is going to be a JavaScript thing, but I'm going to try to make this easier and more modular as code itself, okay? If you don't follow this, this is totally fine. But what I'm going to say is slider equals this, okay? Because this is literally just a link up to that slider, okay? So I'm going to define what's known in JavaScript as a variable called slider there, okay? And then if I say 720 minus slider, okay, semicolon, it's the same exact thing, right? I've just defined it a little bit differently. I've just organized this so I think it's a little bit easier to read, okay? It's like this is the slider, and then 720 minus slider. Now, one last step that I'm going to do here to make this slightly more modular is get rid of this number 720 as well, okay? Because there is a property in JavaScript that's known as value, okay? And what value means in the context of After Effects is whatever value was in this already before I wrote that darn expression on it, that's just what I want to stay in there, okay? So in this case, that would be 720. So when I click out of this, okay, nothing has changed. It's the exact same thing where this now moves that that way. It's just I've written this code that's more modular now. And what that means is I could take this, and if I select the X position, I can right click on this and Copy Expression Only, which is a really nice trick, okay? And then I could paste that directly into the X position of this layer, okay? Now what's happened is they're both going to move in the same direction because it's being subtracted from their values. However, if I get in here and I change this to a plus, now that should work the way that I want, right? Cool. Awesome job, right? Now, final step of this is how am I going to get the thing in the middle to get wider and narrower to match that, right? So if I set this at 100, what do I want to-- Oftentimes with a Property Pick Whip, one of the things that's challenging in a situation like this is to think, what property is it that I actually want to link in this case, right? Now you might be tempted to pick scale, but I actually find that changing the scale of an-- Of a layer kind of-- I try not to do that so much, especially not where I unchained the scale and have it just scale one way or the other. Because again, that's very unmodular. If my client gives me a different shape, now that's even-- Unless it's a square, it just won't work the right way and so on and so forth, okay? So I think it's way better in this case to dig into my shape layer menus here, okay? There is a property of this rectangle in the rectangle path called size, okay? Now this is listed as X and Y, right? So if I unchain this, I can make this wider this way or taller that way, because this is X. This is the X axis. This is the Y axis, right? However, I can't separate the size like I can with position, okay? So I'm going to have to deal with slightly more complicated math and slightly more complicated code here. But again, if this is you and you're like, I know I want to link size to this slider somehow, I would just suggest trying it and see what happens, and let's look at the values, okay? So I'm going to do this. Right now, this has made this square smaller because it set it down to be 100 instead of 240, which is where it started. But this is working because I make this, as I twirl this slider now, it's getting bigger and smaller based on the slider. So I know I'm getting there. I'm in the ballpark, all right? So if I look here at the code, okay, what this says now is it's defined a variable called temp, like a temporary variable that you could change, okay, that points to that slider, okay? I myself would change that to slider. I'll do that in a sec. And then it's just saying-- And this is just one of those things you have to know about After Effects and JavaScript is that if a property has two values, they need to be listed as bracket, the first value, and then comma, and then the second value, and then another bracket. This is just a JavaScript thing. I wish I could change it, but I can't, okay? This is just the kind of thing you get really used to looking at though, all right? So I'm going to actually delete that out and make this a little bit easier to read. I'm just going to say slider equals that, okay? So if anybody else picks up my project, they'll understand that that temp thing is referring to the slider rather than they're not sure what, okay? Now, slightly more complicated. As I said before, I have to return-- I hope you're not hearing that. I have to return X and Y like this in order to return these values so that in a way that After Effects understand, okay? So I just want to quickly define X and Y, and then this will be finished, all right? So I'm going to say X equals, remember this started as being a 240 square, so I'm going to put 240 in there. And then I'm just going to say plus slider, okay? And then finally for the Y, I could just say Y equals 240, okay? I can hard code that. I wrote 2540. I can hard code that in there because I never want it to get bigger up and down. I only want it to get bigger side to side, okay? So I can hard code that in there. So does this work? Oh, we're so close, okay? This is almost working perfectly, but I made one mathematical logical flaw. Does anybody happen to know what that is for anybody out there that is into algebra or anything like that? No, none of you are, okay. Excellent. I will explain it because I had to figure this out. And I'm not into math either, okay? This square is moving 100, okay? If I put this at 100, this square has moved 100 and this square has moved 100. And I've expanded this thing by 100, okay? I should have expanded it by 200, because each one of those things has moved 100. I actually need this to be 200, all right? So this is an easy code fix. Just get in here to my slider. Oops, sorry about that. And say times two, put a parenthesis around it for the old PEMDAS, and now this will work perfectly, no matter what I do, okay? Woohoo. I have successfully showed you an excellent use case for the Property Pick Whip, and a little bit of math, and a little bit of JavaScript. I hope it wasn't too much for you guys, okay? But let me jump back over here now and into my deck. Whoops, those are those pictures of my cats again. Gosh, darn it. And just say officially now, thank you for being here.
I hope this was useful to you. These are my links, my Instagram, my portfolio website. On my portfolio website, I break down a bunch of projects in this way, at least one that was pretty complex for me to work on. So you can check that out. Also down here I have a link tree.
And in here I have affiliate links to the two classes that I teach online, okay? So I'm supposed to use those affiliate links if I tell you about the class, all right? So I get paid more if you click on it that way. Anyway, so sorry to reduce this down to talking about money for one second. I know that's a really bummer thing to do, but also in this Linktree are some free tutorials that I made that you could check out from other MAX sessions and stuff that I've given and other things that I have online, all right? I hope this was useful. I just want to say one other thing, which is apparently I'm supposed to tell everybody that you're going to rate me in the session survey, and you can win this fantastic computer. What I understand is the higher you rate me, the better chance you have at winning the computer. So thank you so much. If we have any time left, if everybody has any questions, just come on up and let's just work up here and just answer questions, okay, in a more intimate setting. Right on. But thank you so much.
[Music]