Animating with Kitterspeak
a furcadian revolution
This page was created in conjunction with Safiye's 2008 Jujinka Festival Dream Contest Entry, meant to be an interactive tutorial in furcadian animation. If you've seen the dream (or even if you haven't) and you want a quick reference to refer to while working on your own creations, you can find all that info here as well! This page also includes a few tips for advanced users not found in the dream, not even by the clever safari animals. If you want more still, you can visit DEP's official kitterspeak tutorial.
To start working with kitterspeak, open the patch editor (also known as the fsh editor), and click the animation menu. Select "animation editor" from the drop down list. Now you're ready to go!
Persistance of Vision
A furre's eye retains an image for about a tenth of a second. This is what makes all of the moving image arts possible, because if an image changes faster than that, it will be perceived as moving, whether it be a flock of birds taking flight, or only a series of projected images played back quickly on a movie screen.
That means you'll need about 10 pictures (called 'frames') per second to make something look like it's moving. However, at that speed, the movement will look choppy, like a flip book.
To make an animation look really and truly smooth, you'll probably want about 16 frames per second. Cinematic film uses 24 frames per second!
The bigger the difference between each picture, the faster the object will appear to be moving. But make the differences too large, and your image will appear to simply be 'jumping' from place to place, not moving. For a truly smooth movement, try to move the object no more than 2-3 pixels each frame.
One important skill to master is cycling. A cycle can consist of 3 frames or it can be 300 frames, but the essential thing is that the last frame be perfectly set up to flow back into the first frame. If it isn't, your animation will 'jump' or 'skip' distractingly when it restarts.
|Good Cycle:||Bad Cycle:|
Cycling is important for almost every object, otherwise the object will become distracting and annoying. It's perfect for ripples in fountains, the sway of grass in the wind, the toss of a horse's head, a winking portrait... Pretty much everything!
As you can see from the above examples, cycles don't have to be circular. Another kind of cycle could be a piston of a machine moving straight up and down, or a snake that made a sinuous "S" shape with its body. Almost any action can be cycled, just so long as you obey the basic rule of making the last frame perfectly set up to return to the first frame without an obvious jerk or jump.
However, there are a few exceptions. For instance, a drop of water falling from a leaky cieling should not be animated to cycle perfectly, otherwise it would just look like the drop flew straight back up into the sky as soon as it hit the ground! In that instance, it would make more sense for the animation to simply "jump" back to the beginning, representing a new droplet of water, rather than the same one continuously flying up and down.
Animating using Furcadia's kitterspeak engine is different than animating in traditional ways, because kitterspeak allows you to control the rate at which your frames play back.
Remember how I said that movie film plays back at 24 frames per second? Well, a movie must ALWAYS play back at that rate. It can never change. But kitterspeak can!
Kitterspeak measues time by the millisecond.
1000 milliseconds = 1 second
You have the opportunity to change the default frame rate for every item you create! Play with this number to see what works best for the kind of item you're making.
For instance, my speedy dragonfly is set to 50, while my slowly bobbing log is set to 500.
Combining Kitterspeak with Dragonspeak
Knowing that 1000 milliseconds (ms) is equal to one second, we can combine kitterspeak with dragonspeak for revolutionary results. For instance, if a boat item is set up to move across a square over the course of 10 frames, and each frame is set to display for 100ms, we can deduce that:
100ms * 10frames = 1000ms.
So it takes the boat one second to move across a square. If we then use dragonspeak to move the boat forward by one square once per second, we can make it look as if the boat is continuously, smoothly moving forward, without simply jumping from square to square.
In reality, lag and other factors can occasionally make the time offset between the kitterspeak counter and the dragonspeak counter get slightly out of sync. If this happens and the animation starts to jump around, you can try this semi advanced fix: At the end of all of your kitterspeak commands that display the 10 frames, add a STOP command. Then, going back to your dragonspeak, each time the timer goes off that moves the boat forward, add a "reset the animation for item #" command. This will ensure that both the kitterspeak and the dragonspeak are always perfectly in sync and will look flawless even in lag.
If you want to see how I achieved this kitterspeak effect, you can download the animated boat here. Open it in the patch editor and see if you can figure out how I made it tick. Then, get it into the dream editor and practice combining it with appropriate dragonspeak.
But wait, there's more! Kitterspeak not only works with items -- you can use it to animate all of your walls, floors, DS buttons, layout elements and portraits, too. Anything you can save as a *.fox file you can now animate.
You could have scenes appear to be moving outside of the windows in your walls. You can make clouds fly by underfoot, or make waves crash in realistic ways. You could make the butler in the layout that shows what item you are holding wave and wink. There are almost infinite possibilities!
When you're getting started in animation, remember that animation is a very time consuming and exacting art. If you feel strongly about making your items move realistically, not only do you need to learn how to make an image look good when it is standing still, you then need to be able to redraw that image in a slightly modified way many more times, taking into account the weight of the object, its center of balance and its type of locomotion to determine how it would move. It's easy to get frustrated and give up -- but don't!!! The more you practice, practice, practice, the better you will get, and the only way to stop improving is to stop practicing.
Start with simple animations, like making a ball bounce. Study the default animated items included in the latest update of furcadia to see how they work. Then see how closely you can recreate the defaults from scratch to test yourself.
Get out there and get innovating!