9.15.2010

Automating Animation






It is quickly becoming apparent that I will be dealing with thousands upon thousands of cubes, and keeping track of them as they animate is going to be quite the chore.

I’m a big fan of creative planning.  A few minutes of forethought about how you build something (whether 2d or 3d) can save hours of time and countless headaches down the line.  Anything can be built in a myriad of different ways, and being creative about your processes and using your software packages together in new ways is essential to creating original work.

There are a few elements that I know I want to have in my scene.  One of the things I remember about every Megaman game that I have played is the “conveyor belt” style platforms, that would put a forward or backward force on the player sprite.  They slide your sprite in one direction if you stand still, you run slower if you are going against the “flow” etc.

I start by creating the smallest section of the conveyor belt possible, as with the player sprite, I create a separate object for each frame-


If I add a Set Driven Key to the group of objects that controls the visibility using the process explained in my last post, I have one little animated chunk of the belt-

Note that I have planned the motion on a 3 frame cycle.
-There are 3 pixels before the track repeats (2 pixels of track and 1 pixel of gap)
-The track on the bottom moves the opposite direction than the track on the top so that the motion of the track will be circular
-The arrows in the center are designed so that they "flow" in the direction of the top of the track.

This allows the segment of track to be tiled horizontally.

I duplicate the chunk several times until I have the length of belt I want, and create ends using the same method.  Building the belt in this way allowed me to only animate a small part of it and propagate that animation over the whole belt, rather than having to move every single animated cube in the object.



I reorganize the groups, so that frame 1 of each segment is in one group, frame 2 is in the next, etc. I add an attribute called “BELT_FRAME” to the top group in the hierarchy, and have that drive the visibility of these new groups, and now have one attribute that animates all of the cubes in the belt.

Since this will be a constantly moving element in my scene, I set keyframes on BELT_FRAME then, in the graph editor, set the curve’s post-infinity to ‘cycle’.

Now I have an element that I can drop into any scene, it will automatically animate in an endless loop, and I only need to deal with 4 keyframes on 1 attribute if I want to alter the animation.  This definitely beats keeping track of keyframes on thousands of cubes!


No comments:

Post a Comment