Animation Languages

 

 

Motivation: Looking/searching for alternative Animation scripting languages
Features: ActionScript 2 and many pretenders

A colleague who had previously worked with Apple's Hypercard and now is working with Macromedia Director and its Lingo language for scripting was worried about the new direction Director Mx 2004 was taking. No not the new look and feel and copying of the Mx and Dreamweaver interface; no my buddy was worried that ActionScript 2 was poised to takeover for Lingo and although he used Flash animations and ActionScript from time to time he was not convinced that ActionScript (see screenshot above) was the way to go as an animation scripting language. Bob's concerns were fivefold:
1)The Flash environ, even the pro edition had not built up an effective IDE for ActionScript;
2)ActionScript even though it is moving towards JavaScript 1.5 compliance is still off the mark;
3)ActionScript still did not provide a clean interface to XML and database objects;
4)ActionScript did not know SVG, SMIL - two open graphics standards - as much as to be desired;
5)ActionScript is still too dependent on one vendor and their Flash Player delivery technology - other modes of expression - video, 3D, 3D animated are largely out of explicit control. In effect they are blackbox media objects in Flash.
So he asked me for more alternatives for making his Animation Scripting language choice. So a search of academia and other animation vendors was in order.

Animation MarkUp

There is a whole world following the lead of W3C's SMIL-Synchronized Multimedia Integration Language and defining animations and especially human animation with XML/XSL derived markup languages. But the whole problem with the XML/XSL approach is what has been seen in the Web database development arenas. XSL and XSLT can be used to derive fairly powerful transformations and queries but only of fairly restrictive XML markup and objects. Call them the XSL languages - they have only the most primitive of notions for conditional tests, functional/subroutine calls and iterative control of operations - and forget notions of operators and operator overloadings. The result is that XSL or XSLT based mark ups really require a XML-smart scripting agent (think Groovy, Java, JavaScript with E4X extensions, JudoScript, PHP 5, or Ruby) to really get things done. Nonetheless, there are some fascinating animation components and interactions being built up. But readers be forewarned that this is largely academic research and/or bleeding edge technology:

RRL - Rich Representation Language (RRL) which is used in the NECA system. The NECA system generates interactions between two or more animated characters.
VHML - Virtual Human Markup Language is designed to accommodate the various aspects of Human-Computer Interaction with regards to Facial Animation, Body Animation, Dialogue Manager interaction, Text to Speech production, Emotional Representation plus Hyper and Multi Media information. Given no small mandate, much is going on but primarily declarative not programmatic.
Metaface - provide a SouthPark-like faces with advanced speech and facial expressions which can be used standalone or in a browser using Java technology and VHML.
BAML - Body Animation Markup Language, like FAML-Facial Animation Markup Language, and others in the VHML set are primarily declarative and then interfaced to Java or other XML consumers.
AML- Avatar Markup Language encapsulates Text To Speech content, Facial Animation and Body Animation in a unified manner with appropriate synchronization information. A top down VRML influenced markup.
In general, we found that most of the systems like Mentor or Interface were taking a Java (one, a .NET approach)interpretation of XML-based markup with MPEG-4 and other movie formats the target for most of these academic approaches. The predominate model was smart declarative XML-based markup and then any open, XML-savvy language for delivery.

What Major Animation Vendors Are Doing

There are a number of major animation vendors and as might be expected of such an iconoclastic lot each is doing its own thing in animation scripting. ToonBoom, makers of ToonBoom Studio, Opus, Concerto and Symphony is one of the major software suppliers to the animation industry. Their approach is to supply scripting in their products as user macros - they aid in the production of animations in Studio, Opus and other products. For example, the macros and/or wizards are used to drive kinematics and "gluing" functions. Or some properties or elements are set for interaction and/or interfacing with other, third party 3D and animation products - but ToonBoom output is largely user interface free. However, because ToonBoom can be delivered in Flash SWF and other formats - adding a user interactive interface is eminently doable but third party driven.

The same approach in the 3D animation field has been taken by Alias with Maya using the MEL scripting language, 3DSMax with MAXScript and SoftImage with XSI scripting - these are really macro languages with some limited interfacing capabilities. In the 3D Animation world it is almost as if you need a product like ViewPoint to make the Web and standalone interface for some of the 3D and cartoon based animation tools. The problem with Viewpoint is that they don't support the two fastest growing browsers in thyme market right now, Mozilla FireFox and Opera. However, Viewpoint does have the advantage of interfacing to all the major 3D players along with being able to use Flash animations. Its own Web interface and programming is mixed - very rich in some areas and then cumbersome in others - depending on the calls and objects supported. But this is part of the challenge of being 3D, 2/12D and 2D/Flash aware - it is a wide row to hoe.

ActionScript is well represented in this world with two products. Swift3D from Electric Rain and MindAvenue's Axel 2 both offer dramatically improved 2D and 3D modeling capabilities including smart output to Flash. But the programming interface to both is primitive with only very basic Actionscripts. Developers must do the advanced scripting within Flash using carefully constructed SWF movieclips. Not the most effective of interfaces.

In contrast there are some vendors offering scripting and 2D/3D animation but a number appear to be on the brink of solvency. VisViva appears to have a very powerful 3D and animation creation system with a nifty language, ScriptV, that is Web facing. But emails to the company received no reply. Small has been made open source and is an elegant c-like language for animation and games; but it appears continued development is limited.

Gaming: All Sorts of Scripting

When I checked out the gaming world, all hello of scripting tools were available. Here is a list of some of the most interesting systems:
3D Games Studio - a click together 3D animation and gaming system with C-Script - very good
Adventure Game Studio - setup, script, deploy adventure games with full media compliment
Agast - free adventure gaming system with clever scripting language, Windows only
Alice - Carnegie Mellon's 3D graphics game development system for Windows
Anim8or - freeware 3D animation creation environ
Arianne - freeware Java game creation tool
Atmosphere - Adobe's 3D development environ is JavaScript with object extensions enabled
BlitzBasic - is a polished 3D game development system for Basic, Windows only
DarkBasic - again a gaming Basic in Windows with all sorts of 3rd party support tools
Dimension 3 - Mac based 3D gaming system using JavaScript, takes full advantage of Aqua
Game Maker - free Windows board gamemaking system with full set of programming features
Hephaestus - Java based RPG-Role Playing Game creation tool
Hugo - an interactive text/fiction game creation tool for Win/DOS/Linux. Like a Guilty Bastard I just could not but help to include this game tool even though it hardly fit the mold for ......
Jamagic - JavaScript based 2D/3D interaction and game creation system
Java Game programming books: Developing Games in Java, Advanced Java Games
MacGame Creators - several Mac only game creations tools
MediaForge - a multimedia authoring tool closer to Director than all the products seen so far
QuestML - Quest Markup Language is a nifty system with neat web connections
Reality Factory - free 3D game creation system with some for fee topend extensions
SCI Studio - Sierra Game Engine studio with nifty feature
Sludge - scripting environ for gaming with whole slew of facilities
Sphere - another JavaScript role playing game creation tool
Stagecast Creator - another I couldn't keep it off the list though not quite apropos
WinterMute Engine - a game engine with complete scripting and editing tools, Windows only

As can be seen from the long list of candidate systems, there are a lot of resources available for game developers to choose from, many of which are free and Windows based. However, the problem with many of these game systems is that they are retro with respect to Flash - they fail to support cross platform deployment, their scripting language is proprietary, or the support of 3rd party animation and 3D tools is limited. Nonetheless we were impressed with several tools including the strong number of Java and JavaScript tools and references. Java as graphics delivery system is seeing a rebirth on mobile and PDA games and applications.

Summary

There are a wide range of tools for animation and 3D modeling and game development. The XML based tools starting with SVG, SMIL, and VRML continue to attract interest in a diverse set of communities while using Java and JavaScript as primary engines. Adobe's excellent Atmosphere product is typical. However, most of the 3D, cartoon and advanced animation vendors stuck to macro use of scripting. Viewpoint does provide a good linking tool but it trips up on lack of Firefox and Opera support. In short, my advice to Bob was to go with a locally optimized solution for the specific problem he had and wait for a more general solution to emerge in the next 2-3 years. With Microsoft offering 3D graphics as a part of Avalon, there certainly will be stimulus enough for the major players like Adobe, Alias, discreet, Macromedia, Softimage and others to establish more comprehensive offerings.




©Jacques Surveyer see some of his Flash work at theOpenSourcery.com