Don't mind the mess!
We're currently in the process of migrating the Panda3D Manual to a new service. This is a temporary layout in the meantime.
It's possible to generate a model that automatically rotates through a sequence of textures when it is in the scene graph, without having to run a special task to handle this.
To do this, use the
egg-texture-cards command-line utility. This program will accept a number of texture filenames on the command line, and output an egg file that rotates through each texture at the specified frame rate:
egg-texture-cards -o flip.egg -fps 30 explosion*.jpg
This actually creates a model with a different polygon for each frame of the texture animation. Each polygon is put in a separate node, and all the nodes are made a child of a special node called a
The SequenceNode is a special node that only draws one of its children at a time, and it rotates through the list of children at a particular frame rate. You can parent the model under render and it will automatically start animating through its textures. If you need it to start at a particular frame, use something like this:
flip = loader.loadModel('flip.egg') flip.find('**/+SequenceNode').node().pose(startFrame) flip.reparentTo(render)
By default, all of the polygons created by
egg-texture-cards will have the same size. This means that all of your textures must be the same size as well. While this is a simple configuration, it may not be ideal for certain effects. For instance, to animate an explosion, which starts small and grows larger, it would be better to use a small texture image on a small polygon when the image is small, and have a larger image on a larger polygon when it grows larger. You can achieve this effect, with the -p parameter; specifying -p scales each frame's polygon in relation to the size of the corresponding texture.
egg-texture-cards -o flip.egg -fps 30 -p 240,240 explosion*.jpg
There are several other parameters as well;
use egg-texture-cards -h for a complete list.