2021-01-01No Comments

Quick look at the Expressions Flyout Menu

Recently, School of Motion asked if I'd write a series of articles exploring every single category in After Effects' Expressions Flyout Menu.

That turned into the 5-part article series Everything About Expressions You Didn't Know.

Read more

2019-11-21No Comments

Saving Expressions for Later

I often see folks asking about ways to store expressions within After Effects; I wanted to create a little writeup of a few commercial systems out there.

Of course there are ways to store them offline, but sometimes it's nice to have a product to handle it all for ya.

Now, if these off-the-shelf tools don't fit your need, feel free to contact me for a custom solution 😉

Read more

2019-02-071 Comment

AE Expressions Resources

Similar to my post on scripting, this is intended to be a roundup of a bunch of resources for learning javascript-based After Effects expressions. I'm focusing less on specific tutorials and more on broader-picture materials.

Like scripting, AE expressions are based on Javascript. However, as of AE 16.0+ (CC2019), AE now has a new expression engine that lets you use modern Javascript, not just the ancient ExtendScript system!

Read more

2018-05-191 Comment

Visual Studio Code Stuff

At this point, the majority of my work is in developing scripts for Adobe After Effects. The language used here (Extendscript) is a fork of ES3 from 1999. It's old. This means that we're limited to very, very vanilla javascript when we develop, with polyfills or helper libraries taking a lot of the headache out of this process. Thankfully, we can use Visual Studio Code ("vscode") to help relieve some of the pain.

I use Visual Studio Code as my one and only code editor. Apart from providing a wonderful development experience, you can sort of trick it into using some modern functionality when you write, even though it's not quite expecting it (and there are a few hiccups).

Sometimes I get asked about my preferred extensions & settings, and so! Here is more or less how I use it. The writeups, settings and extensions listed below are solely a reflection of what I currently work on as of the time of this article; as I grow and evolve, so do my needs and preferences.

Read more

2015-08-032 Comments

Expression Preset: Point on a Circle

In a throwback to Points Along A Line from several years back, here's a quick expression for ya-- "Point on a Circle." Straightforward, yeah? Yeah.

Read more

2014-02-189 Comments

Preset: linear() – Syncing Precomp Audio to Main

OK, so, you're working in After Effects on an amazing infographic piece slated to become the best thing out there since that Stuxnet video. You've got your master comp with the audio bed in place, and have a series of precomps w/ audio & graphics sequenced and arranged together in your main composition.

You're working away on your project, have everything in each precomp chapter timed out and synced properly with the audio, and then... your client wants to re-record the VO. Or add in some copy. Or needs an alternate language version.

Alright, that's cool, we'll just drop in the new audio, slide our precomp over in time to where it should now be, open it up and do a preview to ensure everything's aligned properly. Except– the audio clip in the precomp is now out of sync with the master, as we've time-shifted the entire thing!

Read more

2013-05-06No Comments

Explode Shape Layers & Trim Comp to Contents

Hey, folks!

Though this has up until now been a strictly expression-based blog, I'd like to let you guys know about a cool direction I'm branching out into these days.

After I returned from NAB some couple weeks back had a hankering to try something new, dip my toes elsewhere in the AE/motion graphics world. So, a couple weeks ago I solicited a few ideas from friends and dove deep into the world of scripting.

At this point, I've got two scripts up on aescripts+aeplugins, and I'd like to talk about 'em a little bit here.

Read more

2013-04-1611 Comments

Preset: Chunky Text Scrolling

You're sitting at home, watching some action movie in which our handsome Hollywood hero sits down at a computer, faced with a terminal-esque window and has to ENTER PASSWORD in order to be rewarded with the exalted, famed and fabled "ACCESS GRANTED." Brilliant, right? Oscar material, right here.

Well, something I notice so very often in these screens is that the animator just keyframes the y-position and calls it a day, whereas in any console I've seen, the text always jumps up in little steps of equal height-- so I sought to recreate that for the film I was working on at the time.

Read more

2012-10-2029 Comments

split() – SourceText from Comp Name

You're working on some lower thirds, and you've got your ass-kickin', award-contendin' design and animation all worked out and you're riding your keyframe high only to realize... shit. You've got versioning to do. A dozen names and titles, maybe, or region/time zone splits-- whatever. You've done your pretty-making, and now the grunt work comes in.

Open a comp, change the text layer sourcetext, change the other text layer, duplicate the comp, open it up, change the text layer, change the other text layer, duplicate the comp... Yeah, I'd get tired of it too.

Instead of opening any comp (past initial setup), you can change all the text from your Project Panel and have it propagate into each comp automagically using a handy expression that simplifies the process. Let's hit it.

Read more

2012-09-10No Comments

Preset: Pose Flipping Sprites

I was recently working on a title sequence for an animated children's film created in a storybook style (in the spirit of Shrek), using sprite-style pose flipping.

To fit the style, all of the characters were animated as cutouts/puppets, with several poses for each character/prop. From there, I had to animate the scenes, which included finding an efficient way to cycle between distinct poses, creating the illusion of movement.

Read more

Zack Lovatt focuses on toolkitting, building custom studio pipelines, expression rigging projects, and creating data-driven animation workflows.