Sid Meier's Civilization III: Conquests
(2003, Atari Inc.)


I wrote this maxscript to help animators keep track of and render the sprite-based animations for Civilization III: Conquests. A variety of camera setups had been provided by the original Civ-III team, but they were all hand-animated. This script automates the process of rotating the camera for the various view-directions as well as tracking frame ranges of named animations.

The script uses persistent global variables to store animation data. Because persistent variables are stored in the .max file, all the animation information is saved in the .max file (so you can easily rerender animations)

Each animation has a name, a frame range (or specific frames), a frame 'step' value, and a network-render flag. A step of one means to render every frame, step of 3 means every third frame, etc. Animations flagged to be network rendered are automatically submitted to the network render queue.

Because some of these renders took several minutes to render, I implemented the ability to queue up several animations to render at once so the render could be left unattended. Subdirectories for each animation are automatically created, and rendered frames are named according to animation, direction number, and frame number.

Since sprites in that game were rendered either from eight directions or from sixteen, I included a way to determine which angles to use and how many directions to render from.