Animated Video Intros:Using the Processing Language
In case you're not familiar with the programming language processing, let me fill you in. Processing is an open source programming language with an included IDE. Processing is a sketchbook geared toward quickly creating advanced visual art.
In order to get better aquainted with processing, I decided to use it to help create a short intro animation for a youtube sports show some friends are working on. Processing comes with some great example sketches (programs), and it's a good idea to try out a few to get familiar with what the language is capable of. Processing is pretty user friendly if you've done any programming before. Right clicking a command and choosing "find in reference" will take you to a webpage with common uses and information about the command.
After playing with a few of the example sketches, I decided I really like the 3D image demonstration "explode". It uses two for loops to go through every pixel in the image and plot them in 3D space. MouseX is multiplied by the brightness of each pixel so that when the mouseX is at it's minimum(mouse is all the way to the left), the image looks normal. But when mouseX is higher, the brighter pixels pop out and move toward the viewer. This was a very neat effect, but I wanted a little more control, so I used the "camera" command to map X and Z coordinants to mouseX and MouseY. This yields a unique effect where you can zoom in and rotate around the pixels that are in 3D space. The hardest part came when trying to set the presets in the camera command so that the logo used for the web intro would be displayed regular size and right side up when the mouse reaches the lower left hand corner. The final step was to include the commands to encode the output into a quicktime movie that I could import into iMovie. The following commands are what I used to combined my sketch and the MovieMaker example sketch.
In setup():mm = new MovieMaker(this, width, height, "drawing.mov");
in draw() : mm.addFrame();
in a subroutine after draw() void keyPressed() { if (key == ' ') { // Finish the movie if space bar is pressed mm.finish(); // Quit running the sketch once the file is written exit(); } }