Originally inspired by a kickin’ real life Christmas display on YouTube, I’ve spent the last 2 months in the evenings and weekends creating this animation sync’d to “Wizards In Winter” by Trans-Siberian Orchestra:

If you have a newer computer, view the actual swf here (Use the number keys to change camera views)>>
Or view the fullsize 1000x500 Quicktime movie>>
Or just watch it on youTube:
Now you might wonder *why* I would spend so much time on this – right? Well, partially because I was forced to endure this lame version by Miller Lite every day in December -UGH!!
I finally snapped after the 100th time of having to watch this thing and got to work.
Now, the guys over at Swift3D came out with Papervision3D support and I wanted to do a project with Swift to see where the holes were and what it was really capable of doing. I’m here to say Swift3D is the real deal – it has powerful tools you’d never expect, and it gives you a ton of export/rendering options that every Flasher out there needs when doing 3D/2D work. So, with the exception of baking in shadows on the house’s texture, the entire scene was modeled in Swift3D.
The trees were all created with the lathe tool (which freakin’ rocks for stuff like this) and the star was a simple extrusion. The house, oddly enough, was from Google’s online library of free Sketchup models. I was able to convert it to 3DS and Swift3D imported it right into the scene. How cool is that?!?!
I then sat down to write out an animation engine I’d been meaning to try for a while. Basically, I created “Sequence Groups”, and played their “parts” on the computer keyboard with the music. When I was done with the particular section, I would dump an array out of the recorder, paste it into my code for the particular SequenceGroup and bam, the engine took care of the rest. I was seriously surprised at the accuracy I was able to get with this method – I was able to play 16th notes wiithout it dropping a single note and in my testing (even though this song doesn’t have any) 32nd notes worked at this tempo as well.
After some serious rounds of optimizing the crap out of this thing, it runs at 1000×500 on my Mac Book Pro in the mid 20’s using the 9.0.115 player. I sacrificed a few killer concepts I wanted to put in there like Fire coming out of the chimney, a snow globe dome and an Xwing pulling the scene through outter space to name a few
I originally wanted to use the Effects branch to put in blurs and glows and try some DOF stuff, but there just wasn’t any room after over 5500 ploy’s and the size of the scene and animation…and music…and everything else
I really pushed to get this done for this weekends class in San Francisco – it turned out to be one of the coolest teaching tools I could have ever imagined. It’s got tons of tricks and optimization techniques as well as demo’s on communicating with your Papervision3D scene’s, materials and DisplayObject3D’s. So for all of you making it to the class, you’ll have the full source given to you and we’ll be covering how it was done and dig in with some hands on examples.
I’ll be posting the code for this project after the San Francisco class next week sometime.
I might add that the 9.0.115 player really gives this a boost. Usually in the mid 20’s with the FPS, and in the high teen’s with the Flash IDE player.
Here’s what it looked like before all the texture work was done:





