Pre-Baked Animation

This page demonstrates the basics of scripting shapes RenderMan scene description (RIB) protocol. Writing RIB files by hand focuses attention on the use of color, opacity and the fundamental concepts related to xyz coordinate system. The preliminary renders have been done using basic shading so that the geometry can be more easily seen.

Creating Walk Cycle Archive:



First a walk cycle has been created for the teapot in Maya using simple blend shape and bend deformers. A series of RIB archives are created from each frame of the walk cycle. It's important to keep the animated object at the origin so that no undesired transformation occurs while creating the rib archive. After making sure that the renderman for Maya plugin is loaded, the teapot is exported as RIB Archive. For almost all types of objects(except lights) it is necessary to check Enclose in Attribute Block option when exporting objects.





Creating A Proxy:

In a new scene, a simple box is created as a proxy for the teapot animation. The size of the box is calculated so that during the entire walk cycle animation, the teapot remains inside it; other than that it will be cropped. The transformation of this box should be zeroed out in order to prevent later transformation problems. A new renderman attribute is added to the box shape by clicking on:

Attributes > Renderman > Add Archive Controls

Then the archive is imported into the RIB Archive field.





Creating A Proxy:

After creating the proxies, multiple numbers of it could be placed and animated in the scene. Each of these proxies will be replaced by the teapot while rendering. Therefore any shader assigned to these proxies will appear on the teapots as well. This scene could be lit with default Maya lights. There is a script called DelayedReadArchive (by pixar) to read the archives while rendering. But this scripts has two main problems:
1- The animation of the proxies should contain at least as many frame as the entire sequence.
2- The Archived animation of the proxies are totally synchronized
To solve these problems there is a custom script with the same name, written by Prof. Malcolm Kesson. This script which overshadows the Pixar version, enables the user to loop the animation of the archives without worrying about the length of the entire sequence; Also it randomizes the time offset of each proxy.




Final Render:

And here is the final render!

(Click on the image for hi-re animation) (Click here for low-res animation)

Final Thoughts

Proxy animation has a great potential for creating scenes with a lot of similar objects like crowd simulation. Usually handling these sort of scenes requires a great deal of memory and calculations. Proxies are replaces by very high detail archived geometries only in rendering; therefore those heavy scenes could be managed much more efficiently.
There are also some down sides in proxy animations as well. For instance controlling detailed interaction of archived geometries can be very difficult, because only the bounding boxes of those objects are visible to the user. But still the efficiency of this method is not negligible for many different types of animations.


Home