We’ve all been there…
You’re working on a project in After Effects and BAM, brick wall. After Effects just doesn’t have the feature that you need. It’s times like this that we all turn to places like aescripts + aeplugins, and to the real MoGraph heros, the plugin and script developers. They create the tools that we Motion Designers need to get our jobs done, or maybe just make our lives easier.
If you’ve ever used an AE plugin, script, or expression you’re going to want to check out this interview with Zack Lovatt. You might not know him by name, but you probably know some of the tools that he’s worked on, like Flow and Explode Shape Layers. In this episode of our Podcast Joey gets the inside scoop on what it’s like to be a plugin developer for After Effects. They talk about everything you could want to know about becoming a developer, from how to get started to how much you can make (hint; it’s more than just beer money), and even what the future of developing tools for After Effects might look like.
Subscribe to our Podcast on iTunes or Stitcher!
Show Notes
ZACK
DEVELOPERS & ARTISTS
Lloyd Alvarez (aescripts + aeplugins)
RESOURCES
Up To Date Scripting Guide on Aenhancers.com
SCRIPTING LANGUAGES & TOOLS
TEXT EDITORS
PRODUCTION SOFTWARE
Episode Transcript
Joey Korenman: After Effects is an incredibly powerful tool right out of the box. But it can't do everything. Luckily, thanks to sites like aescripts + aeplugins, there's a massive ecosystem of tools and scripts that can give you features and capabilities that make your life easier. They can automate repetitive tasks, they can help you stay organized as you work, and they can even give you entirely new tools to generate looks that you just couldn't create before.
We all like to geek out about these new tools, but we don't often think about the people behind those tools. Who are the coders who actually make this stuff and why the hell do they do it? Are they getting rich? Is there a contingency of aescripts millionaires out there? Or are these developers scratching their own itch and hoping to make a little extra beer money in return for sharing with the community?
So, our guest today answered all of these questions for me and a whole lot more. Zack Lovatt, script creator extraordinaire, is on the podcast and breaks down exactly how and why he builds tools for After Effects. He talks about how much he makes from his scripts and about just how much work it really is to build a professional, sellable tool.
This is a side of motion design that you don't often hear about, the professionals out there that support the designers and animators by making their lives easier. Zack's story is really fascinating and he was incredibly open and honest about his experiences. So, I think you will dig this episode. Before we jump in, we are going to hear from one of our amazing alumni.
Ollie Mamaril: My name's Ollie Mamaril, I live in Chicago, and I've taken Animation Bootcamp from School of Motion. I've been animating with After Effects for about seven years. I used to just use Easy Ease or Ease and Wizz on all my keyframes, but I never formally learned about things like oscillations, follow through, reinforcing, or eye trace. Now that I've been applying them into the work, my animations have so much more character and life.
With the students I've interacted with on the Facebook group, I feel like I have an international network of motion designers who I can look to for input, inspiration, and guidance. Everyone is so helpful and supportive that you're just driven and inspired to get better, and you do. My name is Ollie Mamaril, and I'm a School of Motion graduate.
Joey Korenman: Zack, thanks so much for coming on, man. I cannot wait to get geeky with you. I'm really excited.
Zack Lovatt: I'm glad to be here. This is going to be exciting.
Joey Korenman: Yes, definitely. There's going to be a lot of really dorky conversation happening. So, let's start out. I think a lot of the people listening to this would be probably more familiar with the tools that you've made than with you. I'm wondering if you can just give us a little overview of, "Who is Zack Lovatt?"
Zack Lovatt: I'm a motion designer, compositor, and After Effects tool developer, tool author. I've released things. The biggest, most recent would be called Flow. Before that, would be Explode Shape Layers, and a number of smaller tools like Prism and Easy Bake that still exist, but they're definitely less popular than Flow and Explode Shape Layers.
Joey Korenman: Got it. How did you start doing that? I'm a motion designer and I did it for a long time. I got really into expressions to try and save time and do things like that. But scripting, it seemed like it was a much taller mountain to climb. I'm curious, how did you start doing that?
Zack Lovatt: It's just the same way as you were saying. It starts with expressions. Expressions are the gateway drug to scripts because once you're learning expressions and how that works, scripting is almost the same thing. It's like anything you can do in expression, a script is just a bigger version of that. There's more overhead, there's more stuff involved. But they're essentially big expressions, the difference being that a script can effect anything in After Effects vs. expressions are only on a specific property.
Joey Korenman: That makes sense. So, okay. I definitely want to dig into that more. But before we get into that, what is the motivation to make these tools? Explode Shape Layers really, really useful tool. Flow is an incredibly useful tool, but also pretty deep. There's a lot of features. It must have taken a really long time to develop. So, what's driving you to build these things?
Zack Lovatt: So, as I mentioned, I've been as a compositor for a couple years and a motion designer for many years. But in all honesty, I'm not a great designer and I'm a decent animator. But I found that this technical side of things was more calling to me.
As I'm working, I strive to be as efficient as possible. Sometimes this means loading up a project with a million expressions just because it's quicker to change later down the road. From there, it came to not just optimizing your project, but how do you optimize your workflow, things that you do every single day? How can you make these faster and more efficient? The answer there is to use scripts, to write a script to solve this problem.
So, for me, the motivation started out as there is a need here. I would see people asking on Twitter and complaining online about the same repetitive tasks that they'd be doing every day and a lot of people would be doing them like, "How do you take one shape layer and break it apart into multiple shape layers?" So, all of this was really driven by a desire to make people's lives easier, including my own.
Joey Korenman: Perfect. Okay, I have a couple of questions on this. So, first of all, I feel a lot of kinship with what you just said. The technical side of this industry was the gateway drug for me. It sucked me in. Then I found my way into the design and the animation and the more creative, artistic side.
When I was freelancing, especially early in my career, I developed a reputation as a technical problem solver. I could figure out the expressions to make the workflow faster. I could figure out really complex ways of using After Effects. But I felt a little guilty in that I didn't have a good sense of design. I didn't really understand animation. I'm wondering if you feel that or if you've just gone all in and said, "You know what? I am stronger in the technical side. It's okay," and just owned that.
Zack Lovatt: So, I freelanced almost full-time for about six years. Out of the gate, I didn't have really a lot of experience working in studios or companies that focused on motion design. So, I'd be hiring on people because I'd be getting projects that are bigger than myself. So, I'd be acting as a producer hiring on artists. The day I realized that I enjoy my work better, the work comes out better and everybody's life is improved when I'm not the one doing the design.
It changed things for me when I admitted to myself that I'm not a great designer and I should hire a designer because that's where their skills lie. I found that I was more free to focus on the bigger picture stuff, be it the technical execution of somebody else's design or managing a project or producing or dealing with the coordination or client interaction. That freed things up a lot.
So, before that, I would always struggle when I'm working on projects, just because I get bogged down on the concept, the design, sometimes the animation. But this, "How do you build something out? What is the best way to implement somebody else's work?" That's always what I loved.
Joey Korenman: It's great to hear you say that because I think a lot of motion designers probably have, everybody has impostor syndrome. But it's really easy to develop even a little bit of guilt. I was the same way. I was really good at taking other people's designs and animating them and executing them. But I could never make designs like that and I felt inadequate until finally I gave myself permission to say, "Okay, that's just not what I'm going to be. I'm not going to be a designer." I'm just glad to hear you say that too because I didn't know if that was a common feeling.
Zack Lovatt: I don't know. It seems that anytime I tell people that I'm not really a good designer, they think I'm beating up on myself. "No, you're great." I'm like, "No, no. That's not what I'm getting at." It's just that's not where my skills lie. I'm a technical animator, I'm a problem solver, I execute. I don't do design or creative work. If that's what you're looking for, don't hire me. We'll both end up better in the end. We'll get a better result if we know where our strengths lie and we play to them.
Joey Korenman: Sure. So, you mentioned that you build these tools based on feedback you see on Twitter, scratching your own itch, solving problems. Do you feel that some of the tools that you make, and not just the ones you make, but that other script developers make, some of the stuff should just be built into After Effects? Do you ever feel that or do you think that by design, it's better to just have a million little tools that you can add on to After Effects?
Zack Lovatt: Sorry, this is a hard question to answer.
Joey Korenman: Yeah, and the Adobe sniper is right outside your house. So, make sure you answer very carefully.
Zack Lovatt: That's just it. A lot of people who give Adobe shit because After Effects doesn't do what they do to the point of a few people pose themself as the motion graphics messiah and they have all the answers of what Adobe should do to make it better, which I think is so much bullshit.
What other piece of software do you know that is used in as many different ways and different industries as After Effects? Even Photoshop. It's used in a lot of different industries, but it's all for the same purpose. After Effects is used for character animators, visual effects, editors, people making YouTube videos, people doing wedding videography. It's used by everybody for so many different things.
Now, Adobe and the After Effects team, the After Effects team being, from my understanding, one of the smallest and a core dedicated team, a lot of them have been there a lot of years, they can't do everything. They need to focus on, of course, the biggest market they have. We don't know what that is.
If the Adobe After Effects team knows that their biggest audience is, for example, people doing broadcast lower thirds, then I can understand how they're not going to spend so much time building more features for shape layers or developing these specific elements if they're not used the most. Of course, there is still a lot of people that use these tools, but there's only so many people on the After Effects team and they need to focus on the biggest market just because that's how it works.
So, that's where this scripting and this plugin platform come in. After Effects isn't really one piece of software anymore. It's this platform for adding onto and developing. It's not the same extent as Maya or Nuke, which are really flexible. But this brings a lot of opportunities for people like me to come in and say, "You know what? I use shape layers a lot. But you don't. So, I'm going to build a tool that works for me and I'm going to sell it," the point being that you can build After Effects to be the platform of choice to do exactly what you want it to do.
If you use a lot of shape layers and curves and animation like that, you're going to use stuff like Flow and Explode Shape Layers, things that make your 2D life easier. But the guy next to you might be a big visual effects artist and he doesn't ever need to do any of this. In his point of view, he'd be pissed off if After Effects spent all of their developing time on this 2D side instead of this footage and VFX side.
Joey Korenman: I got to say, that was a really well thought out answer. That makes a ton of sense. I've talked with members of the After Effects team and I think it should be said that the team is not as big as most people probably think it is. You think, "It's After Effects, it's Adobe. There must be hundreds of people working on After Effects." There's not. You could probably fit them on one school bus.
It's funny. I think, Zack, and I know we're getting off topic, but this is interesting to me. My take on it is that After Effects was probably when it was built initially, and if you look at it, it hasn't changed that much since its inception. Things have been added to it, but it still works more or less the same way. I'm sure the original design of it never had this much scope in mind.
So, to create a all-in-one software that can literally do every single thing After Effects does, it would be the most bloated piece of software. I think it's more like motion designers wrapping their heads around the fact that After Effects has become a platform, not just an app. One of the things I want to talk to you in a little bit is about how now you can actually move past scripts. For example, Flow is not a script, correct? It's an extension.
Zack Lovatt: That is correct.
Joey Korenman: Gives you even more control over the interface, things like that. All right. So, before we get into that, let's go back to the coding thing. So, expressions, there's tutorials, there's MotionScript.com. But how did you get into expressions, then how did you transition from there into scripting?
Zack Lovatt: I think the same way everyone does. You find a Dan Ebberts post online, you copy and paste it, and then it's a matter of breaking it down. When I was younger, in high school and things, I took the programming courses and I was always terrible at them. But I had some familiarity with the world of how programming stuff works. So, expressions were definitely how I started. There were a lot of resources online, the sites you've mentioned. You could just go to Google and type in "After Effects expression" plus whatever word you're looking for and you'll find something.
It started with that, just learning expressions and learning how it was structured. What is this syntax? What is this grammar you need to use to interact with After Effects via code? So, I did that for a while. On my website, I have a tutorials section where I have a bunch of expression-based presets and tutorials for little things. I've got an insanely long list of things I'd like to write about, but I seem to do a new post about every two years. So, I don't know if that's ever going to happen.
I went to an NAB in Vegas a few years ago and I met some of the aescripts guys incidentally. But they probably have no recollection of this, no idea who I am. I started thinking about it from there of, "Why don't I start looking at this, evolving into this script world?" This was around the time where I was finding out and deciding or coming to grips with the fact that I'm not a great designer and I need a focus somewhere. I latched onto that as something I should start exploring.
So, I got home and I did. I think in the first month, I released three or four different scripts. That was Create Pivotal Null, Find Large Files, Trim Comp to Contents, and the first version of Explode Shape Layers. You haven't heard of the other three. They are very niche used. They don't sell. I think one of them has made $55 total in the past four years.
Joey Korenman: Wow.
Zack Lovatt: Yeah. So, it's great. But it's the sort of idea of just diving in deep and learning. It's been a lot of growth since then.
Joey Korenman: So, you mentioned learning the syntax of expressions. So, let's go there a little bit. Let's go into a little more detail. I'm just saying, this is a devil's advocate question, or a loaded question. Does After Effects have its own language? Is it specific to After Effects or is there some programming language that if you know it, you also can write expressions and scripts in After Effects?
Zack Lovatt: So, expressions and scripts in After Effects are in a language called ExtendScript, which is almost exactly JavaScript. It is like they took JavaScript and they added on some things, and this is ExtendScript. This language is used for all Adobe scripting. Every Adobe software that can use scripting uses ExtendScript. I guess the exception would be ActionScript, but that's a little different. If you're writing scripts for a piece of Adobe software, you're writing in ExtendScript.
But ExtendScript is very niche. It's only used for Adobe software. If you were to spend the time to learn JavaScript, you could use those same commands, the same grammar, the same everything almost in After Effects scripting expressions with exceptions.
Joey Korenman: I've heard JavaScript described by a web developer as the lingua franca of the internet, basically like that's the language you should learn if you want to write bits of code that almost any developer is going to be able to work with. I can say, I'm not a coder. I was a computer geek when I was a kid too, so I messed around with QBasic and all that. But I found, just like you, I think, expressions, once you understand how they work, they're actually pretty easy to learn.
The big eyeopener for me was just realizing, and I actually didn't know, that ExtendScript is different than JavaScript. I thought it was just JavaScript. JavaScript, you can Google "JavaScript how to" anything and you can learn how to do trigonometry with it and do math and random. You can take text strings and split them up.
A lot of people don't realize that even though those functions are not listed in the After Effects expression dictionary that it gives you, you can do so much more with it. So, I would say that would be a tip if anyone wants to learn expressions. Learn a little bit of JavaScript. It's really, really simple, as far as a programming language goes. Would you agree?
Zack Lovatt: The basics, at least.
Joey Korenman: Yeah, the basic stuff.
Zack Lovatt: I would with the few, like as I mentioned, there's a few exceptions. The version of JavaScript, because JavaScript, it's a language. It's a programming language, but it's still a language. Things like English, dictionaries gets updated every year and they evolve. The version of JavaScript that ExtendScript is based off of was released in 1999, from my understanding, and it hasn't been updated.
So, you can definitely look up things to do with JavaScript and a lot of the core features, things like, "How do you split up a string," which is some text, "into individual letters?" Or, "How you break apart a paragraph into lines?" That'll all work. But any JavaScript features that have been introduced in the past almost 20 years, they won't exist in scripting or expressions. So, that's stuff missing.
On the flip side, there's a lot of stuff added, expressions like Linear and Look At and Value at Time. These aren't JavaScript things. These are After Effects things. So, there's also a lot of stuff specific and custom for After Effects. This is mostly the things you'll find in the expression fly-out menus. These are the things that are added to this ExtendScript/JavaScript engine for After Effects specifically, for expressions, not for scripting. That's a different discussion.
Joey Korenman: Right. Okay. Let's get into that. So, let's say that someone's been writing expressions. You can get really, really fancy with expressions. You can do a lot more than people realize. But let's say that, "Okay, cool. I want to make my own tool. I want to become an After Effects script millionaire."
Zack Lovatt: Me too.
Joey Korenman: So, yeah. There we go. So, what are the key differences in capability between expressions and scripts? Then once you decide you want to make a script, how is it different from writing an expression?
Zack Lovatt: So, I think it would be important to look at when these pieces of code are run. When you have an expression on a property on the layer, it is run every single frame for every property that it's on. So, if you have Wiggle on 10 position properties, at every single frame of your comp, it's evaluating that piece of code once per expression.
So, that's how expressions work. They apply to a specific property in your project like position or scale or a color control, it could be anything, and they keep evaluating. This can get slow if you've got a ton of expressions going on, but that's just how the engine works and that's how it needs to work. It has to keep evaluating every single frame.
Scripting, on the other hand, they're effectively a one-click button. You run a script and it does a specific, defined action and then it stops. So, it's like triggering events in After Effects. So, the closest would be like a Photoshop action where you click a button and it does something on its own and then it's done vs. expressions keep going as you play your animation.
Joey Korenman: That makes a lot of sense. Okay. So, an expression essentially has to work on one property of one layer. You can copy and paste that expression and it can reference other things. But it can't actually change anything except the property it's on whereas a script, it can only work when you activate it, or I'm assuming there's probably ways you could have it continuously update or something. But it can act on multiple layers, and not only multiple layers, but multiple features of After Effects, right?
Zack Lovatt: Yep, that's exactly it. So, expressions are limited in, the word I would use is "scope". They're limited in scope to wherever you write them. They can only interact with whatever property the expression is applied to.
So, even if you have your position property, you've got an expression there pointing at all sort of different comps and comp names and layers and doing all this math. The only thing it can ever effect is that position property vs. a script is an automated way to do something that you can otherwise do by hand in After Effects.
So, do you want to create comps, delete comps, add layers, add effects, rearrange things in any way? If you can do it by hand in After Effects in the interface, you could write a script to automate it almost all of the time as a one-click button.
Joey Korenman: You just brought up a really good point. Scripts allow you to do things that you could otherwise by hand in After Effects. There are some obvious examples, like Explode Shape Layers. It's like you could do it by hand, but why the hell would you?
Zack Lovatt: Exactly.
Joey Korenman: It's just a pain in the ass. Use Explode Shape Layers. By the way, we're going to link to all of these scripts that we're talking about in the show notes so you guys can go check them out. But it seems like there are, sometimes there's scripts out there, and none of yours, Zack. None of yours fall into this category. But it's almost like, I don't know. It's like it's trying to keep you from cutting your hands by putting these giant padded gloves on. Sometimes as an animator, you need to get in there and you should do it the slow way.
Even more than that, I think sometimes if you're an animator or a compositor who knows how to code tools and you know, "Okay, I need to animate this thing and it's going to take me two hours," you'll spend eight hours building a tool to do it for you. It's like a form of procrastination. So, I'm curious if you have any way, any system of deciding when it's appropriate to build a tool to do something.
Zack Lovatt: It depends.
Joey Korenman: Why don't we do this. Why don't we use Flow as an example? I think Flow is one of those tools. We just did a review of Flow on School of Motion. You can find it and we'll link to it in the show notes. Essentially, I love Flow. I used it on everything now. I'm not just blowing smoke up your ass. It's an amazing tool. However, there's some real limitations to it.
If you really need to nuance curves across multiple keyframes, it's not built to do that, right? So, that's not a problem if you understand how to animate and you know the limitations and you can work with them instead of against them. But what I find is a lot of times people will take a tool like Flow and they'll just use it as a crutch and it really limits your animation capability. So, let's use Flow as an example. Why did you think, "This is a tool I need to build?"
Zack Lovatt: My answer will indirectly answer this question, but Flow needed to be built because there's a market for it.
Joey Korenman: Whoa. Slow clap.
Zack Lovatt: It's essentially that. I've stopped taking, for the most part, motion design work, freelance work. Instead, I do freelance script design, either for commercial sale or directly for studios. I do a ton of custom pipeline tools for different visual effects and animation studios. There's a market for Flow.
So, Flow's not a great example because it wasn't necessarily something to make my life easier and then I commercialized it. This was built to be commercialized. It was built to be sold. This was with a partner. It wasn't just me. But I think Flow is not the best answer. We can get to that in a bit, but in general, it depends on the task entirely.
If it's something that I feel confident I can quickly write a little script to execute this option, I will usually do that, the benefit being that if you just sit and work and brute force your way through a problem, great. You've solved it. If you spend a bit more time to write a script for it, you always have that script. You can now save that somewhere in a database, put it online for others to use, keep updating over time.
But the next time you have the same problem, you've got something built. Maybe it won't fit the need exactly, but in the process, maybe you've learned more about how the render queue works or how parenting and effects or something works. So, you've learned more about this world you're spending so much time in. You've built a tool hopefully that you can keep using in the future.
I will usually go the route of building something if it won't be more than a few hours. If it will be more than a few hours, it gets added to my list of things to build out into a bigger tool, which I can hopefully get to at some point.
Joey Korenman: It's so interesting that you said, "Flow was built to be sold. There's a market for it." It's striking me now that that never occurred to me. I always just assumed the script market was really small and it was animators scratching their own itch and then saying, "Hey, I could make some nice beer money with this." So, I definitely want to dig into the economics of this market.
But before we do that, I want to hear a little bit more about how Flow was built because Flow is a new type, or a newer type, of tool that you can add to After Effects called an extension. I think it's only been in the last couple of versions you could even do this. Can you explain what the difference is between an extension and a traditional script like you're used to seeing?
Zack Lovatt: Yeah. So, at the simplest level, an extension is a shiny interface for a script.
Joey Korenman: That was easy.
Zack Lovatt: Yeah. Everything that an extension can do, as far as how it interacts with After Effects, it's a script. It runs a script with certain commands behind the scenes that interact with things. So, if you look at what Flow is doing to After Effects, it is adjusting speed and influence and that's pretty much it. It is reading key curves and applying key curves. That's it. You can definitely do that with a script or by hand.
Where Flow's power comes in is the interface. What extensions are is it's a full website living inside of a panel in After Effects. Other Adobe softwares had extensions for a few versions, but After Effects only got it in CC 2014. So, that's what it is. It's a nice front end to a script.
That's where the extension lie, the problem being now you need to know things about web development. It is a full web page. You can use any library or any structure or framework that exists online. The only limit is what you know and what you can build.
Joey Korenman: Yeah, I remember talking to Remco, who built Expressionist and he used an open source library that already existed to basically put a code editor inside of After Effects. If anyone is into coding and expressions, that's pretty much a must-have, in my opinion. Okay. So, then what now, doing an extension, because now that you've done one, and Flow, it is really the prettiest looking tool you can add to After Effects. I don't think there's anything that looks as pretty as that.
What are the technologies, what are the languages you need to know to be able to do that? Obviously, you need the ExtendScript for the script end of it, but then what about the front end? It's interesting to me because at the time of this recording, we are actually deep into building the new version of our website, so I've gotten a little crash course in the differences between back end and front end and how they have to talk to each other. It seems like this is a microcosm of that.
Zack Lovatt: Yeah. So, that's exactly it. The back end of any expression is a script, that same old script, as you know, with much more frustrating way of installing it. The front end is the website extension interface. Now, if you look in the About window of Flow, or if you read through the README, it will say that Flow's core is based on Cubic-Bezier.com. So, if you go to Cubic-Bezier.com, there's links also in Flow and in the PDF, you'll see a website that looks very similar to the core components of Flow.
This is an open source website that gives you a Bezier graph with two handles, there is a library there where you can import and export, and it converts these handles to the same four cubic Bezier values. This is what Flow is based on. This website being open source, we took the code from this, we emailed the author and developer of this, Lea Verou, and got her blessing. Then we spent almost a year on and off adapting it to work with After Effects, redesigning the layout, and a lot of the core foundation, as it didn't really work for our needs.
So, we started with Cubic-Bezier.com and just built on it and edited and adjusted and manipulated and spent a ton of work and a ton of time making it into the Flow that you see. So, we were lucky in that we knew what we wanted and we found something that worked to start with. The same way that Expressionist uses this existing library to build a code editor, we used an existing library for this graph editor and this curve library.
Joey Korenman: Interesting.
Zack Lovatt: This isn't some illicit dealing thing. We're very open about it. This is open source, it's totally allowed, and we got permission just in case. We found that this website was very popular with the web and interactive crowd and we wanted to bring that into After Effects. So, we figured out how to do it and that's what it is. That's what's going on in Flow.
Joey Korenman: Yeah, the open source thing is something that, it's really interesting to me because in the development world, everyone knows about it. If it's open source, you can do whatever you want with it. That's the point, right?
Zack Lovatt: Depending on the licensing.
Joey Korenman: Right, right. But the idea is we want you to take this and use it and share and do things like that. In motion design, you almost have the opposite reaction where everyone bends over backwards to be really careful not to borrow anything without attributing in it and if it kind of looks like that thing, be really careful because you might get a bunch of angry Twitter trolls yelling at you or something like that. Yeah. I just thought it was interesting. I just thought about that and I'm like, "Huh. I wonder how our industry could benefit from something like an open source movement."
Zack Lovatt: It does in some regards. It is one thing if you take the creative execution and designs of somebody else and essentially present that as your own work, but most of the people listening to this episode knows who Dan Ebberts is, or Harry Frank, the expression gurus. Everybody has gone to their websites, copied and pasted the code verbatim.
It's not like in the credits of whatever motion piece, you say, "Oh, and special thanks to Dan Ebberts for this expression he used and thanks to User1234 on CreativeCow.net." You don't do that. You just use these expressions because they're posted openly and shared openly. So, that does exist and it is something that happens, which is fine if people are sharing it to be used. So, it does exist, just not necessarily in the way that you would think for our industry.
Joey Korenman: Right. I think I agree with that. So, let's talk about the approach to developing something like Flow because when you want to write an expression, it's pretty straightforward. You hold Option, you click on the stopwatch, or your use Expressionist and you write your expression, you're done. If you want to write a script that has an interface or an extension that has an HTML interface, what kind of tools do you need to do that and to be able to design it and test it and then test it inside After Effects? How does that process work?
Zack Lovatt: The biggest tool you need is patience. So, there are completely different domains of writing something with an interface for After Effects and an extension. Completely separate. Just talking about scripting in After Effects, the biggest thing here is the community that I feel. There are so many After Effects developers and After Effects scripting resources out there that I don't think I could ever have written anything without all the resources available online to me.
The same thing goes for extensions. It's just that the extensions don't have a lot of history, especially with After Effects. So, there's not a ton of online resources, but there are definitely some. I can give you links later to put in the show notes. But so much of all of this is looking things up online, trying and failing, and trying and failing until finally, something clicks in you or something clicks with what you're building and just works.
So, just trial and error and a lot of patience. It sounds glib, but I mean it. It takes a lot of figuring things out, at least for me without any sort of programming background, to learn how these things work.
Joey Korenman: So, are you opening up TextEdit and writing code and then loading that as a script into After Effects and running it and then, "Oh, that didn't work," so now you have to change it and then close After Effects, reopen it, try it again? Or is there some slicker way of working on these things?
Zack Lovatt: So, at the core base level, that's essentially it.
Joey Korenman: Oh, my god.
Zack Lovatt: It's a bit slicker, but the idea is you save something and either you run it directly in After Effects. At the core level, that's essentially it. You have a text editor, be it TextEdit or Notepad or Sublime or Atom, you have some code in there and you run it in After Effects. If it's a pure script without a script UI panel, you can run it directly in After Effects from File, Scripts or you could use ft-Toolbar or something to launch it directly.
Or there's Sublime and Atom systems. Sublime and Atom are text editors made for programming, or Brackets is another one, that can run code directly into After Effects. So, you do your tweak and you hit run and it runs in the software. You see what happens and you tweak and you run it again. That's effectively how it works.
You can also, if it's a script UI panel, you can just overwrite that same file. So, if you open up that script file, you can type in some text, hit save, and in After Effects, you close that script UI panel, then you reopen it and it's got the new changes. You don't need to restart After Effects. You just close the panel, open it up again, and it's now updated. So, a lot of this development works through that.
Extensions are almost the same way in that installing something with the intention of developing it is different than installing it to use it. So, there are a few more steps involved there, but it's the same idea of you make your changes in your code editor and then you either close and reopen the panel or, if you can put in a refresh button, Flow has a little refresh option underneath the hamburger menu. That was built so that we can quickly test things that we're changing.
It does take some getting used to and it is frustrating to go back and forth to see what your changes are doing. But with experience and with time, you understand the repercussions of what you're typing. You understand that if I change this line, this is going to happen. You find yourself typing more and more code before you need to go back to After Effects and see what the effects are.
So, after a while, you see people in Slack or online typing long little scripts or long expressions by hand on their phone in a car or waiting for a bus just because they are so familiar and so confident with what they're writing that they know the results without needing to check it all the time.
Joey Korenman: I want to try all this stuff now. This sounds fun. So, then for the front end of an extension, it's the same process? You're just using your code editor to write HTML and maybe some CSS and that's essentially it? On top of that, you have another file that is the script, and somehow, those two things talk to each other?
Zack Lovatt: Yeah. That's effectively it. There's more to it for the HTML because there's also all the JavaScript on the website needed to run the page. If it's just the HTML, you'll get a GeoCities type site. There's not a lot of interactivity or not a lot of things going on there. But that's effectively it.
But your full website, which are HTML, CSS, JavaScript, whatever, as well as this library from Adobe that lets you talk to the After Effects script file and interact with them and get things like, from your webpage, you can get the background color or your application brightness or your After Effects version or things about the After Effects environment. So, that's essentially it.
The benefit of working on expression ... I'm sorry. See, I'm still not used to it. The benefit of working on extensions is that an extension is a website. So, you can also just open up your browser, Chrome is usually the one of choice, as inside of After Effects, extensions run an instance of Chrome. So, you can just open up Flow in Chrome and a lot of it will work. Not all of it, because we store some things and deal with After Effects specifically. But it's still just a webpage.
So, before Flow was released, I was showing it to some people running in Chrome on my phone. You can't click and drag because it's a phone. It thinks you're scrolling the webpage. But it's just a webpage.
Joey Korenman: This is quite a rabbit hole, man. I remember learning expressions. For a while, this is years and years ago, probably 10 years ago or more, but there were no expressions. You couldn't even do that. Now you're talking about essentially full stack development inside of After Effects. So, what I want to get into next is where this is going. What is this turning into?
I've talked to Lloyd, who runs aescripts, a little bit and I know that when he started building these tools, he never imagine that aescripts would be what it is. Now it's this massive store filled with really well developed tools like Flow. So, Zack, tell me about the economics of the game that you're in now selling Flow and Explode Shape Layers. I'm sure you'll release other tools in the future. Is this beer money or is this actually a viable career to basically build extensions to After Effects that motion designers and compositors and MoGraph artists can use?
Zack Lovatt: This is unsatisfactory, but it really depends on the product. I think there is some measure. It's like bringing anything else to market. If you're an inventor, some things you create will be amazing and taken and purchased, used by everyone. Some things won't. It's a matter of knowing the audience, knowing the market, and what's going on.
I have had a lot of success with essentially Explode Shape Layers and Flow that others haven't. So, the amount that I've earned isn't necessarily representative of every script developer. Thus, on the flip side, I know developers who have made a lot more than I have. So, it really comes and goes.
Or I've released other things like Easy Bake, which was a ton of work and has sold so little. That was a collaboration as well with Rafi Khan, who did AfterEase and Easy Spell, or After Spell, rather. So, it fluctuates. It fluctuates per month, it fluctuates depending on whether certain amazing educational sites will release a review of the product and send out a coupon code to their mailing list, things like Black Friday sales.
So, things go up and down. But for me, since Explode Shape Layers 3 came out, which is when it started having a big toolbar in, I think it was February 2015, my scripts have paid for my rent, usually more than that.
Joey Korenman: That's awesome.
Zack Lovatt: Yeah.
Joey Korenman: So, can we get a little bit specific? Is Explode Shape Layers your biggest earner, or is Flow, at this point, overtaking it?
Zack Lovatt: So, these numbers are based on total sales, not my cuts because aescripts and aeplugins gets a cut and if they're a collaboration like Flow is with Tomas Sinkunas, which I haven't mentioned it thus far, but Flow is not a Zack Lovatt product. That is renderTom and my collaboration. We both spent a ton of work, a ton of time on this. I don't think either of us could have released this alone. This was a fantastic collaboration and we've both profited from it.
But Flow is newer and there's always big spike at the beginning, which dwindles over the months.
Joey Korenman: Of course. Yeah.
Zack Lovatt: Because ESL has been out since 2015, it has earned me more in that Explode Shape Layers 3, since its release in February 2015, has earned just under 60 grand.
Joey Korenman: That's total revenue, that's not your cut? Or is that your cut?
Zack Lovatt: Correct. That's total revenue.
Joey Korenman: Okay.
Zack Lovatt: Vs. Flow, since its release last September, September 2016, has earned 52 grand.
Joey Korenman: Okay. So, it's happening a lot faster for Flow.
Zack Lovatt: Yeah. The flip side is that Explode Shape Layers, I don't have a partner to split the revenue with. So, I've made a lot more than I have with Flow. However, Flow is a stronger seller, and so it's likely going to keep going, at least for a while. So, it has the potential to earn mean more personally, but we can't see how the future's going to play out.
So, in total, all of my products ... Actually, I guess it depends on the year or the time span we're looking in. But let me just see how far back I can ... There's a whole reporting page where I can see these figures. Sorry, go on.
Joey Korenman: I was going to say, while you're looking that up, I wanted to ask you a question about this. So, the numbers you're talking about, that's a pretty good passive income stream. Obviously, you've probably added up and figured out your hourly rate that you earned on Flow. I'm sure it's very low for the amount of work it took.
Zack Lovatt: Yeah.
Joey Korenman: However, you put in the work and you probably enjoyed it and now you've created this amazing tool for everybody. Now you've got this gift that keeps on giving. I know that you do have to split revenue between Tom, who helped develop it with you, and also with aescripts. I know some developers don't put their tools on aescripts. I'm just curious why you guys have decided to stick with aescripts.
Zack Lovatt: Let me just go into the numbers a little bit more.
Joey Korenman: Oh, sure. Go ahead.
Zack Lovatt: I'm sure it'll illustrate this. So, in total, since my first product released in May 2013, my products or products I've been involved in have sold 120 grand, of which I've made 70. That's not to say that I'm getting 50% because this varies completely depending on the tool and the sale and affiliate stuff. But I've made 70 grand in these tools, most of them, since 2015. Most of this since 2015. I don't feel confident that I would have earned the same amount if I had released these independently.
aescripts and aeplugins has history. They are the largest marketplace, they've got a huge following on social platforms, as well as their mailing list. It's a lot easier for larger companies, from my understanding, to buy through an established seller like this as opposed to individually selling on Gumroad or through your own site. There's also the aescripts licensing system, which I appreciate. It's one level of deterrence, however your stuff's always going to get pirated.
Now, that's not to say that it's the only way. I know a lot of people don't go through aescripts, and that's totally fine. I value what the infrastructure brings. So, for now, I definitely plan on supporting it. I like where it's going. But if I were working on a tool with a partner who'd rather not, that is a discussion to be had. But for now, I'm very happy with aescripts and selling there. That's my choice. Others aren't and others are unhappy with having a cut of the profits taken away, which I completely understand. But it's a trade off.
Joey Korenman: I know Lloyd. I've gotten to know him not incredibly well, but fairly well. So, I know how hard he works. You brought up, it's echoing what you said earlier in our conversation, Zack. You could try and do it all, be the plugin developer and figure out how to market it. But maybe marketing is not your thing. Maybe you don't like doing that part.
Lloyd is very good at that. aescripts has a great infrastructure, a great brand, great reputation, and they're improving all the time. So, it is a no-brainer. I was just curious. I don't want to get into the financial deal that you have with them because I would want to ask Lloyd's permission first. But I know they have incredibly fair terms too for their developers.
Zack Lovatt: Yeah. Absolutely. The terms are fair for the developers and I'm fine with that. On every product that's released, you need to create your own tutorial, promo video, and some sort of branding. But that's it. I don't need to figure out how to design a full webpage dedicated to my products and the full marketing and branding of that. I'd rather just build something.
So, for some scripts like Prism, that was a partnership with Andrew Embury, in which I did the code and he pretty much took care of everything else. We split all profits of Prism 50/50. To me, I'm okay with that. I am okay with 50% of all profits going towards the marketing and the marketing and branding side. Let me focus on what I want to be focusing on and the rest, somebody else can take care of.
This isn't just unique for me. You see things like certain tools, the name attached to it isn't necessarily a developer. So, usually it's advertised there, this tool developed by someone else, even though that's not the big name attached, just because names have this big marketing and branding and a lot of prestige to them that the developer themself might not have.
Joey Korenman: Exactly, exactly. This is a real eyeopener, man, just knowing how far down the well goes into the world of After Effects scripts. So, you mentioned earlier that you don't actually do a lot of motion design anymore. You're mostly creating custom scripts and stuff like that. I honestly didn't even know that was a thing. Could you talk about that a little bit? What exactly do you mean when you say you're doing custom script development for studios and for pipelines?
Zack Lovatt: So, I started out in post production working at visual effects studios. VFX studios always have big pipelines integrating all the Foundry stuff like Nuke and Mari and Katana into Maya and getting that out to whatever edit system. There's a whole structure there. Then you go to a motion studio and they're doing things like creating an After Effects file every single time with a different structure because there's no established best practice. They have to set render pads manually and half the renders are using a period to separate the frame number. Half are using an underscore.
There's so much room for human error and there's this big empty space where a lot of studios just don't have these sort of internal pipelines, like [inaudible 00:53:21] Creation Tool, a one-click button to import all of your footage and your reference and build your comps and set the comp durations based on the footage and adding in LUTS and color tables and things so you don't have to do that yourself.
So, a lot of these studios that are using After Effects, I think they're seeing more and more now that they need this firm, structured pipeline to remove the human error and to automate things. Like you were saying, anyone can go open up After Effects and separate a hundred shape layers by hand, but why would you want to? So, this sort of pipeline, pipeline being what it's called in the visual effects world, a lot of studios don't have an After Effects or 2D pipeline. Just from my name being out there through my products and my involvement in the developer community, I've been getting a lot of work to be building this stuff for different studios.
Joey Korenman: That's great. So, would it be possible, is that maybe down the line a future kind of enterprise level product from Zack Lovatt, the After Effects pipeline product? Or does it need to be custom for every single shot?
Zack Lovatt: It needs to be custom most of the time. Now, some of the components used can definitely be figured out how to market them or bring them to market. However, if you're writing something custom for a studio, you usually can't go and sell it. But it's things like, every studio has their different internal folder structure and directory system. So, there is no simple pipeline toolbar. It has to be something custom to work within the framework and the needs of each studio independently.
A lot of the core principles are the same, but it's really the tweaks of the paths or what output modules do you use? Do you use DPX or EXR? What bit depth? Things like this, that are custom per studio or certain workflow quirks that different companies have developed that the automation is really narrow focused or customized for them.
Joey Korenman: That's really fascinating. I'm going to have to have you back on the podcast at some point to talk more about this. It's a great point. Visual effects studios, probably just because they're a much bigger beast, there's more people, there's more data, more renders and things like that, passes, that without a good pipeline, people would drown. There'd be no way to get jobs done. Motion design studios are used to being smaller, leaner, have been able to get away without having that. Now, maybe as the industry is maturing even more, maybe this is something we should start to talk about as an industry.
So, I want to go a little bit further down the road of development. We talked about expressions, we've talked about scripts, we've talked about extensions. But then there's the next level, which I guess is a full plugin. If you're Video Copilot and you want to make Element 3D, you're not doing that with HTML and JavaScript. That's a different beast. I'm curious if you've thought about ever getting into that. I don't even know. What does that take? What programming language are you going to then? What kind of skills does that require?
Zack Lovatt: So, yeah. Plugins are a whole different beast. They are so much more complicated because a script is essentially automation of interface things. Things you can do by hand, you can do it with a script. A plugin adds to After Effects. There's plugins that definitely add in visual stuff like a glow plugin, like an effect. There are plugins like Element, which have their own whole interface. It's like a whole world inside of this plugin that they've built.
Then there's other plugins like, Video Copilot years ago had a Copy to Clipboard plugin, which you can File, I think Export, Copy to Clipboard and it copies your current frame to clipboard. I think Rowbyte just released one as well. These are still plugins, but they're not effects. They're adding things into After Effects.
So, the realm of possibility with these is so far beyond what it is with scripts. But I don't necessarily think that it's a step above. I think it's a different avenue for extending and enhancing After Effects. From my understanding, this is a completely different skill set, absolutely.
Joey Korenman: I'm assuming it's you have to write the code in C or some much more robust language.
Zack Lovatt: It is. You are writing in, I believe it's C++. That is something I have zero familiarity with. Maybe at some point, I'd love to explore this as another avenue at some point. However, for now, I'm really enjoying where my time is being spent and the passive income I'm able to generate with it. But yeah. The plugins are a whole other world of C++ programming and dealing with memory and drawing image buffers and all sorts of fun, complicated things.
Joey Korenman: Yeah, it's got to be quite a learning curve. So, I got a couple more questions. Now, you've got Explode Shape Layers, then you've got Flow. Those are the two big winners. You've got other smaller ones that you've developed. Do you and Tom, for example, let's talk about Flow. Are you guys listening to the feedback from the community? Are you planning on developing this further? Is Flow 2.0 going to come out in a year or two? What sort of plans do you have for continuing to develop tools that are already released?
Zack Lovatt: A ton of plans. It's the same thing as Adobe. Adobe, or the After Effects team, they don't really publicize what the feature requests are, problem being if a lot of people get attached to it, you'll feel disappointed if something doesn't happen, despite you're not exposed to what's going on behind the scenes.
We have every single piece of feedback Flow gets, positive or negative, we keep track of. We have a list of things that have been requested, we have things that people are unhappy with. We record analytics of usage that you can opt in to or out of when you license Flow. So, we can see what features people are using, what features people aren't using. This will definitely inform future development.
So, we have a huge list of ideas and things to grow. But at this moment, we haven't started discussing Flow 2.0. We've decided to let Flow sit for a bit. We both have other products and other projects we want to focus on and then we'll get back to Flow. We need some time away from Flow for a bit. It was a huge endeavor and a lot of these features require rebuilding it from the ground up.
This Cubic-Bezier.com website that we've used for the base, it's great. But there are limitations we're finding. A big request is, "What about multiple keys instead of just two?" You can't do that with this engine. We have so many ideas for maybe in a few months, just not quite yet.
Joey Korenman: I got you. You need a little distance. You need to catch up on your sleep. I get it, I get it. Yeah. I can't imagine how much work it took to develop that. I know the community is very thankful. I use it literally on everything now. So, are there any other tools you're currently working on, anything we should look out for in the near future, or do you like to be cryptic about that stuff?
Zack Lovatt: I try to be cryptic.
Joey Korenman: That's good. That's smart.
Zack Lovatt: I have been working on a ground up rebuild of Explode Shape Layers on and off for a while. Explode Shape Layers is great. It is a stable seller. That's definitely something to consider is that if something is earning money regularly, is it worth putting the time in to keep working on that right now as opposed to opening up a new avenue of income? This is a business. It's not just something I'm doing on the side. So, where is my time best being spent?
But at this point, ESL is earning me between one and two grand a month. So, maybe I can get another product selling instead of going back to improve it. But thus said, I am working on a complete rebuild of Explode Shape Layers that will be infinitely faster. I am so frustrated with how slow it is. There's a few recurring bugs that I've squashed and I just need to integrate and take care of.
But new ESL is coming down the road. I have, I think, five or six half finished tools that I will be selling. It's hard. I recently moved to LA. So, I could spend the time just staying at home and writing scripts, but I'm also trying to contact studios here, get some work with the local companies, and get more established in the city before becoming a hermit and just releasing tools all day. So, it's finding this balance between a day job and the script business.
Joey Korenman: You're a mini software company. It's interesting, and I don't mean this in a bad way, but you're making the same decisions that the Adobe team has to decided. "We've got After Effects, it sells really well, there's no competitor. Do we take the time to completely redo the way shape layers works so that it's better for motion designers or do we create character animator?" It's like they're making those same decisions. That was a terrible example, by the way. I hope I didn't insult you.
Zack Lovatt: That was a little unfair. But it's the same idea. It's not to say that I'm riding on the coattails of Flow and ESL and they'll never be updated. It's just more, they're doing well and before more time is spent, I'd love to hear more feedback. Every single sale that comes in, I look at every sale and I see who's buying it. If somebody buys 10 copies, and this happens, if a company buys 10 copies of Flow or ESL or something, I will see who that is and try to think about, "Okay, why does this company need this many licenses? What are they going for? What do they need?"
Every comment on the aescripts.com store page, every support ticket, every tweet, I read as much as I can about all of these products because it all informs where it goes. So, I understand ESL hasn't been updated in a while, apart from small bug fixes. But it will be there.
It's just I've also been working on this other, for example, this other tool on and off for about a year. I would love to release it, or something else that's half finished. It's just finding the time to finish things. Right now, my big push at the time of this recording is finishing what's on my plate before revisiting. But it will definitely happen. I've got plans for everything I've released on how to improve it and upgrade it, and they will happen as soon as I get a chance.
Joey Korenman: I love it. I love it, man. Dude, this was so insightful for me. I know everyone listening probably had their minds just cracked open. I really had no idea how deep just the third party add-on market for our industry has become. There's the big dogs you can think of, the Trapcodes and the Red Giants and companies like that, but even someone like you. Your products have done six figures of revenue in the past few years. That is nothing to sneeze at and it's only going to get better.
So, I hope a lot of people listening are inspired by you, Zack, and want to start jumping in and trying to scratch their own itch or see what the market needs and build tools to solve those problems. So, I want to say thank you so much for your time, your expertise.
Zack Lovatt: For sure. Thanks.
Joey Korenman: Anything you want to add? Anywhere people can find out about you and your tools?
Zack Lovatt: Yeah. So, my website is ZackLovatt.com. aescripts.com, just search up my name. I'm sure you'll find it. But also, as I mentioned before, I could not have done any of this, and I don't know about any After Effects third party developer who could do anything without the community. There is a great website. I'm biased. They're called AEnhancers.com, which [inaudible 01:06:19] would be there. Last year, I took over ownership of it.
Some of the posts here, they'll say, "Posted 11 years ago" or "13 years ago." This is an old standby of After Effects script and expression development and questions and answers. It's not hugely active, but it's there as a resource. On top of it, for scripting specifically, Adobe released this scripting guide for After Effects, which go through all of the scripting commands, how to use them, stuff like Add Solid. What does that mean? How do you use that?
However, it hasn't been updated since CS6. So, the link will be in the comments of Docs, D-O-C-S, documentation, .AEnhancers.com. There is an online, searchable, up to date scripting guide for After Effects all the way up to 14.0 and it'll keep being updated. This is mostly the work of Rune Gangsø. I've tried to help out a bit, but we're trying to build and keep these online resources there because that's how I learned. I have found scripts, take them apart, play with expressions, see how it all works together.
That's something I'm very big on: the community and giving back to it and working with it. I started up motion meetups with a partner in Toronto when I lived there in Montreal. I'm working with someone here in LA as well to get these regular meetups going. Community helps everything.
Joey Korenman: That's amazing, man. Wow. Saved the best resources until the very last minute of the podcast. Way to go, Joey. Way to go. I probably should have asked you that. But listen, man. Thank you so much for everything you're doing to help the community and all the knowledge that you just unleashed on everybody in this interview. We will definitely have to have you back on, Zack. I really appreciate your time.
You can find Zack's scripts at aescripts.com and we'll have links to Flow and Explode Shape Layers in the show notes, two of my absolute favorite scripts. If you haven't already, sign up for a free student account on our site so you can get our Motion Mondays newsletter and exclusive discounts on software that we send out occasionally.
We have a lot of partners who love to hook our students up with discounts on services and tools just like the ones Zack creates. So, head to SchoolofMotion.com and you'll be getting hooked up in no time. That's it for this episode. Thank you so much for listening. You rock. Until next time.