Professional Documents
Culture Documents
WEBSITE
Nam Pham nam@blenderart.org Tutorial - To Rig a Boat’s Rigging 9
DESIGNER
Gaurav, Sandra, Alex
Tutorial - Perpetual Motion Machine Rigging 19
PROOFER
Kevin Braun
Phillip Ryals
Bruce Westfall 35
Joshua Leung
Tutorial - Caterpillar Soft Track
Lynda Schemansky
Eric Pranausk
Noah Summers 47
Joshua Scotton Tutorial - Animation Temporal Verification
Mark Warren
Wade Bick
Patrick O'Donnell 51
Brian C. Treacy KnowHow - Armatures aren’t just for Characters
Scott Hill
Henriel Veldtmann
KnowHow - Meshdeform Modifier 52
WRITERS
Johannes Ewers
William Edstrom
Hamed Zaghaghi Bookreview - Animating With Blender (Roland Hess) 54
Alain Mathez
COVER ART
Moonflower - by Derek Watts
dwatts1@gmail.com
V ery few of us enjoy rigging a character, but have some pretty inventive rigs/set ups to share.
that is no excuse for not learning how to
set up at least a basic rig. Especially con-
sidering the number of great resources that
have become available over the last couple of
So go grab a hot drink (I don't know about you
but it is cold where I am) and settle down for a
very informative read.
years.
In addition to the large number of tutorials sandra@blenderart.org
written by various community members and all
the free rigs available for study, there are two
great books (Introducing Character Animation
with Blender and Animating with Blender) as
well as Bassam's ManCandy FAQ's DVD available
for reference and study.
After reading (and re-reading) both books and
watching Bassam's ManCandy DVD (too many
times to count), the confusion began to clear as
I started seeing how it all went together. So I
finally gave up avoiding character rigging. While
I am still not a rigging master, I no longer stare
in confusion at the amazing mess I just made of
my rig. And better yet, the rigs actually work...
well kind of. :P I think I still need to keep prac-
ticing.
Introduction
For years I have avoided anything beyond very simple
rigging. In fact in my effort to avoid learning what
seemed like an impossibly complicated skill, I ended
up becoming the queen of the incredibly simple rig.
My rigs had no constraints, no bone shapes and as
few bones as possible. Then again, I was only posing
characters for still images, there was no animating
controls needed.
Well okay, yes it is still
complicated, but there is a logic, Trying to study and learn from the variety of free rigs
flow and even a pattern to it. available only added to my confusion. They were
composed of so many bones, constraints and odd
bone shapes, I never could make heads or tails of
just what was going or how to build one of my own.
nipulated during animation. Controls can be very
But after serious study of some great resources, I re-
simple (plain armature bones) to very fancy and
alized that the seeming chaos of rigs is actually not
complex bone shapes that visually tell you what it
that complicated. Well okay, yes it is still complicat-
does.
ed, but there is a logic, flow and even a pattern to it.
Make sure all your controllers are part of the same
When you break it down to the most basic idea, a
armature object.
good working rig has three main components.
Helpers are not manipulated directly and generally
Controls hidden during the animation process.
Deformers Helpers are kind of like the frame you build when
you build a house, you definitely need them, but you
Helpers don't do much with them once they are put in place.
That seems simple enough, and yet this is exactly Some examples of Helpers:
where it starts to seem complicated. So let's look at
what each component does and see if we can't clear leg bones
this up a little bit more.
Spine
Controls are the parts of the rig that you actually Arm bones
select to do any animating. It helps to remember
that not every bone in a rig is actually directly ma-
Deformers are driven by the Controllers to do the Remember: to enter object mode and use Ctrl + A to
actual work. Like the Helpers, at animation time, apply scale / rotation before setting up any IK's,
they are not seen by the animator. Contraints or Controllers.
The armature itself is considered to be a deformer You can start from the top of your rig and
work down, from the bottom up, one limb at
Mesh Deform Modifier a time, or from the spine out, just don't
bounce around willy nilly. You will end up for-
Shape Keys getting something.
Lattices Start setting up IK solvers and any needed con-
straints.
Hooks
(i.e. pole targets, track to, etc.)
So now that we know what makes up a rig, where
and how do you start? We won't be building a full rig If setting up right leg, next go to left leg and
here (there are plenty of excellent tutorials already make sure settings all match
written about that). Instead we look at a good work-
flow. Here are some tips to get you started: Set up controllers: These can include controls to
operate the shape keys for facial animation, con-
Probably the best advice for beginning riggers is to trols for curling fingers, standing on tip toe (foot)
build your rig in stages. That way you won't forget as well as many others.
something and you can fix problems as you encoun-
ter them. You can set the controllers as you are setting
up the IK solvers and Constraints or in a sepa-
It is best to start by creating a simple arma- rate 2nd sweep through the rig
ture setup.
Test all bones, joints and controls.
Following the general shape of your character,
add bones to create a simple stick figure Bind the rig to the character using the Armature
Modifier (or to a Mesh Deform Modifier that will
Make sure all your Parent relationships are set up be deforming your character).
and correct.
i.e. Hand bones are parented to a lower arm Test all bones, joints, controls for pinching,
bone which is parented to an upper arm bone distortion etc.
etc.
Time to separate the rig into bone layers for a
Make sure you don't have any bones that get cleaner look for the animator.
left behind when you move the armature.
All controls on one layer
Test all movements.
All helpers on one or more layers (you can
separate them into various layer groupings for
The Blender Gamekit book update: Project is now in Bundle: Essential + BBB
its last stage. We’re reviewing the designed pages, Bounce, Tumble and Splash!
finishing the CD for the book, and hopefully within
one or two weeks it goes to print! (But you know, BlenderNewbies Video Tutorial Compilation DVD-
planning doesn’t always match human limitations!) ROM
You can now pre-order copies even up to December
15 with a nice 20% discount! Game Competition
Needless to say, revenues will help Blender Founda- This competition is being run to encourage develop-
tion projects (and me & Brecht coding 2.5)! ers (or teams of developers) to create fun, cool look-
ing content for the Game Engine built into Blender.
-Ton-
With the release of 2.48, the GE has received a HUGE
boost in terms of speed, functionality, and more im-
portantly, kudos.
Prize: Euro100
Major Categories
This prize will be awarded to the best content cre-
Euro400 of the prize fund will be split into two catego- ated using just Logic Blocks. The Blender GE Logic
ries... Block system is a very powerful way for artists with
no coding skills to create interactive content. This
Category 1: Best Graphics prize awards artists using Blender in this way.
Prize: Euro200 For further information and rules regarding this con-
test, visit the Game Competition Announcement
This prize will be awarded to the best use of graph- page.
ics. While using GLSL might seem to be the best way
to achieve this for some effects, if someone enters a
great looking entry that doesn't use GLSL, this will be
taken into account during the voting.
Entries could be walk throughs, graphical demos as
in scene.org, and of course full on games.
Minor Categories
Note: These categories do not exclude entry to the
above main categories.
Category 1: Best content created using only logic
bricks (no Python scripting).
Our goal is to automate the movement of tackles and stabilize the mast. Another two cylinders are posi-
sail so that they follow the rotation of the two booms. tioned left (port side) and right (starboard) from the
The form of the sail should adjust in a natural way. mast as shrouds for additional stabilization. Mast,
shrouds, and stay form the “standing rigging” of our
To do that we need the following automated behavior: boat. That is the collection of the fixed, non-moveable
parts. Now we need three ring objects as connection
The block at the gaff boom, (the upper boom) fol-
between fixed and movable parts of the rigging.
lows the boom and rotates in a way so that its free
end always faces the mast.
The ropes between mast (fixed end) and gaff boom
block follows the movement.
The block at the (lower) boom faces its counterpart
that is fixed to the hull.
The block that is fixed to the hull always faces the
block at the boom.
The ropes between the two blocks follow the move-
ment and stretch or shrink depending on the blocks’
positions.
The lower seam of the sail follows the boom; the
Figure 3: standing rigging of boat
upper seam follows the gaff boom.
The sail is always stretched between both booms.
Exercise; create a ring:
The sail shows wrinkles depending on the direction
and strength of the wind.
by Johannes Ewers
Open the Mesh Tools panel in a Buttons Window. sists of a ring and a cube we call block cage that would
house the wheels of a tackle.
Enter Degr: 360, Steps: 8, Turns: 1 and press Spin.
Create a ring as described above.
The cursor changes to a “?” symbol. Click on the
Side View window. Create a cube (Add>>Mesh>Cube) and name it “block
cage”
Scale the resulting ring object to suitable size, about
half of the diameter of the mast. Switch to Edit Mode and select all vertices of the
We need two rings at the top of the mast (see figure 6) cube.
and one ring at the bottom of the hull near the stern Use Mesh>>Edges>>Bevel to round the edges of the
(rear-end of the boat). cube. That looks nicer.
Now it's time to put some structure and hierarchy into
the model. We create an empty (Add>>Empty) and name Now scale the cube as shown in figure 4.
it “standing rigging”. We move the empty to a location Move the ring to the bottom of the cube.
near to or on the mast. We create a compound object
by “parenting” all parts of the standing rigging to the Create an empty, name it “block” and move it to the
empty. Therefore, select mast, stay, shrouds, and rings center of the ring. The position/center of the empty
and as last object, the empty. The Outliner Window is is very important. It determines the rotation pivot of
very useful for this task. Now select the function the block!
Object>>Parent>>Make Parent to create a sub-structure
in the Outliner. Create another Empty, name it “little Create a compound object by parenting the cube
boat”, and move it to the middle of the hull mesh. Cre- and the ring to the empty.
ate a compound object by “parenting” the hull mesh
and the standing rigging to the “little boat” Empty.
Now you can position and rotate the boat just by se-
by Johannes Ewers
Now we need three of these blocks, two with the shorter and give it an angle upwards. The ring has to
ring on the bottom side and one with the ring on be located to the top side of the gaff boom.
the top side.
Select the block compound object in the Outliner.
c) Create an armature for the booms
Use Select>>Grouped>>Children to select all objects in We will move the booms with an armature consisting
the compound. This is import for copying the whole
compound and not just the parent object. of three bones. You might ask “what do we need an
armature for? We can rotate the boom directly”. How-
Use Object>>Duplicate to create a second block Re- ever, the armature will also be used to move the upper
peat this for the third block. Name the objects as and lower seams of the sail, synchronized to the boom
shown in figure 4. movement.
Now, in the last block select the “block cage” child Create an armature (Add>Armature), name it “sail
object and move it downwards until the ring is on guide”, move and scale it so that it is in the same
top of it. Do not move the ring! We have to make position as the boom. The pivot point of the bone
sure that the center of the compound object is still should fit to the pivot point of the boom
in middle of the ring.
Switch to Edit Mode.
b) Create the booms Extrude the bone two times to get three bones in
total.
Boom and gaff boom are compound objects consisting
of a lengthy cylinder and a ring to connect a block. Click RMB on the middle part (not the tips) of the
third, outermost bone.
For the boom create a cylinder, rotate it into a hori-
zontal position, and scale it as shown in figure 1. Use Armature>>Parent>>Clear Parent>>Disconnect
One end of the cylinder should touch the mast at a Bone to separate one bone from the others.
point a little bit over the rim of the hull. Resting po-
sition of the boom is parallel to the boats main axis. In the Buttons Window, Armature Bones panel click
by Johannes Ewers
Now we need to connect d) Build and automate the gaff boom tackle
the bones to the booms.
We cannot use the arma- In the next step, we will create the tackle that lifts the
ture modifier because that gaff boom. The tackle consists of a block connected to
only works with meshes. the gaff boom and two ropes fixed to the mast. Block
We do not have a mesh, and ropes should automatically follow the movement
we have an empty as par- of the boom.
ent in the boom com-
pound! As an alternative, Select a spare block with a ring on the bottom
we will use a “copy rota- (created in step a).
tion constraint”.
Move the block to the ring at the tip of the gaff
In Object Mode select boom.
“boom comp” in the
Outliner. “Parent” the block to the gaff boom.
Figure 5: sail guide armature
In the Buttons Window, On the block use Object>>Constraints>>Add
Constraints panel, add a constraint of type Copy Ro- Constraint>>Track To.
tation.
Constraint parameters are: Target:ring@mast.002,
As target, type in the name of the armature “sail To:Z, Up:Y
guide”. As bone, type in “lower bone”.
Now, the block should orient towards and follow
Choose Z as rotation axis. one of the rings at the mast. Test it by rotating the
gaff boom (see step c).
Repeat the same for the gaff boom but choose
“upper bone” as target bone. Create a cylinder to model a rope for the tackle and
To test the setup, select the armature, select “lower call it “rope@gaff boom.001”.
by Johannes Ewers
bone”, switch to Switch to Edit Mode. Scale the edges in x/y direction
Pose Mode, and
rotate the bone so that a thin tube is the result.
around its cent- In Object Mode, the scale factor should still be one
er. The boom
for all coordinates. You can check that with the
should follow
the rotation. The Transform Properties window (Object>> Transform
same should Properties). Sounds strange? The “stretch to con-
work for the gaff straint” we will use later shows an even stranger
boom when us- behavior if Scale X/Y/Z differ from one.
ing the “upper
bone”. Figure 6: gaff boom assembly
Switch to Object Mode. Move the 3D-cursor to the e) Build and automate the boom tackle
lower end of the cylinder. Use
Object>>Transform>>Center Cursor. That will move We will use the same technique to build the tackle at
the center of the object – the pivot point for rota- the boom.
tions – to the lower end.
Take the spare block with the ring on the top and
Now move the cylinder to one of the rings at the move it to the ring at tip of the boom (see figure 7).
mast without rotating it. “Parent” it to the “boom comp” and name it
“block@boom”.
“Parent” it to the “little boat” compound object.
Add a “TrackTo” constraint to the block with
Go to the Buttons Window, Object Panels, Con-
Target:ring@hull (part of the standing rigging). The
straint and click on “Add Constraint”, select “Stretch
block should now point to the ring.
To”. This constraint is only available through the
panels. Take the spare block with the ring on the bottom
and move it to the ring@hull. “Parent” it to the
Enter Target: block cage.001, Vol:NONE, Plan:Z.
“little boat” and name it “block@hull”.
You might expect the cylinder to orient towards the
block but unfortunately, it stays in its position. You Between the blocks of a tackle, we have an even
number of ropes plus one free rope to pull. There-
first have to correct the position manually.
fore, we create a cylinder, switch to Edit Mode, and
Switch to Edit Mode and transform the vertices in scale the cylinder in x/y direction to form a thin
the desired way. The rope (cylinder) should stretch tube. Be careful to do all mesh scaling/rotation in
between the middle of the block and the ring at Edit Mode and not in Object Mode. The scale factor
them mast. Do not try to do that in Object Mode, it in Object Mode should be one, otherwise the
will not work. I took me some experiments to work “StretchTo” constraints will have strange scaling ef-
out the right sequence of steps. fects. You can check that in the Transform Properties
window.
by Johannes Ewers
Add a “TrackTo” constraint to the block with Target: Now subdivide the “sail” mesh in Edit Mode four
block cage.002 (part of the block at the boom). The times to create 16x16 faces (Select all vertices,
block and the rope mesh should now point to the Mesh>>Edges>Subdivide).
other block. Each block will synchronize to the oth-
er. We have to define a vertex group later be used to
fixate the mesh during the cloth simulation. There-
Now add a “StretchTo” constraint to the rope mesh. fore, deselect all vertices. Click Shift+RMB on ever
Enter Target: block cage.002, Vol:NONE, Plan:Z. third vertex at the seam of the mesh near the booms
and the mast starting with a corner.
As a result, the mesh might first point into an unsus-
pected direction. You have to correct the mesh in Go to Buttons window, Mesh Buttons, Link and Ma-
Edit Mode and transform it into the correct position terials, press New for a new vertex group, name it
and length. “seam” and press Assign. That will bind the selected
vertices of the sail mesh to the vertex.
Now test the boom rig by moving it with help of the
lower bone of the “sail guide” armature. The tackle Leave Edit Mode.
should neatly follow the boom tip and stretch as
needed.
Figure 8: sail mesh, modifiers and vertex group Figure 9: sail cage mesh with modifiers
Now we have the basic sail mesh. The subdivision was Select the “sail” mesh, go to Buttons Window, Mesh
necessary a) to provide resolution for a nice sail defor- Buttons, Modifiers and add two modifiers to the
mation and b) to create a vertex group that will cause mesh:
some nice wrinkles.
a) a Subsurf modifier, Type:Catmull-Clark with
To let the high-resolution sail mesh follow the boom Level:2 or 3 to give more resolution to the cloth sim-
movement, we will use a low-resolution mesh as a ulation. (room for experiments)
kind of cage together with the MeshDeform modifi-
er. b) a MeshDeform modifier with Ob:”sail cage”. Press
Bind to connect the cage to the sail mesh. The defor-
Create a cube object (Add>>Mesh>>Cube), name it mation of the “sail cage” will now translate to the
“sail cage” and translate it to the sail position. “sail” mesh.
Switch to EditMode and transform the “sail cage” Test the setup: se-
by Johannes Ewers
cube mesh so that it encloses the sail mesh. Keep lect “sail guide”,
the space between cage and sail as small as possible. switch to Pose
mode and rotate
Now go to Buttons Window, Mesh Buttons, Modifi- lower, middle, and
ers Panel and add a Subsurf modifier to the sail cage. upper bones. The
Use the Simple Subdiv type with Levels:1. This gives booms should fol-
some flexibility for the cage. low the armatures
as well as the sail
Now go to Buttons Window, Mesh Buttons, Modifi- mesh.
ers and add as second modifier an Armature modi-
fier with Ob:”sail guide”. We can now use our “sail
guide” armature to deform the “sail cage”.
Setup the cloth & wind simulation time it works, and sometime the sail mesh is discon-
nected from its cage when running the simulation.
We want to see some nice and realistic wrinkles on our
sail. That could be done with a normal or displacement We are nearly finished. We just need some wind.
map. However, Blender provides a powerful wind ma- Create an Empty and translate it to the side of the
chine we will use for our purpose. First, we have to boat approximately two-boat length apart.
give cloth properties to our sail.
Go to Button Windows, Object Panels, Physics But-
Move the “sail guide” to neutral position and select tons, and Fields Panel.
the sail mesh.
Choose Wind as Field Type; choose Tube as Fall-off.
Go to Button Windows, Object Panels, Physics But- Set Strength: 4. Leave all other parameters at zero.
tons, Cloth Panel.
Rotate the wind empty so that it points at the boat.
Click on Cloth and select Denim as cloth type (room
for experiments) Ready to go!
Click on Pinning of cloth and select the “seam” ver-
tex group defined previously. Using the automation concept
Now go to Here comes the fun part. I provided a .blend file for ex-
to Buttons periments if you do not want to go through the mode-
Window, ling process.
Mesh But-
tons, Modifi- Select the “sail guide” armature and switch to Pose
Mode.
ers panel.
You will see Rotate the lower bone to a 30-degree position (angle
three modifi- between boom axis and boat main axis).
by Johannes Ewers
ers top to
bottom Sub- Rotate the upper bone to 40-degree.
surf, Mesh-
Deform and Rotate the middle bone to 45-degree. That gives the
Cloth. Click sail a realistic basic deformation.
on the little
Go to the Timeline Window, skip to start frame 1 and
arrow on the Figure 11: wind position and parameters start the simulation by pressing the play button. We
left side of need 30 to 50 frames to give the sail a nice deforma-
the Cloth tion.
modifier to move it up one position in the stack. I had
some problems with Cloth on the last position, some- Watch Blender do its work. Some hints
Some hints
Move the “sail cage” to a layer that you can
deselect. It will react but does not obstruct
the sight. Alternatively, use the restriction
column in the Outliner (eye symbol).
After a simulation, you have to clear the sim-
ulation cache before you can change the sail
position. Select the sail mesh; go to Buttons
Window, Object + Physics Buttons, Cloth
panel, Collision tab. Press free cache.
If you want to move the boat after a simula-
tion, the sail will stay in place until you free
the simulation cache.
Do not get frustrated if the program behaves in un-
expected ways.
Johannes Ewers
Now add a top sail or a fore sail. Setup a second mast
or model a more realistic hull. The result could look I love the sea, old sailing ships, and maritime paintings.
like my Bluenose schooner model. While I am not a good painter, I use 3D tools to create
nautical scenes. After working with POV-Ray and Moray
for some years, I switched to a combination of Vue
d’Esprit and Blender.
by Johannes Ewers
Lighting/Materials More complex and appealing setups than the ones de-
scribed here can add life to a scene if it is to be more
Lighting in a mechani- than a mere technical illustration. These are, however,
cal demonstration can outside the scope of this article.
be very simple. In this
scene I took a lamp, Rigging
set it to 0.3 energy and
made sure Rayshadow The rigging setup mir-
was off. Little lamps rors, in a way, the me-
like these hardly affect render time at all, so chanical processes in
you can copy eight or ten to light every corner the machine. Rotation
and still have render times under five or ten constraints act as gears
seconds. A few seconds may not sound like a and belts, location con-
lot, but when doing an animation they really straints like
add up, so I like to do everything I can to shave sec- rods pushing
onds. This setup is very boring, however so I added a back and
sun set to Rayshadow and Only Shadow. A plane under- forth. But be-
neath catches the shadow. cause blender
is primarily an
For the materials, me- animation
chanical drawings are suite, there
also forgiving. Bright, are some
solid primary colors – tricks that
shunned like the have to be
plague almost every- done differ-
where else – are ok ently than in
(just please turn down an actual
by William Edstrom
The Pistons Next, add a Limit Distance constraint and set it's target
to “base_empty”. Set it to 5. This constraint keeps the
While doing the pistons, it is especially important to be piston within reach of the connecting rod. This next
thorough and follow instructions carefully. Even miss- constraint will keep the limit distance constraint from
ing small steps can cause very strange looking reac- moving the piston sideways. Add a Copy Location con-
tions. Time spent double-checking will prevent straint and limit it to the Y axes, and set the target to
headache in the long run. “Crankshaft”. Alternatively, you could use a Limit Loca-
tion constraint, but then you couldn't move the rig
Select the crankshaft and add a keyframe for rotation without breaking it.
(I->Rot). Go ahead to frame 11 and rotate the crankshaft
around the X axis 120 degrees. Key the rotation again Create an armature object at base_empty. In edit mode
and open the IPO window. Select the green X rotation move the top of the first bone up 4 to the center of the
keys and open the curve menu at the bottom of the piston. Go to Pose Mode and add a Lock Location con-
window. Open Extend Mode and choose Extrapolation. straint directly to “base_empty”. Still in Pose Mode add
Name the IPO “rotation”. By pressing Alt+A you can an IK Solver constraint with the target “top_empty”.
test the animation at any point to make sure all the
steps up to that point work properly. Select the piston and add a Copy Location constraint
with the target “Armature”. Underneath the target a
Next return to frame 1. All the rigging should be done new input box for bones will appear. Type in “Bone”
in the neutral position in frame 1. Open the crankshaft and set Head/Tail to 1.
mesh. Snap (SHIFT+S, cursor->selection) the cursor to
the verticies of the first cylinder that will have a con- In the Connecting Rod select all the vertices. In the Ed-
necting rod. Copy a vertex and snap it to the cursor. iting Tab(F9) create a new vertex group. Rename the
Add an empty and name it “base_empty”. Select both group “Bone”. Press the Assign button to add the verte-
base_empty and Crankshaft, then go into edit mode cies to the group. Parent the Connecting Rod to the ar-
and parent “base_empty” to the vertex [Ctrl+P]. mature and when it asks, choose Armature and Name
Groups. Using an armature and IK solver to control the
Snap the cursor to the piston object and add another motion of the connecting rod is probably not as effi-
by William Edstrom
empty there named “top_empty”. Go to the Objects cient as using a Track To constraint, but those are a
Tab[F7] and add a Copy Location constraint. Set the tar- major pain. Besides, this is a very simple way to learn
get as “base_empty”. Press the offset button. This will about armatures.
make the object keep it's original distance from
base_empty while still copying it's movements. Some- The first piston set should be all done. To make sure
times when the target is set the object will move, so everything is working before we duplicate it go to the
use [Shift+S>>Selection to Cursor] to snap it back to the side view and watch it in orthographic mode in wire-
piston's center. Deselect the X and Y so the constraint frame. You should be able to see all the parts rotating
only effects the Z location. Now is a good time to press in unison. You can parent a camera to the piston and in
Alt+A and pan around to get a good idea of what the the edit tab set it to orthographic so you can watch it
constraints are doing. from there(set a new camera to main with
Ctrl+Numpad0). Any slipping should be noticeable from as the crankshaft. Now they should look just about
this view. right, although you may need to rotate the larger gear
so that it appears to make proper contact(press offset
When duplicating, be careful to select all the parts at to allow the rotations to stick). It's hard to tell that the
the same time(2 empties, connecting rod, piston, arma- gears aren't going exactly the same speed as the crank-
ture, you may need to hide[H] pars in the way) and shaft, so in this animation we'll leave them separate,
[SHIFT+D] over to the next point on the crankshaft. Be because it makes timing everything easier(who doesn't
careful to watch top_empty.001, as it likes to slide out hate fractions?). If it was necessary to keep them going
of position at this step. Make sure it is resting precisely at precisely the same time we would simply constrain
at the base of Piston.001 before proceeding. Next un- the crankshaft to follow the large gear and do the math
parent “base_empty.001” with Alt+P and choose Clear for timing the other parts.
and Keep Transformation. Then parent it to a new ver-
tex as described earlier. Repeat until all four pistons are
working. The Lead Blocks
The lead blocks should be covering the piston housing
The Gears on the downstroke and be fully retracted during the
upstroke, moving between in three frames.
The gears must turn together, in opposite directions.
Because they are different sizes they must also turn at Make three copies[Shift+D] of the lead block, each
a different speed. This difference can be found by the moved 7 along the X axis. If you like, you can also copy
ratio of teeth. These particular gears have 24 and 40 the stationary parts also.
teeth, giving a ratio of 5/3. That means that for every
turn of the larger gear, the small gear makes 5/3 of a Select the first lead block. It will need five keyframes to
turn. For simplicity of animation we are going to ani- define the motion.
mate the smaller gear and use it to turn the larger at
3/5 it's speed. This can be done with a single constraint. Frame Position
by William Edstrom
Select the little gear, and in the IPO window choose the 29 In
curve “rotation” (If you have skipped ahead to this
point to read about gears, this ipo will not exist. Create 31 out
it by following the steps in paragraph 2 of pistons). Add
a copy rotation to the larger gear, targeting 44 Out
“small_gear”. Deselect Y and Z, then push the negative 46 In
sign next to X to invert the motion. Now the gears will
turn in the opposite direction. To slow the larger gear, 59 In
set the influence to 3/5, or 0.6. This is the reason that
even though the larger gear is actually providing power,
we use the small gear. Influence does not allow inputs
of greater than one. Animate the small gear the same
In the IPO window, select the X location curve and character animation relies on many of the same princi-
open Curve>>Extend Mode>>Cyclic Extrapolation. Now ples described here.
this lead should cover the top of the piston housing
during a downstroke and uncover the housing during And hopefully, if you have some crazy mechanical con-
an upstroke. Name the IPO curve “lead_outside”. Delete traption that has been locked away in your noggin, the
the Loc X keys in the IPO window. Add lead outside to examples shown here can help bring it out.
the other outside lead.
Select a middle lead block. Since the middle pistons are
on the opposite stroke, they need to be timed different-
ly. Push the number next to the IPO title so that
changes made to this one won't affect the others. Re-
name it “inside_lead”. Move the motion curves back 15
so that the first keyframe is at 14. Add “lead_inside” to
the other middle block. The lead blocks should now be
synchronized with the rest of the machine.
Application
The rigging setups used here can be used for a lot more
than my perpetual motion machine. A four stroke en-
gine is a given, as that was the inspiration, but there
are also many more uses with very similar rigs. Even
Once back at home, I tried to do some critical points 1. Layer 1 : the floor
in Blender, and I submitted the unsolvable knots to
By Alain Mathez
the legendary famous BlenderClan. Open a new Blender File, delete all objects, select
only Layer 1 (1), switch to Top View (Numpad 7), add
Note for the beginners (like me, sometimes) : try to a Mesh Plane (Space, Mesh, Plane), in Edit Mode
reduce your problem to its simplest state to find solu- (Tab) select (RMB, Shift+RMB) and delete (X, 1) the 2
tions. Open a new Blender file, with just the things you upper vertices, select the remaining Edge (A) scale it
need to tackle the problem, and experiment with it. If 20x (S, 20, Enter), subdivide it 21x (W, 2, Number of
you are unable to find a solution, you can ask about it cuts :21).
at blenderartists forum, explain the case and maybe
give them the file. If you are a bit lucky, you will receive
Then select the second Vertex (RMB) and the second all the attributes automatically, the only change you
Empty (Ctrl+RMB), create the Hook (Ctrl+H, 2), and so have to make is to the VGroup:Pr1b, Pr2, Pr2b, …Pr6).
on to the last Empty. Now when you are finished, if you Now if you move the Mesh , you can see the Empties
select one Vertex and move it (G+MouseMove), the cor- following the Floor. Pretty cool, isn’t it ?
responding Empty will follow.
4.Layer 4 : the Path
Show only the Layer 4 (4), Front View (Numpad1) add
some Curves Bezier as landmarks to position the Curve
NURBS Circle which will be the Path of the caterpillar
track. Because we don't need 3D Curves, it is necessary
to turn the Curves around the X axis. Show the panel
“Transform Properties” set the rotation for RotX. And
Well, that was just to be sure that the setup is working, don’t forget to give names to all your objects.
so don’t move any Vertex for the moment (Esc). Now
the first trick. switch to Front View (Numpad1), show
the first Layer (Shift+1) to see the Mesh Floor, select the
Mesh ProjectionFloor, go to the panel “Modifiers”, add
a Modifier Shrinkwrap, set the parameters and enjoy
the result.
Add a Mesh Plane, Now if you show the Layer 2 (Shift+2), select the Mesh
name it Average- ProjectionFloor, and move it along the X axis, you can
Frame, modify it to see that the Empty OrientateFrame follows the Mesh
obtain 3 vertices on AverageFrame, but where the Mesh Floor in Layer 1
a straight line, with (hided) goes up, OrientateFrame goes up side down,
every vertex on the having the Z axis pointing downwards. To correct this,
position of simply add it as a Constraint Copy Rotation on
PositionFrame1, PositionFrame1, Influence 0, and a TrackTo (Ctrl+T, 1) on
PositionFrame2 and PositionFrame3. So you have 2 choices to test later, just
PositionFrame3. play with Influences.
Hook each Vertex to
the corresponding Empty.
Switch to Object
Mode, add an Emp-
ty, name it Orien-
tateFrame, place it Switch to Side View (Numpad 3), add a Mesh Plane,
on PositionFrame2, name it SoftFrame, go in Edit Mode
select the Empty (Tab), and rotate the Plane around the
OrientateFrame Y axis (R, Y, 90, Enter). Select only the
(RMB) and the Mesh 2 upper vertices, merge them (W, 5, 3,
AverageFrame Enter), select all (A, A), subdivide (W,
(Shift+RMB), switch 1), and move all 1BU up (G, Z, 1, En-
to Edit Mode (Tab), ter). Set the parameters in the panel
by Alain Mathez
SoftDynamicFrame, and Hey, grab a drink, it’s not finished yet. Add an Empty
give it the 3 central vertices CenterMidWheel, child of AngleFrame, add an Empty
from the Mesh as Parent. IKTargetMidLeft and an Empty IKTargetMidRight both
child of CenterMidWheel. IKTargetMidLeft and IKTar-
getMidRight must be placed on the corresponding ver-
tices from PathCaterpillar.
What else? The IK for the middle Have you twigged? Ah, by the way, you must add in
wheel. Layer 3 an Empty PrePr1, child of Pr1, and a PostPr6,
child of Pr6.
And the last, but not least, the constraints for the floor.
by Alain Mathez
this in detail, and I’m not ready with the extra work,
so please translate for me HookChenille = HookPath. you a long time to perform.
Select the Armature go in Pose Mode (Ctrl+Tab), select Now we start a special step: making the track links fol-
an Empty (Ctrl+RMB), select the corresponding Bone lowing the path. This will be always be only an approxi-
(Shift+RMB), make the Bone Parent from the Empty mation. Why? Because I know of only two methods and
(Ctrl+P, 1) both are not “real”.
First method: origin of the links are on the path, then
the joints are too distant on the little curves.
Model a simple
link about 1BU (X
axis), 2BU (Y axis)
and 0.5BU (Z axis).
You could do it
with a deformed
Cube, or like me, a
bit more complex.
Note for the mathematician people (not like me, I’m If the Mesh SoftFrame acts strangely, go in the Panel
afraid) : I have absolutely no idea why the factor is 3.05, “Collision” and click on “Free Cache”
but I find it good in testing. It depends naturally on the
teeth on the wheel, but in my case 50 / 12 = 4.16. So, who
knows why?
Apply the same tweak for the other wheels. You can of
course re-use the Ipo Curve from FrontWheel for the
RearWheel, with only one Ipo Curve for the six Floor-
Wheels, and one for the MiddleWheel if its size is not
the same as FloorWheels.
it! Add a
Plane, place But the wire of a spring is not a hollow tube, so we
the Cursor at need another NURBS Curve as Taper Object. Note that
its center, in the size of Spring-
Front View Taper is 0.1 in Ob-
let only an ject Mode.
Edge and a
Vertex. Select
all, and press
Resize a bit the upper and the lower part of the spring,
you know, to obtain something like… a spring.
Note for the tired people (like me, it’s late) : sorry just a
bad joke.
Construction, from top to bottom.
SpringBlockL, child of the Empty CenterWheel2. Well, that’s it. Add some mecan-
ical elements to complete the
BoneSpring from ArmatureSpring, child of Center- absorber. Of course a tank have
SpringH. no such absorbers visible and
BoneSpring has an IK Constraint on CenterSpringL and fragile, but 3D is not the real
Stretch enabled. The high (local Y axis) of BoneSpring is world, so... why not ?
precisely equal to the deformable part of the spring.
Add a Copy-Scale Constraint (on Y-axis only) to the 12.The challenge
Empty ScaleSpring. ScaleSpring is oriented like Bone-
Spring of course, and placed at the begining of the de- Now if you want to make a ve-
formable part of the spring. Select all the Vertices from hicle moving on a bumpy
the deformable part of the spring, select ScaleSpring, ground, you will face bigger
make a Hook. Select the lower un-deformable part, se- problems. The second caterpil-
lect CenterSpringL, make a Hook. lar track can’t ride for itself.
Both must have the same tilt
and keep the distance between them constant, because
this distance is the vehicle.
Well, who can do it better, is more simple and faster? It
is possible, I’m sure. But I didn’t already found the solu-
tions. And don’t forget the “OIRA or AFAPIRA” principle.
If you’re better than me (I'm sure it’s possible, because
I succeed on doing this almost every day ;-) and find a
better way, or if you have questions, remarks, ideas,
suggestions,… feel free to contact me at alain@bktr.ch
My favorite language is French, but I can decode Eng-
lish (please simple words only ;) und auch ein bisschen
Deutsch (da noch mal bitte nicht zu komplizierte
by Alain Mathez
Wörter verwenden).
Have fun!
So, like you see, rigging a dynamic spring is not too dif-
ficult. But once again this method is not mine, I derived
it from here and simplified it (I guess) and improved (I
hope). So, “Dude, all you have to do is…already done!”
13.Example files
In the example file “CaterpillarSoftTrack.blend” you will
find the object described in chapter 1 to 11, a tank
downloaded from http://dmi.chez-alice.fr and a lot of
Cameras fixed to each important part of the caterpillar.
Some objects have still a French name, sorry.
In the example file “TrackLinkApproximation.blend”
there are the 2 methods described just before chapter 8
to make links follow a Path. Other ideas to do this?
In the example file “LimitePathPyDriver.blend” there
are a lot of test with Ipo Speed and PyDriver you can
play with.
14.Gratitude
Special thanks to the BlenderClan, Meltingman (my
spiritual Master), Traven (the man who knows every-
thing I ignore) Zeauro (I have questions, he has an-
swers), and to my honey Coralie who slept and
watched the television alone for two weeks while I
wrote this. And THANK YOU to every people who
makes Blender growing.
by Alain Mathez
Syntax
Introduction
LTL is built up from a set of propositional variables
Temporal verifiers are mathematical p1,p2,..., the usual logic connectives (not, and, or, im-
tools that verify a temporal model plies) and the following temporal modal operators
against a temporal property, (i.e. proper- Next, Globally or Always, Eventually or Future, Until.
ties that talk about time), and answer
the question, “Does this temporal model Semantic
satisfy these temporal properties?”.
An LTL formula can be evaluated over an infinite or
This concept is used by many researchers finite sequence of truth evaluations and a position
in the field of Software and Hardware on that sequence. An LTL formula is satisfied by a
Engineering, and I bring it to the world sequence if and only if it is satisfied for position 0 on
of computer animations. that sequence. The semantics for the modal opera-
“Animation Temporal Verification” is a new and novel tors is given as follows:
approach in computer graphics that lets us:
Next holds at position i, if exists position i+1
verify animations against temporal properties and holds at position i+1
that can be extracted from story check temporal
constraints for animations. Until holds at position i if holds at some
position j, and ? has to hold at all positions in
A temporal property is a temporal logic formula range [i to j).
that will described later in this text. For example:
Eventually or Future , holds at position i, if
Always (Cube1.LocX>=100.0) there was a position j>i and holds there. In
That means X part of Cube1 location should always other words Eventually holds if and only if True
By Hamed Zaghaghi
Important Properties: from the Animation sub menu of the Script menu. See
Fig. 2.
We can construct various temporal properties with lin-
ear temporal logic, but there are two main types of
properties that can be expressed using this logic: After opening the script you can see a form like the one
Safety properties (Globally Not ): usually state that
something bad never happens. Opening Animation Temporal Verification
Final Words!
First I should thank my co-worker, Babak Salimi, who
helps me in the theoretical side of work, and then
thanks to you for reading this article.
Please get it, test it, and report its bugs!
To get
download it from https://launchpad.net/camc
or get latest trunk source with
bzr branch lp:camc
To report
report bugs here
https://bugs.launchpad.net/camc/1.0/+bugs
email me
hamed.zaghaghi@gmail.com or zaghaghi@ut.ac.ir
References
1.Amir Pnueli. The temporal logic of programs. In FOCS,
by Hamed Zaghaghi
IEEE, 1977.
2.http://en.wikipedia.org/wiki/Linear_temporal_logic
A
rmatures provide Blender with a very powerful As I wandered in my research, I found a great tuto-
character animation tool, but armatures can rial for “Making a Spring Rig”
help you animate far more than just charac-
ters. I know I have personally used armatures to in Blender, over at the Blender Underground site. It
help animate all kinds of objects. But wouldn't you takes a little bit to set up, but once you are done,
know it, when I sat down to write this article, I you have a nice dynamic moving spring.
couldn't think of even one good example (my mem- JiriH created a great little “Squash and stretch ball
ory seems to be slipping with age). rig”, to give beginning riggers something to study
Still not a problem; that's what the search function and play with.
is for. I typed in "basic rigs" and was immediately And of course armatures are excellent for creating
given numerous examples of cool and fun ways to Mechanical Rigging. This tutorial shows you how to
use armatures. This is by no means an all-inclusive rig a robotic creature, including how to set up pis-
list, but it should give you enough ideas that you tons and hydraulics.
can come up with even more ways to use armatures
in your own project. And who can resist having a Dancing Beer rig? The
guys at ProMotion Studios were obviously having a
I found several great examples in BSoD: Introduc- little too much fun with their current animation
tion to Rigging. project Kajimba, but I don't think any of us will be
Just a quick side note before I reveal the genius ide- complaining, since we get to play with it.
as. Robert Christian (wavez) did an excellent job ex- Well that about wraps up my little search survey of
plaining all about rigging. So if you still haven't read fun things to do with armatures. I hope it gave you
it, I seriously encourage you to do so. some interesting ideas of your own to try out.
Okay, first up, you can use armatures to produce a
great "Squash n' Stretch" effect. This is an ingenious
little rig. It is composed of just two bones and four
constraints. Here's the ingenious part. One of the
by Sandra Gilbert
www.blenderart.org
KnowHow: Hoo and Ray for the Mesh Deform Modifier! 52
www.blenderart.org
KnowHow: Hoo and Ray for the Mesh Deform Modifier! 53
The Mesh Deform Modifier and Armature combo can be Deformed Object even when it is not directly surround-
adjusted and tweaked just like the Character Mesh and ing it.
Armature combo you are used to. Bone heat (as men-
tioned) works well with the Mesh Deform Modifier and Distance from Deform Mesh Cage & Deformed
because the cage is generally of a much lower resolu-
tion, it requires less fiddling with and tweaking than a Object
high resolution mesh.
Distance between the Deform Mesh Cage and the object
Yay! That means less work for me! to be deformed (Deformed Object) has an influence on
the amount of change imparted to the Deformed Object
As an additional plus, the Mesh Deform Modifier can when the Deform Mesh Cage is altered (when in Edit
even be used as a modelling tool. Any edits/changes to Mode). When the Deform Mesh Cage is further away
the cage (in Edit Mode) while bound to a mesh object from Deformed Object, then the amount of change im-
will cause changes and deformations to the mesh object parted to the Deformed Object is less and less local to a
as well as the deforming cage. Then you just click the specific area of the Deformed Object. When the Deform
apply button to make the changes permanent. Mesh Cage is closer to the Deformed Object the amount
of influence upon the Deformed Object is greater and
There are a few things about the Mesh Deform Modifier more local to a specific area on the Deformed Object.
that are not overly obvious. Listed below are some of
those issues and features (taken from the Blender User
Manual).
Mode of Operation
Alterations made to the Deform Mesh Cage will only be
reflected in the Deformed Object when the cage is in
Edit Mode, when in Object mode the cage can be scaled
and distorted but it will not effect the Deformed Object.
by Sandra Gilbert
Book Review by Sandra Gilbert | Paperback: 368 pages | Publisher: Focal Press: Pap/Dvdr edition (September 30, 2008) | Language: English
ISBN-10: 0240810791 | ISBN-13: 978-0240810799 | Product Dimensions: 9.2 x 7.5 x 0.8 inches
JetPack Girl - Zooly
GALLERIA
55
www.blenderart.org Issue 19 | Nov 2008 - Rigging and Constraints
Magic Painter - Zooly
GALLERIA
56
www.blenderart.org Issue 19 | Nov 2008 - Rigging and Constraints
Botella Llena - Raul Silva
GALLERIA
57
www.blenderart.org Issue 19 | Nov 2008 - Rigging and Constraints
Want to write for BlenderArt Magazine? 58
Here is how!
1. We accept the following:
Tutorials explaining new Blender features, 3dconcepts, techniques or articles based on current
theme of the magazine.
Reports on useful Blender events throughout the world.
Cartoons related to blender world.
Note: All the approved submissions can be placed in the final issue or subsequent issue if
deemed fit. All submissions will be cropped/modified if necessary. For more details see the blend-
erart website.
Issue 19
Make it, Bake it, Fake it
Learn about various tools in Blender that require you to baking the result.
Render baking options.
Water
Physics
Cloth, Soft bodies and more...
Disclaimer
blenderart.org does not takes any responsibility both expressed or implied for the material and
its nature or accuracy of the information which is published in this PDF magazine. All the ma-
terials presented in this PDF magazine have been produced with the expressed permission of
their respective authors/owners. blenderart.org and the contributors disclaim all warranties,
expressed or implied, including, but not limited to implied warranties of merchantability or
fitness for a particular purpose. All images and materials present in this document are
printed/re-printed with expressed permission from the authors/owners.
This PDF magazine is archived and available from the blenderart.org website. The blenderart
magazine is made available under Creative Commons‘ Attribution-NoDerivs 2.5’ license.
COPYRIGHT© 2008 ‘BlenderArt Magazine’, ‘blenderart’ and BlenderArt logo are copyright of
Gaurav Nawani. ‘Izzy’ and ‘Izzy logo’ are copyright Sandra Gilbert. All products and company
names featured in the publication are trademark or registered trade marks of their respective
owners.