Archive for the ‘Scripting’ Category

AfterFX Text Search and Replace script released

Friday, June 20th, 2008

One of those staple tools that comes in handy time and again, the whole project search and replace. This script works through all text layers in all comps of your AE project. I have been using this to speed up reversioning of text and graphic screens for different languages.

Download from the scripts page.

Excel to ExtendScript Bridge released

Thursday, January 24th, 2008

A common request over on AEnhancers.com is how to read data into Adobe Scripts from Excel spreadsheets. For a long time there has been no satisfactory answer; the standard advice being to export and read-in via a delimited text file (CSV). In an attempt to improve this situation, I have created a tool, part Adobe Script, part Java, to enable communication between user scripts and Excel.

This tool is functional but in its early revisions so I encourage you to try it out and welcome any suggestions or bug reports you may have. Note that the documentation on the project page is also included in the download for ease of reading.

Check it out here

‘GapFinder’ utility released

Thursday, November 15th, 2007

I often face the situation where a numbered sequence of files is being generated or delivered, either from a design team or computer renderfarm. Where they are not arriving in order, identifying which files are missing can be a lengthy task and difficult to automate. So, I developed a small GUI based program to do it. ‘GapFinder’ analyses a folder of numbered files and lists apparent ommissions in an easy to read format.

‘GapFinder’ takes the form of an executable JAR file and is cross-platform. Get it here:

GapFinder.jar (<10kb)

Undocumented AE Scripting Commands

Monday, September 3rd, 2007

Today I learned of two undocumented commands in After Effects’ Scripting which have huge implications. It is well known that not all of After Effects’ features are presented by the ExtendScript API, leading to many limitations, such as the inability to create a layer mask via code. This can be largely overcome with nab’s discovery of two commands (taken from this post):

app.findMenuCommandId(”<GUI command name>“) ;

app.executeCommand(<commandId>);

The use of these should be self explanatory, but their existence begs two questions: firstly why they exist, and secondly why are they undocumented? My guess is that they are an ‘in development’ feature used by Adobe programmers to test the integration of scripting before the API was complete.

Since the API is still incomplete these commands remain very useful

There is a suggestion on the source thread that these command may be unreliable under After Effects CS3, which I am unable to test at this time. This could be down to the reporter trying to directly use the same command code ID’s as reported by After Effects 7.0. Since these numeric ID’s are internal references and probably vary between versions, I would suggest always nesting these commands in conjunction, like so:

app.executeCommand(app.findMenuCommand(”<GUI Command Name>“));