From BlenderWiki

Jump to: navigation, search

Animating Objects

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.

Animating Transform

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:

  1. Object’s features that transform its space (like many constraints).
  2. “Absolute” Ipo curves and/or static transform properties (as set in its Transform Properties panel).
  3. “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…

Changing from layer 4 to 10 and 14 at frame 10.

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…

Controlling 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…).

Example

Time Ipo curve example.
Normal speed.
Fasten up speed.
Slowed down speed.

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.



Introduction
What is Blender?
Introduction
Blender’s History
License
Blender’s Community
About this Manual
What's changed with Blender 2.4
Installing Blender
Introduction
Python
Installing on Windows
Installing on GNU/Linux
Installing on Mac
Installing on other Operating Systems
Configuring Blender
Directory Layout
Starting
The Interface
Introduction
Keyboard and Mouse
Window System
Arranging frames
Headers
Console window
Window Types
Screens (Workspace Layouts)
Scenes
Configuration
Modes
Contexts
Menus
Panels
Buttons and Controls
Internationalization
Your First Animation
1/2: A static Gingerbread Man
2/2: Animating the Gingerbread Man
The Vital Functions
Quick render
Undo and Redo
Default scene
Screenshots
Help!
Setting Preferences
Configuring Preferences
Interface
Editing
Themes
File
System
Interaction in 3D
Introduction
Introduction
Navigation
Introduction
3D View
3D View Options
3D View Usage
Camera View
Layers
Local or Global View
Sketch in 3D Space
Introduction to Grease Pencil
Drawing sketches
Layers and Animation
Converting sketches to geometry
Transformations
Introduction
Basics
- Grab/Move
- Rotate
- Scale
- Gestures
Advanced
- Mirror
- To Sphere
- Shear
- Warp
- Push/Pull
Transform Control
Introduction
Precision of Transformations
Numeric Transformations
Transform Properties
Reset Object Transforms
Manipulators
Transform Orientations
Axis Locking
Pivot Point
- Active object
- Individual Centers
- 3D Cursor
- Median Point
- Bounding Box Center
Snapping
Snap to Mesh
Proportional Edit
Data System and Files
Blender's Data System
Blender's Library and Data System
Blender's Datablocks
Scenes
Working with Scenes
The Outliner Window
Appending and Linking
File operations
Introduction
Opening blender files
Saving blender files
Modeling
Introduction
Introduction
Objects
Objects
Selecting Objects
Editing Objects
Groups and Parenting
Tracking
Duplication
- DupliVerts
- DupliFaces
- DupliGroup
- DupliFrames
Mesh Objects
Meshes
- Mesh Structures
- Mesh Primitives
Selecting
- Selectable Elements
- Selection Basics
- Advanced Selecting
- Selecting Edges
- Selecting Faces
Editing
Basic Editing
- Translation, Rotation, Scale
- Adding Elements
- Deleting Elements
- Creating Faces and Edges
- Mirror editing
Vertex Editing
Edge Editing
Face Editing
Deforming Tools
- Mirror
- Shrink/Fatten Along Normals
- Smooth
- Noise
Duplicating Tools
- Duplicate
- Extrude
- Extrude Dup
- Spin
- Spin Dup
- Screw
Subdividing Tools
- Subdivide
- Subdivide fractal
- Subdivide smooth
- Loop Subdivide
- Knife Subdivide
- Bevel
Miscellaneous Tools
Retopo Tool
Sculpt Mode
Multi Resolution Mesh
Vertex Groups
Weight Paint
Mesh Smoothing
Curve Objects
Curves
Selecting
Editing
Advanced Editing
Surface Objects
Surfaces
Selecting
Editing
Text Objects
Texts
Editing
Meta Objects
Metas
Editing
Empty Objects
Empties
Group Objects
Groups
Scripts
Modeling Scripts
Modifiers and Deformation
Introduction
Introduction
Modifiers Stack
Modify
UVProject
Generate
Array
Bevel
Booleans
Build
Decimate
EdgeSplit
Mask
Mirror
Subsurf
Deform
Armature
Cast
Curve
Displace
Hooks
Lattice
MeshDeform
Shrinkwrap
SimpleDeform
Smooth
Wave
Simulate
Cloth
Collision
Explode
Fluid
Particle Instance
Particle System
Soft Body
Lighting
Introduction
Introduction
Lights
Introduction
Light Properties
Light Attenuation
Light Textures
What Light Affects
Lights In Other Contexts
Shadows
Introduction
Shadow Properties
Raytraced Shadow Properties
Volumetric Lights
Introduction
Lamps
Introduction
Lamp Light
- Raytraced Shadows
Spot Light
- Raytraced Shadows
- Buffered Shadows
- Halos
Area Light
- Raytraced Shadows
Hemi Light
Sun Light
- Raytraced Shadows
- Sky & Atmosphere
Lighting Rigs
Radiosity
Introduction
Rendering
Baking
Scene Light
Ambient Light
Ambient Occlusion
Exposure
Exposure
Materials
Introduction
Introduction to Shading
Materials Introduction
Usage
Assigning a material
Material Preview
Material Options
Multiple Materials
Properties
Diffuse Shaders
Specular Shaders
Ambient Light Effect
Color Ramps
Raytraced Reflections
Raytraced Transparency
Subsurface Scattering (SSS)
Strands
Node Materials
Material Nodes
Nodes Editor
Node Controls
Nodes usage
Nodes Groups
Material Node Types
- Input Nodes
- Output
- Color
- Vector
- Convertor
- Dynamic
Vertex Paint
Using Vertex Paint
Halos
Halos
Textures
Introduction
Introduction
UV/Image Editor
Common Options
Texture Stack
Texture Types
Texture Types
Procedural Textures
Image Textures
Video Textures
Texture Nodes
- Nodes Editor
- Node Controls
- Nodes usage
- Nodes Groups
-- Textures Input Nodes
-- Textures Output Nodes
-- Textures Color Nodes
-- Textures Patterns Nodes
-- Textures Textures Nodes
-- Textures Convertor Nodes
-- Textures Distort Nodes
Texture Plugins
Texture Painting
Painting the Texture
- Projection Paint
Mapping
Mapping
Environment Maps
UV Unwrapping Explained
- Unwrapping a Mesh
- Managing the UV Layout
- Editing the UV Layout
- Applying an Image
Influence
Influence
- Material
-- Bump and Normal
-- Displacement
- Particles
- World
World and Ambient Effects
World
Introduction
World Background
Ambient Effects
Mist
Stars
Rigging
Introduction
Introduction to Rigging
Armatures
Armature Objects
Panels overview
Bones
Visualization
Structure
Selecting
Editing
- Bones
- Properties
- Sketching
- Templating
Skinning
Introduction
Linking Objects to Bones
Skinning to Objects’ Shapes
Retargeting
Posing
Introduction
Visualization
Editing Poses
Pose Library
Using Constraints
Inverse Kinematics
Constraints
Introduction
Introduction
Constraints Common Interface
Constraints’ Stack
Transform Constraints
Copy Location
Copy Rotation
Copy Scale
Limit Distance
Limit Location
Limit Rotation
Limit Scale
Transformation
Tracking Constraints
Clamp To
IK Solver
Locked Track
Stretch To
Track To
Relationship Constraints
Action
Child Of
Floor
Follow Path
Null
Rigid Body Joint
Script
Shrinkwrap
Animation
Introduction
Introduction
The Timeline
Markers
3D Views
Animation Editors
Animation Editors
Ipo Editor
Ipo Curves and Keyframes
Ipo Datablocks
Ipo Types
Ipo Editor Interface
Editing
- Ipo Curves
- Keyframes
Ipo Drivers
Action Editor
Editing Action Channels
NLA Editor
Editing NLA Strips
Strip Modifiers
Animation Techniques
Introduction
Animating Objects
- Using Constraints
- Moving Objects on a Path
Animating Shapes
- Shape Keys
- Editing Shape Keys
- Animating Shape Keys
- Shape Keys Examples
Indirect Shape Animation
Animating Armatures
- Stride
Animating Lamps
Animating Cameras
Animating Materials
Animating Textures
Animating World
Physical Simulation
Introduction
Introduction
Dynamics
Force Fields
Collisions
Particles
Particles
Types
Physics
- Newtonian
- Keyed
- Boids
Visualization
Controlling Emission, Interaction and Time
Cache & Bake
Hair
Children
Vertex Groups
Particle Mode
Soft Body
Introduction
Exterior Forces
Interior Forces
Collisions
Simple Examples
Combination with Armatures
Combination with Hair Particles
Reference
Cloth
Introduction
Fluids
Fluid
Using the Game Engine
Using the Game Engine
Rendering
Introduction
Introduction
Camera
The Camera
Perspective (Vanishing points)
Depth Of Field
Render
Displaying Renders
Basic Options
Antialiasing (Oversampling)
Rendering Animations
Panoramic
Render Baking
Using the Command Line
Output
Output
Video Output
Effects and Post Processing
Introduction
Render Layers
Render Passes
Edges & Toon
Stamp
Color Management & Exposure
Depth Of Field
Motion Blur
Render Performance
Rendering Performance
Distributed Rendering
External Render Engines
Introduction
YafRay
Compositing with nodes
Composite Nodes
Introduction
Nodes Editor
Node Controls
Nodes usage
Nodes Groups
Composite Node types
Composite Node types
Input Nodes
Output Nodes
Color Nodes
Vector Nodes
Filter Nodes
Convertor Nodes
Matte Nodes
Distortion Nodes
Editing Sequences
Introduction
Introduction
The sequencer
Usage
Sequencer Modes
Sequence Screen Layout
Effects
Built-in Effects
Plugin Effects
Audio
Audio Sequences
Extending Blender
Introduction
Introduction
Python Scripting
Python Scripting in Blender
Setting up Python
The Text Editor
A working example
References
Python Scripts
Script Catalog
Bundled Scripts
Plugins
Blender's Plugins System
Texture plugins specifications
Sequence plugins specifications
Game Engine
Introduction
Introduction
The Logic Editor
Usage
Game Properties
Sensors
Introduction
Sensor Types
Controllers
Introduction
Expressions
Actuators
Introduction
Action
Camera
CD
Constraint
Edit Object
Ipo
2D Filters
Game
Message
Motion
Parent
Property
Random
Scene
Shape Action
Sound
State
Visibility
Cameras
Cameras
Dome Camera
Physics
Physics Engine
Material Physics
Object Types
- Static
- No Collision
- Dynamic
- Rigid Body
- Soft Body
- Occluder
- Sensor
Python API
Bullet physics
VideoTexture
Various resources
List of Features
External resources
Game Engine Basics (BSoD Tutorial)
FAQ