New Walk Cycle Mod & Curves???

Hi Guys,

I have setup my character with a walk cycle using the ‘New Method’ - as in the first walkcycle was an actual walk as opposed to conveyor belt … then set the repeats etc in the NLA props for the action strip.

www.tidalsound.com/3dstuff/botsitwalk1.avi - xvid 130kb

Now I want to make him walk along a curve. I added an upper curve [ curve ], duplicated it, dragged it down to the feet level [ curve.001 ]. Then in the props for the NLA Strip of the walkcycle - ADDED MODIFIER. Set CHAN to the left leg control bone and OB: to curve.001. I then added another MOD for the right leg control bone. Yet another for the SPINE - set CHAN to spine.lower and OB: curve.

When I play the animation - the character splits up in two and goes off in two directions bones included. Neither part follows the curve.

Am I on the right track? Any wisdom apprectaied.

Aidan

Add your Curve(s) in Top View and Ctrl-A on them before sticking them in the Deform chanel.
If the Chanel bones are going off in different directions you need to set their Track axii in F7.

It’s mandatory when doing advanced animation to add all Objects in Top View so they have the same axis rotations. Then to do Ctrl-A in Object mode on all objects prior to adding Modifiers (which include paths, parents and deformers) and in Pose mode on all Bones (since Pose mode is the ipso facto “object mode” for bones), and Ctrl-N on all bones in Edit mode.

%<

Hi Fligh,

Thanks for that info. I decided that I would provide a link to a download of the blend file:

www.tidalsound.com/3dstuff/boxbot_anim.zip - 227kb

I would appreciate if anyone in the know about char animating along a curve could have a look if time allows and to post any observations here. Better still - an edited version of the Blend file to follow the curves in the file with a list of the changes made from the original.

Any effort is appreciated,
Cheers
Aidan

http://uploader.polorix.net//files/111/boxbot2.blend

Since you have a Root.bone (Bone) it’s relatively easy to get the walk Modifier to work; just add it to a Chanel and add a curve (Curve.001) as mod Object.

But… because your Armature Object’s Axis is Y-Up and Curve.001’s Axis is Z-Up there’s a problem. I selected Bone and in F-7 changed the Track Axis to -Y. That’s not the right way to do things as now it not only throws the relationship to other bones off (especially because it’s the Root), but all relationships to the Mesh Objects (thru the Armature Modifier) are thrown out of whack.

It’s impossible at this stage to do it properly because all the Quat IPO’s have already been keyframed and what they use as their reference is the Local Axii of the Bones relative to the Armature Object’s Axis. The Roll Angle of each bone is defined (unless you set it manually) by the RA of the bone it was extruded from… or the Root Bone. Once you change the Local Axis of any bone (and especially the Root) with Ctrl-A (in Pose mode), Ctrl-N (in Edit mode) or by changing the Track Axis, you affect all bones in the Heirarchy* (or you affect their Spatial Relationships) and that throws all the Mesh Objects (children) into **Crazy Space.

  • see how the knees are knocking and bending the wrong way, the arms are up at shoulder height.

** Look on Layer 10 at the Mesh Objects in Crazy Space.

%<

Hi Fligh,

Thanks for going to this effort, much appreciated.

Seems best way is to start over again - new armature, new walk cycle. If this is the case - any tips as one builds up the new armature, new walk cycle with the eventual goal that it will be using the Armature Mod with curve? Any gotcha’s OR things to be set that should be part of the workflow to prevent my previous disaster :slight_smile:

Thanks again
Aidan

Hi,

First observation - I read somewhere that you should always add paths from TOP view. When one does this the path appears on screen from left to right with the arrows facing in the +X direction. The mesh and skeleton are facing in the +Y direction so I assume its OK to ROTATE the path in the top view to face in the +Y direction?

But… because your Armature Object’s Axis is Y-Up and Curve.001’s Axis is Z-Up there’s a problem.

I had a look at the original file I posted above - I am unsure where you saw the Armature Objects Axis as Y-Up, on my PC in edit mode if I click on the ROOT BONE [ Bone ] - under the F7 Anim Settings the Z-Up is selected. Am I looking at the right place? If I click on either of the Curves, they are Z-up also. AND the track in all 3 [ armature and 2 curves ] is set to Y.

Aidan

That’s the RootBone’s (local) axis; goto Object mode on the Armature Object and turn on the Axis in F7. It’s Y-Up and the Y axis of the Curve points between the feet.

%<

Hi Fligh

To fix all this am I better just to scrap the lot do you reckon and start from scratch? Is any of the armature/skeleton salvageable? Dump the Walk Cycle? I just want to get best practice right with note to all gotcha’s so as not to have issues like this every time I go through this procedure.

Aidan

Hi Fligh & Lads,

The Bot Model is made out of parts - I went and looked at each part, turned on AXIS for each and found that all of them were different and not related to the world X,Y,Z. I deleted the component parts of the model [ the whole model ] - went back to the original file of the model, did a CTRL + A on each part so X,Y,Z were all facing same as World X,Y,Z. I then appended that model into the anim file instead of the deleted one. Now the AXIS for the Armature [ via object mode ] and the component parts of the Bot are all at World X.Y.Z.

I assume I am now on the right track? For anyone else - they should make sure to CTRL A the model/mesh and / or each part before getting involved in any animation?

Aidan

PS -

  1. by CTRL A I mean - in object mode - with mesh component selected press CTRL A and accept [ Apply Scale and Rotation ]

  2. To see the axis of a mesh, select it in Object mode, change the panels to the Object panels [ F7 ] - under the Draw Tab turn on AXIS.

Sorry bout that, we’ve been without power since my last post.

All Objects have an Origin and an Axis. Any DataBlocks linked to that object (like Mesh or Bones) have those two parameters as reference points. The DataBlocks can be Transformed ( G,R&S, and those transformations keyframed) in Local or Global space (in other words, either relative to the Scene [which has its origin and axis at 0.0.0] or relative to the Object it is linked to [which has its origin at the point it was added relative to 0.0.0 and its axis alligned according to the View it was added in])

Now, when you make one object the Parent and another the Child (and this is essentially what Modifiers do), a Heirarchy is established where the Origin, Axis, Global and Local parameters of the Child are usurped by the Parent but still apply to the Child in Local Space.
(eg: Ctrl-P respects the Origin and Axis of the Child, Shft-Ctrl-P respects the axis but ignores the Origin, so the child moves to the origin of the parent)

Bones are a special case as they must trace this heirarchy all the way back thru the chain they were extruded from, obey Bone-Parent (different to normal parenting since it’s Local), Bone-Origin, (different again since it’s local and relative only to the Editmode position of that bone in the chain) and Roll Angle (which is akin to a Reference Point [origin] for the Hinge Axis between the Y-axii of two bones, or three if that bone has one on either side of it).

Ctrl-A in Object mode takes the Axis Rotation of the Object (in all objects except Empties and ignoring scale for the moment) and resets it to the Axis of the Scene (Z-Up) and sets Rotation to 0.0.0.

Ctrl-N in Edit mode resets the Roll Angle of all selected bones (around Y) relative to the Root bone, which has its RA set relative to the Armature Object’s Axis.

A Path Object (Curve), over and above the Origin and Axis, has a Start (beginning) and an End (W in Edit mode >> Switch Direction). Rotating the Curve and Ctrl-A doesn’t switch direction but (assuming it was added in Top View) simply switches the direction of the Axis.

You can see from the above, that if you have already Posed and Keyframed Bones of an Armature, and then do Ctrl-A, Ctrl-N, or use a Parent or Modifier to Translate their Heirarchical Relationships along Global and Local co-ordinates that differ from those keyframed into the Quat Chanels then the Origen(s) and Axis(ii) of child objects (including child bones) must, of necessity, be different from those before. And, if the Axii (global Co-Ordinates) of objects in a heirarchy are different (more so with Bones than other DataBlocks because of Y-Axis linking and Roll Angle), that those of the Child Object(s) (now in a special order of Local Space relative to the Parent) will be completely different to what was keyframed (crazy space).

So it’s vitally important, imperrative, to regard Axis Orientation of Objects to that of the Scene as part of Rigging and it should be done before any Keyframing begins.

%<

Once again - thanks Fligh.

Invaluable info - especially your last line.

What I find in all the text written about the new walk cycle process, their is very little mention about axis orientations etc. Last night [ gmt ] I thought the same as I said above - model axis fixed. Its now skinned via weight not envelope, so re do walk cycle next.

So it’s vitally important, imperrative, to regard Axis Orientation of Objects to that of the Scene as part of Rigging and it should be done before any Keyframing begins.

This is an essential tip that should be written in huge writing at any tute on the new walk cycle process - could save loads of time and angst.

I will ask again though, can you think of any other nuggets like this to ease the process?

thanks
Aidan

I will ask again though,

Oi, Laddy, I have na’h typed enough then?

%<

No Probs Fligh, but if you do think of anything in your travels, dont be shy :slight_smile:

Sincere thanks,
Aidan

Another answer to something that could be irritating:

If one poses say the Right / Left arms at frame 1 and then trys to copy this pose and paste THE FLIPPED version of this pose to Frame 11 and finds that it DOES NOT Work. ANS: Check the names of your arm bones to make sure they tally.

This happened to me. I had the upper and lower arms in the left and right arm wrongly named:

arm.upper_L
arm.lower_L

upper.arm_R
lower.arm_R

The last two should be arm.upper_R & arm.lower_R.

Just in case others happen on this problem

Cheers
AIDAN

Hi Guys,

I decided to log all discoveries related to the New Walk Cycle proceedure & Curves/Paths - as I stumble on them:

  1. Best to name the component parts of a model with part_name dot L or R.

Example: upper_arm.L, lower_arm.R

  1. Before you even start to rig/skin a model - go to OBJECT Mode. With a part selected press F7 key - this brings up the Anim Settings panel. BUT look at the Draw Panel, enable AXIS - you will see the local axis for the mesh appear in the work window. Before Rigging/Skinning its best to make sure your model part local axis is aligned with the World Axis [ usually bottom left of work window ]. To achieve this press CTRL +A [ apply scale and rotation ]. Do this for each part of your model, if mesh is more than one whole part.

  2. To attach an Armature OR Skeleton to the Model / model parts - Select the Model / Model parts individually and apply the Armature Modifier to that part. Modifiers can be added via the panels found when you press F9 key. Make sure you fill out the OB: field with the name of the Skeleton [ default is usually Armature ]

  3. When you add the Armature Modifier make sure it is at the top of the modifier stack if other modifiers are their. To do this - left of the black X in each modifier box are Up/Down arrows.

  4. I use VERTEX Groups as opposed to envelopes. Select either the Vertex Groups OR the Envelope button in the Armature Modifier Panel for each part.

  5. Select the Skeleton - go into POSE Mode if not there already. Select a bone, now select the mesh part immediately - you are now in Object mode. Switch to Weight Paint Mode. The mesh part should turn blue ready for you to “Paint” the weights to the vertices. Paint away. When done, select another bone, then the mesh part, then the bone again - this should turn blue - paint away … and so on!

  6. When ready to go to ACTION EDITOR, split your work area window. To do this, move your mouse pointer up under the file menu until it turns into a double arrow. Right Click - Menu drops, select Split Area, a vertical movable line appears, move this to the split point and click. You now have two work areas. Change one to the ACTION EDITOR.

  7. Right of the word KEY / Key Menu at the bottom of the Action Editor screen is a drop box with ADD NEW - this allows you to add a new ACTION eg a Walk Cycle OR a Wave. When added click on default name and rename to something meaningful. Now the hard part - build your walkcycle / action.

  8. If you want to make use of the new WALKCYCLE TOOLS / TECHNIQUES in Blender make sure you DO NOT create a static / conveyor belt Walkcycle. Instead create one full round of a walk across typically 20 frames, but give the model full forward motion here. End result should be your character actually walking forward one full round.

10A. When you have an action like a Walkcycle keyed as above switch the Action Editor window to the NLA Editor. Make sure the whole cycle is selected - Press C - Convert [Your Action ] to strip. Now open up the Transform Properties window - N key.

10B. Make sure you have the new action strip selected. Press N. In the Transform properties window - fill in the OFFSBONE field. This is usually with the bone name of the main overall control bone of your whole rig [ positioned between characters feet, back of spine, where ever ]. Increase the amount of REPEATS from 1 to whatever. Note here - that this is tied to the Strip Start / Strip End Fields above it. Say, one full round of the cycle is 20 frames starting at frame one, finishing at frame 21. Now you REPEAT by 5. Multiply 5 x 20 [ 100 ] and add one [ 101 ] as the animation starts at frame 1 not 0. Finally enable HOLD. Now your character should walk forward the number of repeats you specified. Obviously make sure your whole animation length is set to facilitate this - in this case 101 frames.

Check the names of your arm bones to make sure they tally.

In one of my replies I decided to delete what I’d written about Naming Convention because it was worse in your first .blend than the second. It’s very difficult to debug someone elses blend when they ignore convention. As an example, in the last blend you posted (in the other thread I think) you still have a bone called “spine2” (or is it “Spine2”?), anyhow, if I mentally follow your convention it should be “spine.2” as you have used a point to define heirarchy; like “arm.upper_L” and not “armupper_L”. It may seem like nit.picking (or is it picking.nit?) but you have now realized why it’s important.

%<

  1. Now to the new Modifiers in the NLA Transform Properties Panel which will allow you to move your character along a Curve / Path. Press the 7 key in your work space for the top view. Now Space Bar / Add / Curve / Path. A path appears horizontally - you are now in edit mode. Zoom in - note the ‘arrows’ on the path - they signify the path direction. [ If for any reason you want to change the path direction press W key.]

  2. What you need to do is select all of this path in edit mode [ A Key ] and rotate it [ R Key ]. Have the curve pointing away from your character front [ a forward motion path ].

  3. Make sure the FIRST POINT in your curve is the ‘Centre Point’ of the curve [ from what I have read ]. To do this go into edit mode, select the first point, Shift S and Cursor to selection. Now switch to object mode, bring up object menu, then Transform Submenu, then Center Cursor.

  4. Make sure the start of the curve / path [ the new centre point ] is at the same location as the centre point of the whole armature. In my case I did this between the characters feet.

  5. With the above done - in edit mode, select the last point / front point of the path and still in top view pull it out ahead of your character a good bit. Before ‘twisting’ the straight curve - add some more points. Select the end point and shift select the previous point [ multiselect ]. Press F9 key to bring up curve panels - under curve tool1 click Subdivide button. New point added. Another way is again the W Key. Add as many points as you wish and shape the path in the way you want your character to walk.

  6. Note the Curve Name [ say Curve for now ]. Back to the NLA Transform Properties Panel. At the bottom you see ADD MODIFIER, press it. this will be a DEFORM Modifier. In the CHAN: field you add Bone names. In most cases these will be the Torso Bone [ Spine usually ] and the two FEET Controller bones of your rig. In the OB: Field for each - add the Curve Name eg here - Curve.

IMPORTANT: The names in these fields need to be spelt accurately INCLUDING Caps if the names include same.

  1. Now test your animation - if you like me find that he starts slow and speeds up AND/OR the pose feet initially look a little disfigured AND/OR he is facing the wrong way take note:
  • to fix the model facing the wrong way, the probability is the character is facing forward to your screen. If he were to walk forward he is actually walking in the -Y axis of the world axis [ Bottom left of your work area / window ]. At the moment he is facing in the Y Direction. To resolve this, make sure the Skeleton is selected in OBJECT Mode - press the F7 key for the Anim Settings Panel and change the TRACK from Y to -Y, also make sure the UP is set to Z [ Z is the up axis of the world axii ]

  • To fix the speed issue and the feet pose a bit messed up issue - Select the Path / Curve, Switch the NLA Window to the IPO CURVE EDITOR window. At the end of this window are the IPO menus. Right of the Curve Menu Word is a drop menu - instead of OBJECT select PATH from this drop menu. Note a Speed Curve appears in the IPO work area. DELETE THIS CURVE totally. Now try your animation. I think all should be well!

Big Thanks to Fligh
Cheers
Aidan

Thanks again Fligh - “Yes Master, Grasshopper realise the enlightened way” :slight_smile:

One and all - feel free to update, mangle, add new info here for others who travel this path to enlightenment

Cheers
Aidan