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.
Archive for June, 2006
Apple released Pro Application Update 2006-01 this morning. It’s mostly a bug fix update, but a couple of important things in the release notes caught my eye.
Uncompressed 422 delivers a fix for changes in color-space and/or gamma when moving clips between Final Cut Pro and Adobe After Effects and addresses a codec issue leading to drawing errors in 16bpc After Effects projects. It also fixes discrepancies found between former AltiVec and the current Intel (scalar) code and delivers some performance improvements on Intel-based Macs.
This update is required for customers using Final Cut Pro 5.1 and recommended for customers using any of the Final Cut Studio 5.1 applications and Shake 4.1
This is a big deal if you work with FCP and After Effects. I’ve been chasing my tail with color shifts between these two apps for too long and I’m hoping this takes care of it once and for all.
FxPlug delivers a single image-processing plug-in architecture for pro applications.
This one has been out there for a while in Motion, but it’s good to see a cocoa plugin architecture develop for FCP which is a big deal if your a cocoaHead developer and great as a user because you get accelerated GL graphics and things like Core Image and Core Video. Combined with the rumblings about the Shake price reduction and rolling in to some unnamed future compositing app there seems to be a lot of rumblings behind the scenes. I just wish Apple wasn’t so secretive in announcing their plans so I could, I don’t know, plan and stuff. That’s why you get all of the crazy rumors sites, etc. and it’s kind of fun if your just a casual user, but it’s much less fun if your trying to figure out what your next steps should be. And while I’m wishing, I wish they’d publish the PRODataInterchange cocoa protocol as a public spec.
So it looks like Adobe has updated the After Effects SDK to version 7.0r2. Why should you care? Well if you’re a developer and on the Mac this is the first version with Xcode sample projects. So if you’ve been putting off developing plugins because you didn’t want to buy Code Warrior now’s your chance to dive in. I want to do some timed tests between AEGP plugins and scripting and see if it’s worth my time to dive into the minutia of C and C++. Also looks like the Windows side runs in Microsoft Visual Studio .NET 2005, though I’m less sure if you gain .NET benefits here.
We’ve been doing HD work at Primal Screen for a few years now. Both for delivery to fledgling HD Networks like Animania and as an acquisition format for live and studio shoots. Like any endavor there has been a bit of a learning curve. My biggest takeaway that I’d like to share is to treat your acquisition and delivery formats differently.
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.
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.
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(http://creative-workflow-hacks.com)\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"; webConnect.write(request);
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.
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.