From BlenderWiki

Jump to: navigation, search

Ipo Datablocks

Introductory example

Let's imagine a simple case where we want to animate the location of two objects, A and B.

When we add keyframes, for each object, Blender:

  • creates a curve for each location property of that object (X, Y and Z),
  • stores these 3 curves together in a new piece of "Ipo data",
  • attaches this piece of data to the object.

So, the two objects will have two different location animation data attached to them.

Ipo Curves are stored in "Ipo datablocks"

Indeed, Ipo Curves are stored in datablocks, exactly like mesh data are stored in mesh datablocks, or like materials data are stored in material datablocks, and so on.

This is a good thing, because it means that Ipo Curves are pieces of data that can be shared among objects!

In the example above, you could assign the animation of the object A to the object B, and they would use the same transformations’ animation.

See the datablocks chapter for a general view about how to edit them (assign, copy, rename them, etc...).

Ipo datablocks types

Let's assume now that we animate the diffuse color of the object A.

Should we expect that Blender stores the diffuse color curves in the same datablock together with the location curves? No!

For each object, Blender groups all Ipo Curves of the same type in a different Ipo datablock.

This helps us managing the huge number of curves that might be attached to a certain object.

Ipo datablock types are detailed in this page and are:

Always available Depend on the object

Object Ipo type
Constraint Ipo type
World Ipo type
Sequence Ipo type

Material Ipo type
Texture Ipo type
Shape Ipo type
Particles Ipo type

Path Ipo type
Camera Ipo type
Lamp Ipo type
Pose Ipo type


One Ipo datablock type per object

Can we imagine to have two Ipo of the same type attached to the same object? No!

For example, it wouldn't have sense to have two Object Ipo on the same object, because having more than one curve animating the location of an object has no sense!

Each object (or any other animated datablock) can only have one Ipo datablock per type.

This is an important limitation to keep in mind, especially when you’d like to share an Ipo datablock between several objects: they will get the same set of curves of the given type.

For example, since Material Ipo group both diffuse color curves and mirror curves, you can’t have two materials with the same animation of the diffuse color but a different animation of the mirror property.
To achieve this, you use actions in the NLA editor, but as we will see this only works for “actionable” Ipo datablocks.

The only way to differentiate the animation of two objects sharing the same Ipo datablock is to set a time offset for a given object, so that the linked Ipo datablocks are offset in time.
To do this you use the TimeOffset numeric field, in the Anim settings panel, found in the Object buttons subcontext of the Object context (F7).

Ipo datablock specificities

Some can become an Action
Some Ipo types can become an action
Can be muted
Ipo datablocks can be muted, hence having no more any effect on the animation.
This is handy when debugging your scene in trying to determine, for example, whether lighting or material changes are making your character look funny.
Can be "textured"
Some types are “textured”, i.e. they represent datablocks that can use several textures (like materials, world, lamps, ...), and as such they contain Ipos for settings that are specific to each texture channel (like mapping ones).

Ipo datablock default names

By default, Ipo datablocks names are autogenerated, joining three elements:

<prefix>
indicates the Ipo type (can be Ob, Mat, ...)
"Ipo"
standard word to indicate that this datablock is an Ipo
.<suffix>
this is the usual three-digits counter to avoid names clash, added in case there are 2 datablock with same basename
Ipo datablock default naming
Ipo datablock type Default names
Object ObIpo ObIpo.001 ...
Constraint CoIpo CoIpo.001 ...
World WoIpo WoIpo.001 ...
Sequence SeqIpo SeqIpo.001 ...
Material MatIpo MatIpo.001 ...
Texture TexIpo TexIpo.001 ...
Shape KeyIpo KeyIpo.001 ...
Particles PaIpo PaIpo.001 ...
Path CurveIpo CurveIpo.001 ...
Camera CaIpo CaIpo.001 ...
Lamp LaIpo LaIpo.001 ...
Pose ActIpo ActIpo.001 ...