The last month or so I've been working on an After Effects animation for NAB, it has been a fun experience because I don't typically get to use AE "for real" anymore and I miss it.

Anyway, I thought some of you might find the process interesting. Note, I use a plug-in by a company called Automatic Duck during this process, but this is not meant to be an advertisement, if anything this is going to be an advertisement for Jeff Almasol!

My goal was to create a looping "demo" video to play on a plasma screen during NAB. It is basically screenshots of the products in action, but hopefully half-interesting to look at. The specs were that the screen was going to be 1280x768, the comp would be 1280x720 and would play at 24fps. There would be a "design" around the screenshots, the design would inform us of which product was being demoed in the window, and another portion of the screen would contain text about what specific step was being shown in the window. Just so you know, the window was 911x512.

Screenshots were done at 1920x1200 using Snapz Pro X 2 on the Mac (set to 20fps) and Camtasia Studio on Windows (no fps setting that I know of in Camtasia, so I got what I got).

I brought my raw screen capture files into After Effects (ignoring alpha) and rendered them out twice-- once at 1920x1200 24fps uncompressed* and also as NTSC DV with the large screengrab scaled to fit inside the DV frame. *The reason I went through the step of creating this uncompressed version of the movie was because AE was giving me strange results when scrubbing through and previewing the original Snapz Pro and Camtasia files.

The DV versions were brought into Final Cut Pro where I edited the screen captures together, cut out bits, sped up bits-- you know, pacing stuff. I also added sequence markers where I wanted the text to change on screen as we went from one step to another. The text for these steps was typed into a text file, one line per step.

I edited several movies, one or two for each product (a total of six products were to be demoed in this looping movie), and as each movie was completed I would export it from FCP as an XML 1.0 file. This XML file was then imported into After Effects using... Wait for it... Pro Import AE.

The result was a DV comp pointing to DV QuickTime movies, each FCP clip on its own layer in the AE comp and a transparent layer on the top containing markers, the markers having come from the FCP sequence markers.

So far so good. The next step was to "up-res" the comp and footage.

I changed the DV comp's settings so it was 1244x700 (for a reason to be explained later I needed a comp larger than 911x512 for my edited footage), square pixels, 24fps. The Uncompressed 1920x1200 24fps versions of the screengrabs were imported into AE. As you might guess, I replaced the source of each layer in the comp with its 1920x1200 cousin (hint: Select layer(s) in the timeline, then the new footage item in the project window and press Command-Option-/ or Control-Alt-/).

The movie above shows how you can replace a layer's footage by dragging the new footage item into the comp while holding down the Option or Alt key.

Finally I added a 922x512 solid to the comp that acted as an inverted-alpha track matte for a comp-size black solid. This allowed me to see the window through which we'd ultimately see the screenshots.

Time to animate. Basically using hold keyframes and easing I animated Anchor Point and Scale for each layer, zooming in and out, panning around, you know the drill.

Animated screen captures can look really good, they look even better when animated in a 3D space. Each layer was made a 3D layer then I used an expression on each layer's orientation parameter so it would auto-set itself based on where "the camera", the anchor point, was pointing. If we were all the way to the left, the layer would pivot a certain way, if we went up, it pivoted another way, it really looked cool.

The Expression:

x = transform.anchorPoint[0];
y= transform.anchorPoint[1];
x1 = linear(y, 200, 1000, 10, -10);
y1 = linear(x, 500, 1500, -10, 10);

[x1,y1,0]

The expression essentially tells After Effects: When the x value of the Anchor Point is 500 or less, set the Y orientation to -10, if the Anchor Point's X value is 1500 or greater, the Y orientation is 10, and any values in between get interpolated. Similarly, as the Anchor Point's Y value moves between 200 and 1000, the X Orientation will move between 10 and -10.

I ended up precomping each separate layer in the edit comp in order to avoid 3D intersection problems during dissolves between layers (Thanks to Dan Ebberts and vidpat for the Precomp to Duration script), and this is why I upresed my edit comps larger than the final footage window-- I needed extra room on the sides for the layer tilting.

The screen-grab animation comps were added to the main 1280x720 comp which also contained the Photoshop layer elements that formed the outer design of the display.

As mentioned earlier, one of the things I did in FCP was add sequence markers at the points where I wanted the informative text to change. It was easy to add them in FCP, as well as give them names that hinted at what the longer text would say in the AE comp. When Pro Import AE imported the comp from FCP the sequence markers were created in a solid layer.

Next I created my text layer, giving it the style I wanted my text to have. I used the text tool to drag a bounding box, so that longer text would wrap around.

Using a great script from Jeff Almasol I was next able to copy the markers from the solid layer that Pro Import AE created to the text layer. These text layer markers were important-- they drove another script from Jeff Almasol, one that read a text file and mapped each line of text to the text layer so that at each marker the text would change.

The Map Text File to Markers script adds hold keyframes in the text source stream, so as you play the comp the text will cut from one line to the next. I wanted the text to fade out before it changed, then fade up after it changed. Enter another Jeff Almasol script, Rampart. This script added opacity keyframes to my layer to fade it out before a marker then fade it up after.

These scripts for creating and animating my text saved me so much time, and they really showed me how useful scripting in AE is. I still can't write a script of my own, but there are many available online and writers like Jeff Almasol are great resources for custom needs.

Some final tweaking here and there and then it came time to render. My comp was nearly 20 minutes long, 1280x720 24fps and on my Dual 2.0 G5 with 3GB of RAM the render took 29 hours! The next day I reviewed the animation, took notes on what needed to be fixed/changed and then after fixing these things I rendered again but this time using Nucleo from Gridiron Software. The Nucleo render completed in 21 hours. I was very impressed!


click here to see excerpt of animation