I teach an introductory 3D animation course at my university. The primary application we use is Autodesk Maya, the gold standard of 3D modeling and animation applications. Maya is a vast application that can take many years to learn and that requires a lot of skill to use effectively. So trying to learn Maya in a semester isn’t realistic.
As it turns out, the do-it-in-a-semester approach is even more challenging – because creating a complete animated video, something my students are required to do, involves other complex applications. At a minimum, scenes rendered into video with Maya have to be edited with a video editing application and a soundtrack synchronized with the video.
The complexities of workflow in animation projects are far more extensive than this, and we will look at this in a future posting of this blog.
Today, we focus on the favored technology for providing application-to-application workflow: plugins. Basically, the world of animation and media apps is exploding with them. Here’s what the landscape looks like.
Making applications fragile: plugins.
Since they might focus much of their career on a single application, animation, photography, video, and audio professionals can panic at the thought of any substantive changes in the application that drives their daily work. One major reason is workflow. Even minor updates to an application can lead to broken plugins. This is because vendors who sell plugins that allow an application to import and export from other applications are often far behind the version schedule of the two applications. This is true even when the plugin vendor sells one of the two applications. Also plugins tend to lag in bug fixing also, as plugin vendors struggle to understand the internal workings of applications they do not sell.
The one-of-a-kind nature of app-to-app communication.
Master each plugin can be a huge investment in itself; this is because complex forms of data are typically being passed between one app and another. And interfaces between various applications tend to be one-of-a-kind, and only partly undocumented. Plugins can also demand that the users program complex configurations.
Moving 3D models between applications, moving scenes between a modeling application and a renderer, if not done very painstakingly, can lead to nasty results. Often, some of the information that the user knows must be configured doesn’t seem to appear in the menus or palettes of the plugin. It might also be true that plugins for two different renderers conflict with each other.
The various kinds of plugins.
Plugins also come in many different flavors, interacting with import/export applications very differently. Here are a handful of sorts of plugins:
1. external app-to-app connections: import/export of minimally-compatible standards.
These are very common, and typically don’t involve any external plugins to be installed. They require that information (such as models or scenes or complete videos) be exported, stored in the file system of the computer, and then separately imported into the second application. Many 3D modeling applications do this by using the OBJ format. But this sort of import/export tends to be highly error prone, as various pieces of information get dropped or damaged.
2. app-to-app connections: richer standards for saving files.
There are a number of popular and emerging standards that are much richer, however, such as the FBX format (from Autodesk, the folks who sell Maya), which can accurately store a large amount of information about an animated scene. Sometimes a plugin must be installed on one app or the other, but many cutting edge applications come right out of the box supporting richer data standards.
Another example is the Collada XML exchange format that can be used to insert models into game engines so they can be used in interactive games.
3. Bringing one app into the GUI interface of another app.
These plugins can greatly ease the hassle of moving data around. The drawing program Google SketchUp can have third party plugins installed that allows it to render to external applications. This sort of plugin will create a menu or palette in one or the other application. (I happen to use the IMSI renderer with SketchUp.)
Plugins can, in this way, effectively extend the capabilities of one application with some or all of the capabilities of a second app. The 3D application Vue, which is used for building environments and settings (like deserts or oceans), can be used from within Maya by using a plugin supplied by the Vue folks.
4. Plugins that allow the re-synching of assets from an outside application.
Poser, the popular application for modeling humans and critters, can be used to import models into Maya, and not only is the Maya GUI extended with Poser options, but Poser can be told periodically (from within Maya) to re-sync models from Poser.
5. Extracting focused assets from one application and importing them into another.
Sometimes the focus of a plugin is to extract highly specialized pieces of information that don’t make up any sort of standard piece of media, like models or images or video. For example, Smart Sound provides a plugin for their application SonicFire, so that sound markers from Apple’s Final Cut video editor can be used within SonicFire to time a soundtrack within SonicFire to a video created with Final Cut.
6. The hardwired connection between Adobe’s Soundbooth and Premiere Pro.
These perhaps hardly qualify as plugins at all, but Adobe has created a standardized format for representing audio so that their sound editor SoundBooth and their video editor Premiere Pro can work together fluidly. Users end up adopting the Adobe format as a primary audio format within their overall workflow.
We will look more at media workflow…