New ANSImation: Star Trek: The Trouble With The Rangifer Tarandus

In December, I created a new ANSI animation for the holidays called “Star Trek: The Trouble With The Rangifer Tarandus”, which was released in Blocktronics’ “Darker Image #2” artpack.

Here’s a video version of the ANSImation:

But (as always), the best way to view this is to use SyncTerm to connect to my BBS, Guardian of Forever, and watch it there.

So far, each of my ANSImations have been a way to try a new technique in ANSI, whether that’s parallax scrolling, perspective transforms, or whatever. This time was no exception.

I came up with an idea for a Star Trek “transporter” effect that could work in ANSI. The effect would have three parts: first, a set of “rays” streaming downward (ala Star Trek: The Next Generation); second, the rays coalesce into a sparkly white/yellow outline of a sprite; finally, the white outline crossfades to the actual sprite itself.

For the first and third parts to work, I cooked up a function that calculates the dominant low color of a given ANSI character. For example, if it’s a solid bright green block, then the dominant color is green. But what if it’s a gradient block with red in the foreground and gray in the background? My function will figure it out. With the ability to calculate these dominant colors, I can create the illusion of a gradient moving over a portion of an image; or the illusion of a sprite fading in/out.

Anyway, I had this idea for a while, but never coded it up. As Blocktronics’ pack release neared, I figured I’d take a stab at writing my code to see if I could pull something together. Surprisingly I was able to get the transporter effect mostly working in just a few days. I managed to draw a background of the Enterprise’s transporter room, then started thinking about who I wanted to “beam up” in this animation. Since the pack was coming out so close to Christmas, I figured I’d do a Star Trek / Santa Claus mashup. The idea was silly, unexpected, and I could keep it very simple. The only thing really happening is two objects beaming in, with a bunch of dialogue bubbles. I drew ANSI sprites of Santa and his bag, using various pixel art pieces I found online for inspiration.

Once I pulled it all together, I showed my kids without explaining ahead of time what it was. They each reacted by laughing in surprise when Santa was revealed. That was NOT who they were expecting to show up. Since they liked it so much, I figured it was good to contribute to the pack.

I’m pretty happy with how it turned out, although one thing I learned is that it is very difficult to translate this transporter effect from the terminal to a GIF. In a terminal, it’s simply thousands of individual characters changing. But in a GIF, to do the same thing would requires thousands of frames! I worked around this and kept the GIF version to about 240 frames, but even when I set the GIF with the smallest possible delay between frames, it back way too slow. But maybe that makes it perfect to include here, since it will allow you examine the transporter effect a little more closely:

An animated GIF that shows the transporter effect from my recent ANSImation.

Share your thoughts!