Archive for After Effects

Interface Gripes: Is your After Effects document dirty?

After Effects 7 has debuted to decidedly mixed reviews at work. While most folks are excited about the new features, there is a general unease with the new interface. It’s as if we’re dealing with a new Adobe OS. I think as we get a few projects under our belt the unease will dissipate a bit especially since we have such a history with the application and it is strong in features and implementation. My personal opinion is that user feedback will moderate the interface in future versions and I want to point out one example of a platform specific UI cue that is an example of why you might want to not make an application too uni-platform.

A dirty document in OS X is a document with unsaved changes. There is a clear way to indicate this. Here are a few examples in some Adobe apps.

In Photoshop, a document before making a change

A clean document in Adobe Photoshop

In Photoshop, after making a change

A dirty document in Adobe Photoshop

In Illustrator, a document before making a change

A clean document in Adobe Illustrator

In Illustrator, after making a change

A dirty document in Adobe Illustrator

Notice the filled in bubble on the left? Now let’s do the same thing in After Effects.

In After Effects, a document before making a change

A clean document in Adobe After Effects

In After Effects, after, umm, making a change

A dirty document in Adobe After Effects

In After Effects we lose an OS X interface cue. My guess, is this is an oversight from creating the interface with non-standard GUI widgets and that’ll get fixed in a later verson. But it is a great example of what happens when you try to go it alone in interface land, especially with Mac users who are a notoriously finicky lot. So, when I talk to Adobe developers, I’ll be sure to put in my voice for letting each platform retain its own individual personality.

btw…I am aware of the asterisk next to the file name cue, but this isn’t an either/or situation, so many interface cues are practically subliminal, and if a quick glance to the left corner doesn’t give me what I’m looking for, I’ll just think that it isn’t Mac like without really knowing why.

Comments (3)

Scripting Basics: pulling random values from within a defined range in After Effects

A common scripting requirement is to pull random values from within a defined range. For example, in the block dissolve transition the individual blocks of video are extracted from the video in a random order. Let’s revisit our float away video wall script and customize it to work in the same manner as a block dissolve but with a little more flair. We will scale the individual blocks up instead of just transitioning on and off.

Read the rest of this entry »

Comments off

Script to automate rigging a camera in After Effects

final update July 15, 2006

Added a new Point of Interest expression instead of dealing with the Auto-Orient dialog as detailed in the comments.

second update July 14, 2006

Chris Prosser suggested a decent workaround of using app.executeCommand(app.findMenuCommandId(”Auto-Orient…”)) to auto-launch the Auto Orient dialog. Which in my opinion makes the script pretty usable, even with the slider range problem. Right now, I’m launching a dialog that reads “Auto Camera Rig” needs to have Auto-Orient set to “Off”, please set it in the following dialog and then immediately launching the Auto-Orient dialog. I’d be interested in feedback on whether I should leave the two dialog boxes for context or use a saveSetting() preference to give the user a Never Show Again option as well as Ok. Power users could always just comment out the alert line. Scripting UI’s are always difficult for me, I think I know how I’d handle it in a regular mac app, but I’m not so sure how to handle it here.

update July 14, 2006

Stu Maschwitz pointed out some deficiencies with the original version of this script and provided a sample project of a much better implementation of a rigged camera project. Unfortunately, there seem to be a couple of show stoppers for recreating his project via scripting and I’d love some feedback if anybody has worked through these issues, and if not I’ll send them off to The first is the addCamera() method assumes a point of interest in its constructor. That seems to make the UI equivalent of layer:transform:Auto Orient:Off impossible. I’ve tried setting the property to Null, etc. with no success. Interestingly, there is a useful assistant to set the property. Secondly, I can’t seem to set the slider control range via scripting. I can set the value but not the range so this may be less of a show stopper than the first. I’ve uploaded the changes that reflect Stu’s sample project, so if you find running the script then turning Auto orient off (command-option 0, on the Mac..control-alt 0, windows? I don’t have a Windows box handy), and can live with the slider range limitation, then great. Send any fixes my way and I’ll incorporate them. I think I see why nobody took this one on .

I was doing a bit of research and ran across Kyle Sim’s request to automate his process of rigging an After Effects camera on aenhancers and the adobe forums. Seemed like a really useful script and as near as I can tell nobody has tackled it, so I decided to give it a shot.

Usage is really straight forward, copy the script to After Effects:Scripts and run it from the scripts menu with an active Comp selected. I’m not doing any layer name checking because I think it’s possible that you might want more than one camera and null, although we’d have to adjust the expressions accordingly.

When I run the script my effect window for the Mover Null looks like this and it does a great job of making the camera move really straight forward.

Null Effect Controls from automated camera rig script for After Effects

You’ll have to thank Kyle or whoever set up the original expressions for the idea, this just automates the creation of the rig.

Update 04.21.2007

Paul Tuersley kindly updated this script with some cool new features.

I've attached an update to your db_autoCameraRig script. 
I've added a  check for AE8 which then automatically 
turns of Auto-Orient. 
I also  streamlined the bit that sets  the position / POI 

Here’s Paul’s new script, and I’ve left the original up as a legacy 1.0 version in case we get any problems out in the field.
JSX script With Paul’s Improvements
Original Source JSX script
Update 06.10.2007
Paul kindly sent me additonal updates to his modification of the script.
Paul writes…

I’ve tweaked how this version deals with the Auto-Orient issue, which
you may want to check out. In AE6.5 it puts up an alert to tell you
to turn Auto-Orient off, in AE7 it does the same and then opens the
Auto-Orient dialog and in AE8 it turns Auto-Orient off automatically.
I also added expressions to all the properties you shouldn’t alter,
effectively locking them.

Thanks Paul.

Paul’s lates modifications – JSX script in a zip archive

Comments (19)

How to make a “Float Away Video Wall” in After Effects via scripting

I was watching HBO a bit ago and noticed a fun promo where the playing video breaks into a grid and slowly floats away out of frame (Anybody familiar with the work know where I can find a link to a web video? update: 08-07-2006 Greg Grusby correctly pointed me to this page from Shilo which makes it clear that my script is just a tech demo <grin>.). Although I’m not a fan of duplicating a concept just to mimic it technically, I thought it might be fun to work through the steps necessary to pull off something similar via After Effects scripting.

Update July 12, 2006

Thanks to Jeff Almasol for the tips about Alpha Add and Null names in the comments below. I wasn’t aware of it, but it looks like his script rd_Slicer addressed a lot of this how-to without the float away expression in a really nice package. Jeff’s scripts and resources at redefinery are must see.

Read the rest of this entry »

Comments (9)

A line chart script for After Effects

the Line Chart script UI in After Effects

This one is a little rough around the edges, but I wanted to get it out there so I can get some feedback and feature requests from readers.

Read the rest of this entry »

Comments (5)

How to use a spreadsheet to generate Lower Thirds, Slates, Titles, etc. in After Effects

UPDATE 09.17.2010 Updated for AE CS5
UPDATE 08.16.2007 Interim solution for AE CS3, see details at the end of this post.
I’ve been posting for a while about integrating databases into our workflow. A good database and workflow architecture can really maximize your productivity. But the bottom line is that most collaborative work gets done in a piecemeal fashion either by email, cut and paste or sending documents back and forth to clients and collaborators. I’m sure you’ve run into a situation where you find your self cutting and pasting between an Excel document into a text field while making Lower Thirds, Slates, Titles or other text-centric project. In this article I’ll explain a workflow to automate creating Lower Thirds in After Effects and I’ll follow up with an article on how to do the same thing in Final Cut Pro shortly.

Read the rest of this entry »

Comments (72)

When you apply a filter can make a big difference

I was browsing around Apple’s Tech Note website when I ran into this technote. Apply the Broadcast Safe filter last in Final Cut Pro. The article discusses the importance of applying the Broadcast Safe last in a filter stack to insure that you really are limiting the colors in a sequence to broadcast safe colors.

The idea of a pipeline is one of the trickier ideas to master for new users of image processing applications. In image processing each new operation like a blur, composite operation or color adjustment is applied and then passed to the next operation. In the example that Apple gives above, a Proc Amp operation applied late in the pipeline could boost the color levels outside of a safe range even though Broadcast Safe filter was applied in the stack. I’ve often found when you’ve got a visually unexpected output, moving the filter arrangement will restore some sanity to the expected output.

Additionally, as applications like After Effects transition to 32 bit float environments you’ll see additions to pipelines like HDR Compander which can compress and decompress the pixel pipeline to work with 8 and 16bit effects.

It is important to get a strong conceptual understanding of core concepts like image processing pipelines. These ideas become even more important with programs moving to 32 bit float color and using pixel-level operations via the GPU like in Apple’s Core Image. Finally, I really recommend that you keep up with what Stu Maschwitz posts at Prolost. He writes about really hard tech like color space and image processing but with attention to form and artistry I can only aspire to.

Comments (1)

Adding a User-Agent to our After Effects Socket request

One of the things I noticed while experimenting with the After Effects Socket object was that my Apache Server logs showed the User-Agent for my requests as “_” which I think is the Apache equivalent of null. While not really a problem while we are experimenting, it’s always a good idea to be a good citizen of the net as a developer. If we were to ingest a web service with the After Effects socket like so it would be the equivalent of knocking on a door with a mask on.

I didn’t see any reference to User-Agent in the After Effects Scripting Guide so I dug around a bit. User-Agent is simply a line in the GET or POST http request. Since we are crafting our http request line by line we can just add a reference to our project like so…

webConnect.write('GET /socketDemo/sampleProject.json HTTP/1.0  \nUser-Agent: OurFantasticAfterEffectsWebService(\n\n'); 

What might be more common is an internal web service. In that case we might use system.machineName as the User-Agent like so…

var machine = system.machineName;
var request = "GET /socketDemo/sampleProject.json HTTP/1.0  \nUser-Agent: " + machine + "\n\n";

We could then use our web server logs to trace which internal machine requested a particular service at a particular time.

Problem solved. I haven’t done a lot of work with raw HTTP requests and there is a ton of stuff in the HTTP spec so I know I’ll be doing some more reading as I dig deeper into using After Effects like this.

Comments (1)

Using the After Effects Socket Object and JSON to dynamically populate a Drop-Down List

In my last post I talked about adding project and scene information to our timestamp script. We’ve covered using system.callSystem() as a gateway to information outside of After Effects. This time we are going to use After Effects built in Socket object to dynamically populate a DropDown list for our script. We’ll also pull JSON out of our old bag of tricks.

Read the rest of this entry »

Comments (8)

A timestamp script for After Effects

Why a timestamp script?

With a timestamp you can do things like…

  • Mark the timeline necessary from animatic to finished spot.
  • Do version tracking and timelines for alternate takes.
  • Follow job tracking info for project management and billing.

The first version of this script will be a simple date and time timestamp. We’ll follow up with demos on how to connect this script to databases for project and scene information to help with project management.

Windows Timestamp UI
AE Comp With Time Stamp Applied

(notes)Due to limitations in the accessibility of formatting options for Text Layers via scripting the first version of this script only uses a left side orientation.

Source JSX script
Downloadable Zip Version

Comments off

« Newer Posts · Older Posts »