[WML-Source: Animation_with_objects.wml][TOC][Part00]
[chapter]Animation with objects
[section]Object IPOs
[subsection]Keys and curves
Two methods are normally used in animation software to start a 3D
object moving.
[point]Key frames
Complete positions are saved for certain time units (frames). An
animation is created by moving an object through them interpolated
fluidly. The advantage of this principle is that it allows you to
work with clearly visualised units. The animator works from position
to position and can change already created positions or move them in
time.
[point]Motion Curves
Curves can be drawn for each XYZ component for location, rotation and
size. These, in fact, form the graphs for the movement, with time set
out horizontally and the value set out vertically. The advantage of
this system is that you have precise control over the results of the
movement.
Both systems are completely integrated in Blender: in the "Ipo".
Fundamentally, the Ipo system consists of the standard motion
curves. A simple press of a button changes the Ipo to a key system,
without conversion and with no change in the results. The user can
work any way he wishes with the keys and switch to motion curves and
back again - whatever produces the best result or satisfies the user's
preferences.
This chapter first describes the basic principles of the Ipo block and
working with motion curves. We close with the "IpoKey" system.
[subsection]Ipo Block
The Ipo block in Blender is universal. It makes no difference whether
an Object's movement is controlled or the Material's settings. If you
once learn to work with Object Ipos, how you work with other Ipos is
obvious. Blender does distinguish between different types of
Ipos. This only has to do with the type of blocks on which Ipos can
work. It is better not to link Object Ipos to a Material! The user
does not need to think about this; the interface keeps track of it
automatically.
Every type of Ipo block has a fixed number of available
channels. These have a name (LocX, SizeZ, etc.) which indicates how
they can be applied. When you add an IpoCurve to a channel, animation
starts up immediately. At your discretion, and there are separate
channels for this, a curve can be linked directly to a value or can
only affect a difference from this. The latter enables you to move an
Object as usual with the Grabber, while the actual location is
determined by IpoCurves relative to it.
The Blender interface offers extensive options for copying Ipos,
linking Ipos to more than one Object (one Ipo can animate multiple
Objects.), or deleting Ipo links. The IpoWindow Reference section
gives a detailed description of this. This chapter is restricted to
the options for application.
[subsection]Making Ipos in the 3DWindow
The most simple method for creating an Object Ipo is with the IKEY,
"Insert key", command in the 3DWindow. A PopupMenu provides a wide
selection of options. We will select the topmost option: "Loc". Now
the current location, X-Y-Z, is saved. Everything takes place
automatically:
- If there is no Ipo block, a new one is created and
linked to the Object.
- If there are no IpoCurves in the channels
"LocX", "LocY" and "LocZ", these are created.
- Vertices are then
added in the IpoCurves with the exact values of the Object location.
We go 30 frames further (3 x UPARROW) and move the Object. Again we
use IKEY and immediately press ENTER. The new position is inserted in
the IpoCurves. We can see this by slowly paging back through the
frames (LEFTARROW). The Object moves between the two positions.
In this way, you can create the animation by paging through the
frames, position by position. Note that the location of the Object is
directly linked to the curves. When you change frames, the Ipos are
always re-evaluated and re-applied. You can freely move the Object
within the same frame, but since you have changed frame, the Object
'jumps' to the position determined by the Ipo.
The rotation and size of the Object are completely free in this
example. They can be changed or animated with the "Insert key".
[subsection]The IpoWindow
Now we want to see exactly what happened. The first Screen for this is
initialised in the standard Blender start-up file. Activate this
Screen with (ALT-)CTRL+LEFTARROW. At the right we see the IpoWindow
displayed. This shows all the IpoCurves and shows the channels used
and those available. You can zoom in on the IpoWindow and translate,
just as everywhere else in Blender with (CTRL+) MiddleMouse.
In addition to the standard channels, you have the 'delta' options,
such as "dLocX". These channels allow you to assign a relative
change. This option is primarily used to control multiple Objects with
the same Ipo. In addition, it is possible to work in animation
'layers'. You can achieve subtle effects this way without having to
draw complicated curves.
Each curve can be selected individually: with RightMouse. In addition,
the Grabber and Size modes operate here just as in the 3DWindow. By
selecting all curves (AKEY) and moving them to the right (GKEY), you
move the complete animation in time.
[subsection]Beziers
Each curve can be placed in EditMode individually, or you can do it
collectively. Select the curves and press TAB. Now the individual
vertices and handles of the curve are displayed. The Bezier handles
are coded, just like the Curve Object:
- Free Handle (black). This can be used any way you wish. Hotkey: HKEY
(switches between Free and Aligned).
- Aligned Handle (pink). This
arranges all the handles in a straight line. Hotkey: HKEY (toggles
between Free and Aligned).
- Vector Handle (green). Both parts of a
handle always point to the previous or next handle. Hotkey: VKEY.
- Auto Handle (yellow). This handle has a completely automatic length
and direction. Hotkey: SHIFT+H.
Handles can be moved by first selecting the middle vertex with
RightMouse; this selects the other two vertices as well. Then
immediately start Grab mode with RightMouse-hold-move. Handles can be
rotated by selecting the end of one of the vertices. Then use the
Grabber again with RightMouse-hold-move.
As soon as handles are rotated, the type is changed automatically:
- Auto Handle is Aligned.
- Vector Handle becomes Free.
"Auto" handles are placed in a curve by default. The first and last
Auto handles always move horizontally, which creates a fluid
interpolation.
[subsection]IpoCurves
The IpoCurves have an important feature that distinguishes them from
normal curves; it is impossible to place more than one curve segment
horizontally. Loops and circles in an Ipo are senseless and ambiguous;
an Ipo can only have 1 value at a time. This is automatically
detected in the IpoWindow. By moving part of the IpoCurve
horizontally, you see that the selected vertices move 'through' the
curve. This allows you to duplicate parts of a curve (SHIFT+D) and to
move them to another time frame.
It is also important to specify how an IpoCurve must be read outside
the curve itself. There are three options for this in the IpoHeader.
[point]Extend mode Constant (IconBut)
The ends of selected IpoCurves are continuously (=horizontally) extrapolated.
[point]Extend mode Direction (IconBut)
The ends of the selected IpoCurves continue in the direction in which they ended.
[point]Extend mode Cyclic (IconBut)
The complete width of the IpoCurve is repeated cyclically.
[point]Extend Mode Cyclic Extrapolation (IconBut)
The complete width of the IpoCurve is extrapolated cyclic.
In addition to Beziers, there are two other possible types for IpoCurves. Use the TKEY comand to select them. A PopupMenu asks what type the selected IpoCurves must be:
- "Constant"; after each vertex of the curve, this value remains constant. No interpolation takes place.
- "Linear"; linear interpolation occurs between the vertices.
- "Bezier"; the standard fluid interpolation.
[subsection]Draw IpoCurves
The IpoCurves can also be drawn 'by hand'. Use the CTRL+LeftMouse command. Here are the rules:
- There is no Ipo block yet (in this window) and one channel is selected: a new new IpoBlock is created along with the first IpoCurve with one vertex.
- There is already an Ipo block, and a channel is selected without an IpoCurve: a new IpoCurve with one vertex is added
- Otherwise only a new point is added to the selected IpoCurve.
- This is not possible if multiple IpoCurves are selected or in EditMode.
This is the best method for specifying axis rotations quickly. Select the Object. In the IpoWindow, press one of the "Rot" channels and use CTRL+LeftMouse to insert two points. If the axis rotation must be continuous, you must use the button IpoHeader->"Extend mode Directional".
[subsection]Rotations and Scaling
One disadvantage of working with motion curves is that the freedom of transformations is limited. You can work quite intuitively with motion curves, but only if this can be processed on an XYZ basis. For a location, this is outstanding, but for a size and rotation there are better mathematical descriptions available: matrices (3x3 numbers) for size and quaternions (4 numbers) for rotation. These could also have been processed in the channels, but this can quite easily lead to comfusing and mathematically complicated situations.
Limiting the size to the three numbers XYZ is obvious, but this limits it to a rectangular distortion. A diagonal scaling such as 'shearing' is impossible. This can be solved simply by working in hierarchies. A non-uniform scaled Parent will influence the rotation of a Child as a 'shear'.
The limitation of the three number XYZ rotation is less intuitive. This so-called Euler rotation is not uniform - the same rotation can be expressed with different numbers - and has the bothersome effect that it is not possible to rotate from any position to another, the famous gimbal lock.
While working with different rotation keys, the user may suddenly be confronted with quite unexpected interpolations, or it may turn out to be impossible to force a particular axis rotation when making manual changes.
Here, as well, a better solution is to work with a hierarchy. A Parent will always assign the specified axis rotation to the Child.
(It is handy to know that the X, Y and Z rotations are calculated one after the other. The curve that affects the "RotX" channel, always determines the X axis rotation).
Luckily Blender calculates everything internally with matrices and quaternions. Hierarchies thus work normally and the Rotate mode does what you would expect. Only the Ipos are a limitation here, but in this case the ease of use prevails above the not very intuitive mathematical purity.
[subsection]IpoKeys
The easiest way to work with motion curves is to convert them to
IpoKeys. We return to the situation in the previous example: we have
specified two positions in a Object Ipo in frame 1 and frame 31 with
"Insert Key". At the right of the screen, you can see an IpoWindow. We
set the current frame to 21.
Press KKEY while the mouse cursor is in the 3DWindow. Two things happen now:
- The IpoWindow switches to IpoKey mode.
- The selected Object is assigned the "DrawKey" option.
The two actions each have separate meanings.
- The IpoWindow now draws vertical lines through all the vertices
of all the visible IpoCurves. Vertices with the same 'frame' value are
linked to the vertical lines. The vertical lines (the "IpoKeys") can
be selected, moved or duplicated, just like the vertices in
EditMode. You can translate the IpoKeys only horizontally.
- The position of the Object for each IpoKey is drawn in the
3DWindow.
In addition to now being able to visualise the key positions of the
Object, you can also modify them in the 3DWindow. In this example,
use the Grab mode on the Object to change the selected IpoKeys.
Below are a number of instructions for utilising the full power of the
system:
- You can only use the Rightmouse to select IpoKeys in the IpoWindow. Border select and extend select are also enabled here. Select all IpoKeys to transform the complete animation system in the 3DWindow.
- The "Insert Key' always affects all selected Objects. The
IpoKeys for multiple Objects can also be transformed simultaneously in
the 3DWindow. Use the SHIFT+K command: "Show and select all keys" to
transform complete animations of a group of Objects all at once.
- Use the PAGEUP and PAGEDOWN commands to select subsequent keys in
the 3DWindow.
- You can create IpoKeys with each arrangement of channels. By
consciously exluding certain channels, you can force a situation in
which changes to key positions in 3DWindow can only be made to the
values specified by the visible channels. For example: with only the
channel "LocX" selected, the keys can only be moved in the X
direction.
- Each IpoKey consists of the vertices that have exactly the same
frame value. If vertices are moved manually, this can result in large
numbers of keys, each of which only have one curve. In that case, use
the JKEY ("Join") command to combine selected IpoKeys. It is also
possible to assign selected IpoKeys vertices for all the visible
curves: use IKEY in the IpoWindow and choose "Selected keys".
- The DrawKey option and the IpoKey mode can be switched on and off
independently. Use the button EditButtons->DrawKey to switch off this
option or Object. You can switch IpoKey mode on and off yourself with
KKEY in the IpoWindow. Only KKEY in the 3DWindow turns on/off both
the DrawKey and IpoKey mode.
- Only KKEY in the IpoWindow. Only KKEY in the 3DWindow turns on/off both
the DrawKey and IpoKey mode.
[section]Vertex Keys
[subsection]The Key block
VertexKeys, which should not be confused with "Object keys", the
specified positions of Objects, can also be created in Blender;
VertexKeys are the specified positions of vertices in ObData. Since
this can involve thousands of vertices, separate motion curves are not
created for each vertex, but the traditional Key position system is
used instead. A single IpoCurve is used to determine how interpolation
is performed and the times at which a VertexKey can be seen.
VertexKeys are part of ObData, not of an Object. When duplicating
ObData, the associated VertexKey block is also copied. It is not
possible to permit multiple users to use VertexKeys in Blender, since
it would not be very practical.
The Key block is also universal and understands the distinction
between a Mesh, Curve, Surface or Lattice. Their interface and use are
therefore identical. Working with Mesh VertexKeys is explained in
detail in this section, which also contains a number of brief comments
on the other ObData.
The first VertexKey position created, is always the reference Key.
This key defines the texture coordinates. Only with this Key active
the faces and curves or the number of vertices can be changed. It is
allowed to assign other Keys a different number of vertices. The Key
system automatically interpolates this.
[subsection]Mesh VertexKeys
Creating VertexKeys in Blender is very simple, but the fact that the system is very sensitive in terms of its configuration, can cause a number of 'invisible' things to happen. The following rule must therefore be taken into consideration:
- As soon as a VertexKey position is inserted it is immediately
active. All subsequent changes in the Mesh are linked to this Key
position. It is therefore important that the Key position is added
before editing begins.
A practical example is given below.
When working with VertexKeys, it is very handy to have an IpoWindow
open. Use the first Screen from the standard Blender file, for
example. In the IpoWindow, we must then specify that we want to see
the VertexKeys. Do this using the Icon button with the vertex square.
Go to the 3DWindow with the mouse cursor and press IKEY. With a Mesh
Object active, this key gives us the "Insert Key" menu with the
"Mesh" option at the bottom. As soon as this has been selected, a
yellow horizontal line is drawn in the IpoWindow. This is the first
key and thus the reference Key. An IpoCurve is also created. Go a
few frames further and again select: IKEY, ENTER (in the
3DWindow). The second Key is drawn as a light blue line. This is a
normal Key; this key and all subsequent Keys affect only the vertex
information. Press TAB for EditMode and translate one of the vertices
in the Mesh. Then browse a few frames back: nothing happens! As long
as we are in EditMode, other VertexKeys are not applied. What you see
in EditMode is always the active VertexKey. Leave EditMode and
browse through the frames again. We now see the effect of the
VertexKey system.
VertexKeys can only be selected in the IpoWindow. We always do this
out of EditMode: the 'contents' of the VertexKey are now temporarily
displayed in the the Mesh. We can edit the specified Key by starting
Editmode.
There are three methods for working with Vertex Keys:
- The 'performance animation' method. This method works entirely in EditMode, chronologically from position to position.
- Insert Key. The reference is specified.
- A few frames further: Insert Key. Edit the Mesh for the second position.
- A few frames further: Insert Key. Edit the Mesh for the third position.
- Etc.
- The 'editing' method.
- We first insert all of the required Keys, unless we have already created the Keys using the method described above.
- Blender is not in EditMode.
- Select a Key. Now start EditMode, change the Mesh and leave EditMode.
- Select a Key. Start EditMode, change the Mesh and leave EditMode.
- Etc.
- The 'insert' method
- Whether or not there are already Keys and whether or not we are in EditMode does not matter in this method.
- Go to the frame in which the new Key must be inserted.
- Insert Key.
- Go to a new frame, Insert Key.
- Etc.
While in EditMode, the Keys cannot be switched. If the user attempts
to do so, a menu appears: "Copy Key". This method can be used to copy
the current key to the newly selected Key.
[subsection]The IpoCurve and VertexKey lines
Both the IpoCurve and the VertexKey lines are drawn in the
IpoWindow. They can be separately selected with RightMouse. Since it
would otherwise be too difficult working with them, selection of the
Key lines are switched off when the curve is in EditMode. The
channel button can be used to temporarily hide the curve
(SHIFT+LeftMouse on "Speed") to make it easier to select Keys.
The Key lines in the IpoWindow can be placed at any vertical
position. Select the line and use Grab mode to do this. The IpoCurve
can also be processed here in the same way as described in the
previous section. Instead of a 'value', however, the curve determines
the interpolation between the Keys, e.g. a sine curve can be used to
create a cyclical animation.
With a Key line selected, three interpolation types can be
specified. Press TKEY to open a menu with the options:
- "Linear"; interpolation between the Keys is linear. The Key line is
displayed as a dotted line
- "Cardinal": interpolation between the Keys is fluid; the standard.
- "BSpline": interpolation between the Keys is extra fluid and
includes four Keys in the interpolation calculation. The positions are
no longer displayed precisely, however. The Key line is drawn as a
broken line.
[subsection]Tips
- Key positions are always added with IKEY, even if they are located
at the same position. Use this to copy positions when inserting. Two
key lines at the same position can also be used to change the effect
of the interpolation.
- If no Keys are selected, EditMode can be invoked as usual. However,
when you leave EditMode, all changes are undone. Insert the Key in
EditMode in this case.
- For Keys, there is no difference between selected and active. It
is therefore not possible to select multiple Keys.
- When working with Keys with differing numbers of vertices, the faces
can become an enormous chaos. There are no tools that can be used to
specify precise sequence of vertices. This option is actually
suitable only for Meshes that have only vertices such as Halos.
- Editbuttons->Slurph is an extremely interesting option. The
"Slurph" number indicates the interpolation of Keys per vertex with
a fixed delay. The first vertex comes first and the last vertex has a
delay of "Slurph" frames. This effect makes it possible to create very
interesting and lively Key framing. Pay special attention to the
sequence of the vertices for Meshes. They can be sorted using the
command EditButtons->Xsort or made random using the command
EditButons->Hash. This must of course be done before the VertexKeys
are created. Otherwise, unpredictable things can happen (great for
Halos though).
[subsection]Relative Vertexkeys
(relative VertexKeys-cw-)
Relative VertexKeys simplify the creation of facial
and character animation by blending sets of VertexKeys.
While traditional vertex keys are controlled with only
one interpolation curve, relative vertex keys are controlled
by one interpolation curve for every key position,
thus relative keys can be mixed (added, subtracted, etc.).
For facial animation the base position might be
a relaxed position with a slightly open mouth and
eyelids half open. Then keys would be defined for
left/right eyeblink, happy, sad, smiling, frowning,
etc.
The trick with relative vertex keys is that only
the vertices which are changed between the base
and the key affect the final output during blending.
This means it is possible to have several keys
affecting the object in different places all
at the same time.
For example, a face with three keys: smile, and
left/right eyeblink could be animated to smile,
then blink left eye, then blink right eye, then open
both eyes and stop smiling - all by blending 3
keys. Without relative vertex keys 6 vertex keys would
have needed to be generated, one for each target
position.
[point]The Relative VertexKey buttons
The "Relative Keys" button (AnimButtons, F7) toggles the VertexKey system
for the selected object between traditional and relative mode.
It only becomes active after the first ('base') key has
been inserted.
Relative keys are defined by inserting normal vertex keys. The
vertical order of the vertex key determines its corresponding IPO
curve, ie. the lowest blue key line will be controlled by the "Key1"
curve, the second lowest will be controlled by the "Key2" curve, and
so on.
The "Relative Keys" button in the AnimButtons must be active
for the Key curves to be displayed. When "Relative Keys" is active
the speed curve no longer affects the mesh position and can
be removed.
The blending between relative keys is controlled by the
IPO Curve for each key. These curves should be created in the
typical fashion (see manual page 118, "Draw IPOCurves").
The final position is determined by adding all of the affects
of each individual IPO curve.
An important part of relative keys is the use of additive
or extrapolated positions. For example, if the base position
for a face is with a straight mouth, and a key is defined
for a smile, then it is possible that the negative application
of that key will result in a frown. Likewise, extending the
IPO Curve above 1.0 will "extrapolate" that key, making an
extreme smile.
[subsection]Curve and Surface Keys
As mentioned earlier in this manual, Curve and Surface Keys work
exactly the same way as Mesh Keys. For Curves, it is particularly
interesting to place Curve Keys in the bevel Object. Although this
animation is not displayed real-time in the 3Dwindow, it is rendered.
[subsection]Lattice Keys
Lattice Vertex Keys can be applied in a variety of ways by the
user. When combined with "slurping", they can achieve some very
interesting effects. As soon as one Key is present in a Lattice, the
buttons that are used to determine the resolution are blocked.
[section]Special animation techniques
[subsection]Motion paths
Curve Objects can be used for the 3D display of an animation
path. Only the first curve in the Object is then used.
Each Curve becomes a path by setting the option AnimButtons->CurvePath
to ON. All Child Objects of the Curve move along the specified
path. It is also a good idea to set the option EditButtons->3D to ON
so that the paths can be freely modeled.
In the ADD menu under Curve->Path, a primitive with the correct
settings is already. This is a 5th order Nurbs spline, which can be
used to create very fluid, continuous movements.
Curves that are used as paths always get the correct number of
interpolated points automatically. The button EditButtons->ResolU has
not effect here.
The speed along a path is determined with a curve in the IpoWindow. To see it, the Header button with the 'arrow' icon must be pressed in.
The complete path runs in the IpoWindow between the vertical values 0.0 and 1.0. Drawing a curve between these values links the time to the position on the path. Backward and pulsing movements are possible with this.
For most paths, an IpoCurve must run precisely between the Y-values
0.0 and 1.0. To achieve this, use the Number menu (NKEY) in the
IpoWindow. If the IpoCurve is deleted, the value of
AnimButtons->PathLen determines the duration of the path. A linear
movement is defined in this case.
Using the option AnimButtons->CurveFollow, a rotation is also given to
the Child Objects of the path, so that they permanently point in the
direction of the path. Use the "tracking" buttons in the AnimButtons
to specify the effect of the rotation:
[point]TrackX, Y, Z, -X, -Y, -Z (RowBut)
This specifies the direction axis, i.e. the axis that is placed on the path.
[point]UpX, UpY, UpZ (RowBut)
Specifies which axis must point 'upwards', in the direction of the
(local) positive Z axis. If the "Track" is the "Up" axis, it is
deactivated.
Curve paths cannot be given uniform rotations that are perpendicular
to the local Z axis. That would make it impossible to determine the
'up' axis.
To visualise these rotations precisely, we must make it possible for a
Child to have its own roations. Erase the Child's rotation with
ALT+R. Also erase the "Parent Inverse": ALT+P. The best method is to
'parent' an unrotated Child to the path with the command
SHIFT-CTRL+P: "Make parent without inverse". Now the Child jumps
directly to the path and the Child points in the right direction.
3D paths also get an extra value for each vertex: the 'tilt'. This can
be used to specify an axis rotation. Use TKEY in EditMode to change
the tilt of selected vertices in EditMode, e.g. to have a Child move
around as if it were on a rollercoaster.
[subsection]Object Tracking
In Blender, Objects can be given a rotation constraint so that they always refer to a "Track" Object.
Activate the option in the 3DWindow with CTRL+T: "Make Track". All selected Objects now refer to the active Object.
Since Objects can also have their own rotation, this rotation van better be erased first: ALT+R. If the Object is a Child, erase the "Parent Inverse" also: ALT+P.
Then use the tracking buttons again to specify the desired tracking effect.
The tracking constraint is the 'odd man out' in the hierarchy. Parent rotations and the rotation of the Object itself can affect tracking. The option EditButtons->PowerTrack can be used to ignore the Object and Parent rotations.
Tracking is often used with Cameras to make sure that the main subject is always visible. The disadvantage of tracking is that it occurs perfectly. The object being followed always appears in the centre of the picture, making it appear to stand almost completely still.
Use of manually inserted Object Ipos in Cameras gives a more natural effect. Carefully chosen camera positions and subtle camera movements can have a significant impact on the power of an animation.
[subsection]Duplicators
Blender can automatically generate Objects without actually duplicating them. This places a 'virtual' copy of the Object on each specified frame of an animation system. It is also possible to have a virtual copy placed on each vertex (or particle). These options can be specified in the AnimButtons.
The first option is called "DupliFrames". Whatever type of movement the Object has, i.e. with its own Object Ipos or along a Curve path, a temporary copy of the Object is created for each frame, from "DupSta" to "DupEnd". During the specified frame interval, the "DupliFrames" system is created. The automatically generated Objects are displayed in a light grey wireframe.
The second option is "DupliVerts". This option works only for Mesh
Objects, but such a system can duplicate all other Object types. A
copy of the Child Object is placed on each vertex of the Mesh. The
option also works for Meshes that emit Particles. A copy is placed on
each Particle. With the option DupliVerts Rot, the duplicated Objects
also can obtain the rotation of the Particles.
The command CTRL-SHIFT+A ("Make Dupli's Real") makes the generated Objects real. This tool is very useful when modeling.
[subsection]Ika and Skeletons
The methods that can be used to build stable Ikas and Skeletons were handled in the previous section.
Ikas can be put in motion with hierarchies. By parenting the 'Effectors' to another Object, hand movements and foot steps can be defined quite easily. In the illustration above, Effectors on the legs have been parented to the Emptys.
An alternative is to 'key frame' the Effector itself. Three channels are available in the standard Object Ipo for this: EffX, EffY, EffZ. The IKEY ("Insert Key") menu also offers this option.
The way in which the Ika is currently implemented makes it possible to effectively control individual movements and timing, but it is very important that the global animation system is clear in advance in terms of precisely where it is located and how the rotation will be.
[subsection]Particles
Particles are halos (or Objects if the option "DupliVerts" is ON) that are generated based on the laws of nature. Particles can be used to create smoke, fire, explosions, a fountain, fireworks or a school of fish.
A Particle system is precalculated as a pre-process (it can sometimes take a while), after which it can be viewed in the 3Dwindow in real-time. Particles are drawn as small black pixels.
Blender does not separately calculate and remember the locations of all of the particles in each frame for the particle system. Instead, interpolation occurs between a fixed number of key positions. A larger number of keys gives a more fluid, detailed movement, but also significantly increases the amount of memory used and the time required to calculate the system.
Particles are a full-fledged part of Blender's animation system. They can also be deflected and controlled by Lattices.
Only Meshes can have Particles.
Use the AnimButtons to add an "Effect" of the type "Particle". Then specify the desired settings:
- The total number of Particles to be generated. The first Particle is created on the position of the first vertex, etc.. The process is performed cyclically, vertex by vertex.
- The start time of the first Particle and the total time that Particles are generated.
- The age of each Particle, which can be varied by a random factor.
- The start speed of the Particle, based on the vertex normal, a random factor, the current Object speed or even a Texture.
- The force that affects the Particle for the duration of its life. The force may be gravity or a sort of wind. Textures can contribute a lively turbulence.
- The way in which the Particle is drawn, i.e. as a 'point' or as a line rounded in the direction in which the Particle moves.
Next, a Halo Material must be added to the Mesh. Any of the possible
halos can be Particles. See also the description of the Halo
MaterialButtons.
Material Ipos can be used to completely change the colour, intensity
or size of Particles during their life span. By default, the Ipo time
interval of 0-100 visualises the entire life of a Particle.
Blender does not offer presets for 'smoke', 'fire' or
'explosions'. The Particle system is flexible and interactive enough
to master the fine points with a little practice. A number of tips
are given below:
- The start speed can be determined by the vertex normals or the Mesh. If the Mesh does not have faces (and thus has no vertex normals), the normalised local vertex coordinate is used as start speed.
- Use a negative "Z Force" to suggest gravity. Add a "Damp" factor to this as friction.
- Fire and smoke Particles are very convincing if they are given a twisting movement. This can be achieved by applying a Texture to the movement:
- By default, this is the last Texture of the Material, in channel number 8. Use a procedural Texture such as "Clouds" or "Marble".
- The Particle Button "Tex" determines the strength of the Texture's effect.
- Set the Particle Button "Grad" to ON (the gradient). This is a mathematical derivitive based on 4 samples that together form a speed vector. This method gives a very convincing turbulent effect with procedural textures.
- The button "Nabla" determines the size of the area in which the gradient is calculated. This value must be carefully tuned to the frequency of the texture.
- Set the number of "Keys" as high as possible to view the extremely subtle twists this method sometimes produces.
- The turbulence can be displayed more clearly in the 3DWindow if the Particle option "Vect" is selected. Note, however, that this also has an impact on the rendering method.
- Standard halos are always rendered as a 'sum total'. (unified renderer-cw-)
By giving MaterialButtons->Add a lower value, dark halos can be rendered.
- Smoke halos can be created most effectively using an Image Texture of a cloud of smoke. Set the "Add" and "Alpha" value of the Material to the lowest possible value. Clouds of smoke start out small and gradually increase in size and become more transparent as they age.
- The best explosions can be achieved by superimposing different Particle systems with differing speeds and colours.
- Fireworks can be created by allowing Particles to 'multiply' at the ends of their lives. The settings used to achieve this are located to the right of the "Curmul" button.
- The option AnimButtons->DupliVerts places a 'virtual' copy of the Child Objects of the Particle Mesh on each Particle. Setting the "Vect" option to ON also gives a rotation.
(Static Particles-cw-)
-cw-
Last modified: Wed Aug 16 11:10:08 CEST 2000
/*
*/