One of the most common animation in Blender is the object’s one: it’s straightforward (i.e. it’s easy to see and understand the results of your animation editions), and of course very often needed!
In this page, we’ll talk about direct object animation (i.e. Ipo curves), whereas in the next ones we’ll see the indirect animation using constraints – Ipo drivers are also indirect animation, but they have already been covered in the previous part, as they concern all Ipo curves, not only Object ones.
Note that below, we do not explain all and every
Ipo curves ←→ object’s properties relationships, see the Ipo types page for a reference about these.
This is about how to animate the location, rotation and/or scale of your object – a very common need!
There are eighteen Ipo curves dedicated to this, nine for the “absolute” properties (Loc…, Rot… and Scale…), and nine “relative” to the current properties (dLoc…, dRot…, and dScale…). Let’s focus on the first set first – it’s the most used and easy to understand one, as it directly affects the properties.
Usually, you are going to animate transform properties directly from the 3D views, using the I key to insert keyframes, rather than using the Ipo Curve Editor window:
- Grab/rotate/scale your object to your liking at the current frame.
- Hit I and insert keys for the properties you want to animate (either location, rotation, scale, or any combinations of the three). Note that once you have added the needed Ipo curves, you can also use the Available option to add new keys to, and only to, all existing Ipo curves.
- Go to the next frame where you want to insert keys (let’s assume you do your animation forward, in the natural direction, and not backward…), and repeat the previous states!
This way you have an “absolute” positioning/rotating/scaling of your object – you cannot for example translate the whole animation in another place, without having to modify all Ipo curves (or using indirect animation like parent relationship, see next pages). Let’s say, for example, that your object’s location is animated so that it makes a raw circle around the global space’s origin, and you’d like to make it rotate around another point.
This is where the “relative” transform properties Ipo curves are useful: they add to the current transform properties values, rather than replacing them. If you create a circle animation using dLocX and dLocY (rather than LocX and LocY), you will be able to move your object wherever you like, and it will still continue to circle around its new location! The same goes for rotation or scale, even though it is generally less useful.
Note that, if you have both absolute and relative Ipo curves on the same property, the later will be added to the former…
Transform Properties Ipos and Spaces
We saw above that there are “absolute” and “relative” Ipo curves for transform properties. But in fact, the “absolute” can also be relative – these Ipos are all evaluated in the object’s local space, which means that anything modifying this local space will affect the Ipo’s results.
For example, many constraints modify the object’s space, like the Child Of one (parent relationship). This might lead you to unexpected results, if you do not understand this behavior – the “order” is the following:
- Object’s features that transform its space (like many constraints).
- “Absolute” Ipo curves and/or static transform properties (as set in its Transform Properties panel).
- “Relative” Ipo curves.
Changing Object Layer
Many times you want an object or actor to wait off stage until it is their time to come on and do their thing. In Blender, you commonly render only a few of the twenty available layers. So by animating an object’s layer “membership”, you can animate its visibility in the 3D views (avoiding it to clutter your workspace) and at render time. Furthermore, as you can set some lamps to illuminate only objects on their layer, changing an object’s layer can also be a way to change radically its lighting…
To animate an object’s layer membership, go to the frame when you want the object to appear. Ensure the object is on a visible layer (M to see and move it between layers). Insert (I) an Ipo key, and choose Layer in the menu that pops-up. In your Ipo Curve Editor window, you will see that the Layer channel now has a value corresponding to the current layer. Back up one frame, move the object to an unselected (invisible) layer. Now, here’s a slight glitch: you cannot add a Layer key because the object is on an unselected layer. So, temporarily enable that layer by ⇧ Shift-selecting it from the layers buttons, insert another Layer key, and then de-select the undesired layer.
Note that Layer Ipo curves are very special:
- They are discrete (i.e. it is as if they always have the Constant interpolation mode). This implies that you cannot gradually change between layers – the transition is always abrupt (if you want to fade in/out an object, you should rather consider several renderings and post-processing the results, or, for simple cases, animating its material’s alpha…).
- You cannot edit the Y-value (i.e. layer index) of their keyframes (which, by the way, are not shown as the usual black/white square dots…) from the Ipo window. The only way to change the layer of a keyframe is to delete it, and add a new one with the correct index!
- They have no “edit” mode, only the “default” and “keyframe” ones.
- They can have several values at the same time! Yes, I know, this is against the rules we saw about Ipo curves, but as an object can lay on several layers at the same time…
With the Time Ipo curve, you can manipulate the animation time of an object without changing the animation or its other Ipos. In fact, it changes the mapping of the global animation time (X-axis) to the local (object’s) animation time.
In frames where the gradient of the Time curve is positive, your object will advance in its animation. The speed depends on the value of the gradient – bigger than 1.0, it will animate faster than the base animation, and smaller than 1.0, it will animate slower (obviously, a unitary gradient means no change in the animation). Negative gradients allow you to reverse the animation.
The Time curve is especially interesting for particle systems, allowing you to “freeze” the particles, or to animate particles absorbed by an object instead of emitted. Other possibilities are to make a time lapse or slow motion animation (like Matrix’s “bullet-time”…), etc.
Note that the Y-value (i.e. “object’s” frames) is multiplied by ten (i.e. when you enter an Y value of 5.0, it means 50 frames…).
To grasp this concept, make a simple keyframe animation of a moving object, from a position to another in, say, 50 frames. Then select the Time channel and create an Ipo curve in the Ipo Curve Editor window going from point
(1,1) to point
(50,50). It is easy to set the start and end point of an Ipo by using its Transform Properties panel (N) and entering the values manually – just remember to divide by ten your Y-values.
Now, set the extend mode of the curve to Extrapolation (E Extrapolation). You have created a one-to-one mapping between the global’s and object’s times. This is not much useful, as it gives exactly the same behavior as usual (i.e. without Time curve)! You can see this by playing your animation: your object makes the same move over the same fifty frames! See (Normal Speed) to the right, where the time curve is in green, and the two “translation” curves are in red (LocX and orange (LocY).
But now, let’s set the Y value of the second point to 100 frames (10.0). This means that the object’s time reaches the frame 50 when the global time is still at frame 25: you have doubled the speed of your object’s movement, which is now done in 25 frames, as shown in (Fasten up speed) to the right (note that the “virtual” translation curves produced by the new time curve are shown in light gray here, which is not done by Blender!).
Conversely, by setting the second key’s Y value to 2.5 (i.e. 25 frames), you slow down your object’s animation, which would now take 100 frames to complete (as shown in Slowed down speed to the right)…
Other Animatable Properties
You can also use the ColR/ColG/ColB/ColA to animate the object’s color and alpha. This property is used by an object’s material when the ObColor button of the Material panel (Shading context, Material sub-context) is enabled. Note however that there seems to be problems with these color Ipo curves (their animation seems not to be played every time…).
You can also animate some of the object’s physical properties, like e.g. the strength of its force field, or its collision’s damping… see the Ipo type page and the physical simulation chapter for more details.