Animating to audio is an important part of working inside of After Effects. But it can become messy very quickly. As soon as you move things around you have to manually resynchronize everything. Here’s a solution that I’ve been using for a couple of years that works very well.

Disclaimer first, I know I found this expression somewhere at some point and saved it as an animation preset, but I have no idea where I found it. After some REsearch I was not able to find it. So if you happen to know where it comes from, please let me know in the comments and I will gladly give credit where its due.

How it works

First level compositions

Let’s say you have your main composition, which contains your animation. Inside of it are many compositions and each one is a scene. These are your first level compositions. In your main composition, place the composition you want synced. It might be a composition containing your voice-over. It may also contain a video. Whatever will work since we’re using time-remapping. For our example we’ll use # Main > Voice over.

Assuming that your main composition is called # Main (see A composition naming system for After Effects for why I think it should), you can just time-remap the composition you want synchronized and add this expression to the time-remap property.

parentComp = comp("# Main");

compStartTimeInParent = parentComp.layer(thisComp.name).startTime;
audioStartTimeInParent = parentComp.layer(thisLayer.name).startTime;
fullStartTime = this.startTime;
fullEndTime = this.source.duration+startTime;

linear(time, fullStartTime, fullEndTime, fullStartTime+compStartTimeInParent-audioStartTimeInParent, fullEndTime+compStartTimeInParent-audioStartTimeInParent)

Now replace the parentComp variable if your composition is named differently.

This assumes your synchronized composition is not time-remapped inside the parent (# Main) composition. It should be anyway. The one placed in # Main is your guide composition. The one that will drive the ones placed inside your other compositions. When using a time-remapped parent, use the following technique.

Second level compositions

Your second level compositions are the ones placed inside the first level compositions. As in the hierarchy # Main > ## Scene 1 > ### Shot 1

## Scene 1 would be first level and ### Shot 1 would be second level. Again, refer to A composition naming system for After Effects if this naming system makes no sense to you.

For second level compositions to have a synchronized compositions, they have to refer a time-remapped parent composition. This can get problematic when reusing a composition inside many parents, but it will work when using a single child-parent hierarchy.

Use the same synchronized # Main > Voice over composition, time-remap it, and add this expression to its Time Remap property:

parentComp = comp("# Main > ## Scene 1");

compStartTimeInParent = parentComp.layer(thisComp.name).startTime;

parentComp.layer(thisLayer.name).timeRemap.valueAtTime(time + compStartTimeInParent)

And simply replace the parentComp variable.

For this to work, the targeted parent composition has to contain # Main > Voice over. The name of the composition is just an example, don’t worry about it. It is dynamic. And the targeted parent composition has to be time-remapped.

If you don’t care about setting those expressions yourself every time your want a layer synced, I get you. Presets do make things faster. Here’s links to presets for both setups:

  • First level compositions (preset named Sync Composition.ffx) Download
  • Second level compositions (preset named Sync Composition Time Remapped.ffx) Download

This thing has saved me countless hours over the years so I thought that’d make sense to share. Let me know if you have any questions of if you have another approach to this issue.

After Effect’s Fill effect is a very useful effect. If you have never used you probably should look into it. It’s the simplest effect. It just applies a color onto a layer. Basic stuff.

The weird thing with this effect is that its opacity property acts the same as with the Transform effect. It just bypasses the layer’s opacity. I’ve thought long and hard about why the After Effects team could’ve made that decision and never got to any conclusion. This feels like a bug that was called a feature but let’s give them the benefit of the doubt.

CC Composite is the solution

Now, there is a somewhat simple, yet not evident, way to fix this. The magic of CC Composite, a lesser-known effect that allows to composite your initial layer in your layer’s effects stack.

(more…)

A composition naming system for After Effects

Written on 24 November 2016, 12:15pm under Techniques

Tagged with: ,

First, I want to stress that I think that, to many After Effects users, organization and methodology is the most underestimated pain point and undervalued aptitude. These do not make the coolest tutorials, but developing a structure is what makes working in After Effects enjoyable.

Organization isn’t fun, but it allows fun to blossom

I am a little obsessive about order and organization. In the past, always searching for a composition in a stack of Pre-comp X used to take a lot of mental energy away from me. It would render my work process dull and inflexible. Coming from a programming background, I knew I needed more structure. I needed a system.

I have worked with many of animators over the years and came to the conclusion that there are probably as many ways to organize an After Effects file as there are After Effects licenses. Some people have folders hierarchy into which they classify their compositions; some prefer color codes and some just straight up improvise on each and every new project.

After some unsuccessful research for a system that would fit my work, I experimented various classifying and naming techniques. Today, after about three years of tweaking and using this system on more than 100 projects, I feel confident about its validity. Of course, usual disclaimer, this might not work as is for everybody. This article is very opinionated and takes into account only my personal use cases, so take it with a grain of salt and feel free to adapt it to your needs.

I have written a bit about file naming in a previous article. This one will especially tackle the compositions naming inside of a project.

(more…)

After Effects Shortcuts Cheat Sheet

Written on 17 June 2014, 04:55am under Resources

Tagged with:

After Effects has lots of shortcuts. Having them all in the same place makes it easier to find one in particular or to just learn those available.

This list has been generated from the shortcut file content which can be modified as explained in this article.

These are shortcuts for After Effects CC on OS X, but should be fairly similar on previous version or on windows.

(more…)

Expressions are a really powerful feature in After Effects. It can help you improve the quality and fluidity of your animation but it can also help you organize your project. Expressions if used well, gives you the opportunity to create yourself a custom dashboard on which you can control various global variables.

Create a controller

It is a good practice to keep a controller layer in a separate stand-alone composition. You will often see such a thing when you purchase items from marketplaces such as VideoHive.

But even when not selling your source files, you should act as if. Be it for a co-worker taking over your project or just the future you, who won’t enjoy searching through a messy compositions structure.

(more…)

How to use checkbox expressions in After Effects

Written on 15 September 2013, 01:42pm under Quick Tips

Tagged with: ,

You will often find yourself toggling the visibility of layers in After Effects. This can get really cumbersome and hazardous to click all those little eye icons in deeply nested compositions. Having a controller layer on top of everything with some checkbox expressions can really help organizing everything out.

Select the layer you’d want to toggle and add this expression in its opacity property.

(comp("the-comp-name").layer("the-layer-name").effect("the-checkbox-effect")("Checkbox") == 1 ? value : 0)

This layer will then show when the checkbox is checked. To invert the effect, just invert the value and the 0.

Heads up!

Most layers, when hidden, will not add time to renders and RAM Previews although sometimes, mostly when the hidden layer has expressions, it will still be processed when rendering.

Using the After Effects command line render

Written on 11 September 2013, 03:35am under Techniques

Tagged with: ,

Adobe provides us some command line interface to start renders without having to start After Effects (here’s the documentation). This can be really useful when using multiple computers on remote desktops or just to give you the ability to alt+tab, start your render and keep on working. It offers a lot of options and possibilities. We won’t go over all of them, but we’ll instead focus on creating bash aliases to execute what we would probably mostly want. Don’t worry if you’ve never used the command line, we’ll go over all there is to know.

(more…)