Written on March 5, 2012, 11:26 AM - Add a comment
Last month, I got my hands on the trial version of Adobe Flash CS5.5. I had *some* prior experience with Flash, but mostly by using alternative software with far fewer features. So what's the real deal like? Spoiler alert: it's fun.
To the Bone
9 out of 10 ninjas agree: the first thing to do with an animation tool is creating a walkcycle. I decided to use one of my own characters, Venus Galaxy, as an experiment.
I found out that (since version CS4 or so) Flash has a nice feature called the Bone Tool. It allows you to place bones and joints inside an arbitrary object (say, a drawing of a tree), and then you can bend the object dynamically by moving the joints around (say, to simulate a wind effect on the tree). Springs and dampening are also supported; it's like magic when you see it in action for the first time.
Alternatively, you can construct a character purely out of rigid symbols (e.g. head, upper arm, lower arm, et cetera). Each symbol can be linked to a Bone Tool joint to form a so-called Armature. When animating (on a timeline with keyframes, as usual), you can move body parts around and Flash will solve the inverse kinematics for you. For example, if I move Venus's hand, her arm will automatically stretch. Extra hand-placed constraints (e.g. a limit on the rotation angle of the shoulder) prevent the character from forming impossible poses.
This makes the animation process insanely easy! Or does it? Unfortunately, I quickly noticed that this promising new Bone Tool still has some painful flaws that need to be ironed out. Most importantly, the inverse kinematics process can harm body parts you never intended to touch (even if you "lock" them beforehand!). Change a pose often enough, and everything will gradually dislocate. Create an extra pose, and you will usually find out that something went horribly wrong in the frames that were already correct. If you want full control over your character, you'll probably end up using regular keyframing and manual rotating.
At least the old-fashioned style led to an okay walkcycle.
The Verdict: The Bone Tool in Flash is an interesting and clever feature that could make animating much more convenient. However, in its current state, the tool is still very rough around the edges. Fun to play with, but cumbersome if you want full control and precision. Browse the web for questions and answers and you'll see that I'm not alone. Future versions of Flash will improve this tool, no doubt, so it's something to keep an eye on. :)
Ready, Set, ActionScript
I knew that Flash (and some of its cheaper alternatives) supported scripting and basic programming, but my experience so far was limited to adding lines of code (e.g. "go to frame X" scripts) to specific animation frames, thus mixing technique and content. Whenever I needed something more, like the initialization of variables or arrays, I had to add an invisible layer that contained the scene's "global code".
But then, just before the trial ended, I found out that Flash's programming language (ActionScript, or at least version 3.0 of it) is much more than that. ActionScript supports classes and hierarchies much like Java, and each class can be linked to a figure or a movie clip in the animation. This allows for very interesting game programming, while code and imagery can stay separated. It's more than enough to make a nerd happy.
While I still had the chance, I made a controllable version of Venus Galaxy. I built a basic Engine class that handles key presses and performs code at 60FPS, and a Venus class linked to the character, with obvious variables such as speed and acceleration, and a "step function" which updates her position in each frame. In terms of animation, Venus is a movie clip with several labelled sub-animations, completely detached from the code part, but linked to the Venus class. For example, I can now tell the class to "go to frame WalkR" when the character starts moving to the right.
The result is shown below. Use A and D to move left and right; hold Shift to run. Go deviantART to see the same thing at a much higher resolution.
The Verdict: Somehow, I had underestimated the capabilities of Flash programming. It works like a charm-- although I must say that Flash itself is a less convenient coding environment than Eclipse or even Visual Studio, and I'm not too fond of the ActionScript documentation. Expect lots of googling for specific functionalities. But still: once you get the hang of it, I bet the possibilities are endless.
Okay, so if you're familiar with Flash, you probably knew most of this already. This is not meant to be a tutorial or anything; it's just a report on how I've been fiddling around with some new software. There's much more I'd like to find out. Can we tween in real-time, to smoothen all possible transitions between walking and running? Can I learn how to use the wickedly unintuitive Pen Tool someday, or must I keep importing shapes from CorelDraw?
For now, though, my time is up, and (as always) I don't feel like doing anything illegal.
All in all, I loved my time with Flash and I hope to meet her again someday. She has her flaws and special needs, but as in any good relationship (or so I've heard) it's all about giving, taking, and working things out together.
And yes, I just pretended that a piece of software is a girl.
You are currently viewing a single article.