June 6th, 2007

abAutoRig 3.1


A simple to use skeleton builder and autorigger that builds a fast, animator friendly, bipedal rig.  Some of the features include:

  • Entirely node based.
  • Fully scaleable.
  • Stretchy IK/FK legs and arms.
  • Combo IK/FK spine with up to 18 joints (and true IK as of version 1.9).
  • Knee and elbow snap to pole vector control.
  • Standard foot controls including footRoll, footBreak, toeRoll, toeTwist, ballTwist.
  • Space switching on all major control curves (including a tool to copy control positions across space switches).
  • Support for upleg, upArm, and foreArm split joints (up to two each).
  • FK/IK head controls.
  • FK/IK fingers.
  • FK/IK and IK/FK matching on the legs and arms.
  • Auto align on relevant FK controls.
  • A tool to create a skeleton for your character.
  • A tool for quick and easy control curve mirroring and modification (includes lots of prebuilt control curves).
  • A tool for easy rig removal and update.
  • A tool for easy creation of a scaleable, stretchy IK spline joint chain (complete with FK controllers) from a curve.
  • The ability to change the rotation order of control curves across an animation and retain your poses.

I wrote this script with the intention of using it to rig my own characters for my Animation Mentor short.  Unfortunately, it took long enough to write that I didn't have time to build and use it with my own characters.  

What I'm trying to say is that it hasn't been properly put it through its paces.  It might break horribly, it might not.  Ok, it probably won't break horribly, but I can't imagine there isn't something that I've overlooked.  Please let me know if you do find any bugs or have any problems at all with it.  If it works great for you, I'd love to hear about that too.

And as always, suggestions are appreciated.

How to Use

The script needs to be sourced before it will run.  Once you've copied the files to the appropriate directories, you can start it like this:

source abAutoRig.mel;abAutoRig;

And the UI should appear.  Note that you'll want to move through the tabs from left to right to gain all the functionality of the rig.

Begin by entering your character name in the field and click the "Create a Skeleton" button.  The abSkeletonMaker window will pop up.  This and the abWireReplace can also be accessed under the Tools menu that appears at the top of the abAutoRig window.

Build the Skeleton

In the abSkeletonMaker window, click the "Make Proxy Skeleton" button.  You can modify the proxy by moving any of the curves or locators in the proxy.  The red curves indicate grouped hierarchies, and moving or scaling them will modify their child transforms.  The entire proxy can be scaled by scaling the red locator at the world origin.

If you plan on using the snap to pv controller for the knee and elbow joints, you'll want to make sure that the first three leg and arm joints share the same x and y values respectively.  Otherwise you'll have no luck getting it to work.

If your character has fewer than five fingers, don't worry.  You can leave them on the proxy and delete the joints once you've created your skeleton.  The same goes with the neck, head and eye joints.

Once you've got the proxy where you want it you can set the number of Upleg, Uparm, and foreArm split joints that you want using the sliders.  Click "Build Skeleton" and close the abSkeletonMaker UI when you're done.

Rig the Spine

Select the number of joints you want to use in your spine, the spine root joint (which will be just above the hip), and the hip joint.  Click "Create Spine Rig".

You'll want to bind your character to the newly created visible spine joints and not your low, mid, or high spine joints.  You'll know them by the way they turn magenta when you select the hip joint.  Note that in recent versions of the script, the weightSpine joints can be found in the weightSpine_grp, which is located in your yourCharName_Skeleton_grp.  If you rerig your character spine with the same number of joints, your existing weightSpine joints will be reused, so you won't have to worry about re-weighting your spine.

The octagonal control curve next to the spine (the Spine/Split control) can be used to change the influence of the hip, low, mid, and high spine control curves on each of the ik spine joints y rotation.  Just make sure that the four values under each spine joint add up to one, or else your rotations will be out of whack.  (Note that this control will also contain the rotation ratios for all of the split joints on the rig, as well.)  The visibility for this curve can be adjusted on the root control.  

The curve just below the top spine control is the spine shaper.  It's useful to shape the spine when you're translating spine control curves.  Its visibility attribute is located on the cog control.

As of version 1.9 you'll find the "useRootSpace" attribute on the high, mid, and hip control curves.  You can enable this for each curve individually to use it as a true IK control.  The low spine control curve will remain parented to the COG with only the rotation attributes available.

Note that I've changed the spine in version 2.7 to be much less flippy than before.  The spine setup will still create all of the same control curves at the same locations, so if you've referenced your character it will animate in the same way.  The only discernable difference (aside from less flipping) is that there are no longer spine rotation attributes on the Spine/Split control.  You still need this control though, because it's used by the leg, arm and hand setups to hold some important attributes, so don't delete it.  If you're unable to update to the new spine for some reason you can alleviate some of the flipping by following these instructions:

  • Locate the yourCharName_weightSpine_rig_grp in your spine_rig_grp.
  • Delete the existing parent constraint ("yourCharName_weightSpineTargetGrp_parCons")
  • ParentConstrain yourCharName_weightSpine_rig_grp to the COG ctrl curve, ensuring that maintain offset is checked in the parentConstraint option box.

Head and Neck

Specify the neck, head and optionally one of the eye joints to rig this part of the skeleton.

The head control has an optional control to translate the head that's hidden by default.  Enable the "ikCtrlVis" attribute to see it.  You can unparent the head from the rig and put it into rootSpace by enabling "useRootSpace" on the head translate curve.

The Legs

Select the number of upLeg split joints in your leg hierarchy and an Upleg joint.  Click the "Create Heel Locator" button and place it in the position where the foot should pivot about the heel (it might not need to be moved at all).  Once you're happy with its placement, click "Create Leg Rig".  Note that unlike the other rigging functions, the leg rig doesn't undo cleanly.  Use the rig removal tool to get rid of it.

The leg ik control curve is located behind the ankle.  Most of the attributes should be self explanatory.  FootBreak is the amount of positive footRoll after which the toe will roll instead of the ball.  MaxStretch is the maximum length in terms of initial length that the leg will stretch before it can't stretch no more.  Setting this to 1 will disable stretchy ik.  Fk stretch along with ik and fk leg visibility can be accessed by selecting the square control curve under the foot.

The pv control contains the standard translate and space switching attributes as well as snapKnee.  If you've kept your upLeg, knee and ankle joints in the same xy plane then adjusting this value to one should snap the knee joint to your pv control.

You can rig the other leg by selecting its upLeg joint and corresponding heel locator and again clicking "Create Leg Rig".  If you're using version 1.7 or greater, the other leg will be automatically rigged at the same time as the first.  Select Options > Auto Mirror to disable this feature.

Eight Arms to Hold You

How about two.  Because that's what this script will do, two.  By now it should be pretty clear how to use this thing.  Specify the number of split joints and an upArm (shoulder) joint.  The arms are basically the same as the legs with the addition of an fk shoulder.

Once you've finished rigging at least one arm or leg, you'll see new button appear in your current shelf.  You can click this button to access the FK/IK snapping UI for your character.  It should be pretty self explanatory.  Don't forget to change the namespace drop down if you're using your character as a reference.

The Hands

So here we are at the hands.  The only special thing about the hands is the way you can specify joints in the UI.  You can select them in the order they're listed in the Hands tab, click "Hand Quick Select", and they'll be selected in the UI.

Also, all but the "Hand Ctrl", "Thumb", and "Index" fields are optional.

Version 1.7 introduces a few new hand attributes.  MasterSpread spreads all of the fingers based on the individual finger values located on the Spine/Split control (under the Left and Right Spread attributes).  MidCurlAmt and tipCurlAmt determine how much the masterFist and fingerCurl values will rotate the mid and tip joints relative to the baseJoint.

Fix Those Ugly Wires

If you want to change any of the wire controls (which you probably do), you'll want to use abWireReplace, which can be found under the tools menu.  With it you can select a control curve and double click your desired curve type in the scroll list (or click "Replace Selected") to replace it.  The radio buttons below determine the axis that the newly created curve will face.

Use "Copy From To" to replace a curve with your own.  Position your curve exactly where you want it, select it, select the control curve you want to replace and then click the button.

"Mirror Selected" will mirror the selected curve to any curves that lie on the mirror side of the xy plane.  Select the curve you want to mirror and click the button.

The "Wire Scale" floatField has been added as of version 1.7.  This value determines the default size of replaced controls.  If a curve shape is highlighted in the UI, control-LMB, MMB, or RMB dragging over the field will interactively scale the selected curve.

Easy Space Switching

All of the controls that support space switching (including the spine and head curves with the "useRootSpace" attribute) can be used with Tools > Space Switch Matcher.

To use it, just select the curves with positions that you wish to copy and press "Copy Position" in the tool UI.  Now move to a frame before or after a space switch on those same curves and click the "Paste Position" button.  The curves will snap to the same position they occupied on the copied frame.

Remove and Update the Rig

As of version 1.6 I've included a tool to easily remove parts or all of the rig.  It will only work on rigs made with version 1.6 of the script or greater.  Rigs made with earlier versions won't be recognized.  Sorry, you'll have to strip them manually and re-rig.  Also, be aware that the script won't open unless it finds at least one rigged (by 1.6 or greater) character.

To begin click Tools > Rig Remover in the main UI.  You'll be greeted with the abRigRemover window.  Select the rig you wish to modify from the option menu.  Next, hilite in the textScrollList any and all parts of the rig that you wish to remove from the skeleton.  Click "Remove Selected" and it shall be done.

If you're updating the rig and you've modified your character's control curves, you'll probably want to save them before deleting the rig.  Select the character's rootCtrl and click Tools > Save Wires To Shelf.  A new button with your character's name should appear on the current shelf.  Once you've updated the rig, your curves can be restored by selecting the rootCtrl and clicking the shelfButton.

Make a Stretchy Spline

As of version 1.8 of the script you can use the nimbly named abMakeStretchySpline tool to quickly make a stretchy spline rig from a curve.

To use it you first need to create a curve with knots placed where you want the FK controls.  Note that the control curves will taper from the beginning to end, based on the direction of the curve.

Once you've got your curve, click Tools > Stretchy Spline from Curve to open the script UI.  Select the curve you just made and click "Select Curve".  Once you've specified the number of joints you want in your spine and a unique naming prefix, you can click "Create Stretchy Spline".  And there you go.

Note that the root control has a few extra attributes compared to the others.  "Stretchy" enables and disables the stretching of the joints with the curve.  "Rig Scale" will scale the rig up and down.  And the "Squash Driver" and "Stretch Driver" attributes are intended to drive squash and stretch blendShapes, the manner in which those blendShapes are driven can be adjusted with the falloff and scalar attributes.

Release the Hounds

A few things on my to do list for this script are:

  • Add head scaling.
  • Include UI for attaching a proxy and controlling overall mesh visibility and resolution.

That's pretty much it, except for a few notes for the skimmers.

A Few Notes (for the skimmers)

Auto Rigging

The script will do strange things if your working units are in anything but centimeters.  You can switch back to your preferred working units once the rig has been created.

Be aware that autoFill (in version 1.6 and greater) fills mirrorable object fields (upArm, upLeg, the hand fields, etc.) with objects on the left side of the rig (+x) by default.

Currently the script doesn't create a standard reverse foot rig.  Instead of the toes pointing at the foot control when moved beyond the leg's maximum stretch, they'll stay in the position they are posed in.  I prefer it this way; others might not.

The leg rig doesn't undo correctly.  It can be undone, but you'll be left with some control curves and a toe rig joint (which ends up jumping into your skeleton hierarchy) that you'll have to delete manually.  Use the rig removal tool to delete it (unless you're dealing with a rig created with version 1.5 or below of the script, in which case you have to do it manually).

Heel locs should be properly aligned.  If not just rotate them until they are.

If you slide the IK/FK blend attribute on the legs and arms when the IK and FK limbs are in the same position, they'll rotate the long way around.  This shouldn't be a problem when animating.

If your skeleton has split joints and you want to change the x rotation of the hip or wrist, remember that you can adjust those values on the Spine/Split control (the octagonal wire next to the spine).  Keep in mind that the values for each category must add up to 1.

The "Char Name" attribute needs to match the character you're working on.  If it doesn't, some stuff will probably break (most notably, the rigRemover).

The shelf button created along with a rig (used to access the FK/IK snapping functions) won't work unless the script has been sourced first.  It also won't work if you rename your control curves.  In version 1.9 (only), it won't work if you move the rig_grp folder either.  It's easily fixed, though.  See the updates below.

Which reminds me, don't rename your control curves.  Actually, don't rename anything in the rig_grp.

Skeleton Maker

You can delete a proxy skeleton by deleting "skeleton_proxy_grpLoc".  All the associated nodes will be removed from the scene as well.

When building a skeleton, the first three joints of the leg (upLeg, knee, ankle) and arm (upArm, elbow, wrist) must lie in the same x and y planes respectively for the snap to pv function to work correctly.

The default skeleton is slightly misshapen and out of proportion.  If you come up with a more useful default skeleton, please send it to me.  I'd be more than happy to replace the current default.

Wire Replacer

Some of the curves created by the Wire Replacer are currently less than spectacular and maybe even slightly useless.  I'll fix them at some point.

The rig should be in the default position for the mirror curves function to work.

For Those New To This

Save your rigged character in its own file and reference it into your scene.  That way if you need to make changes to or update your rig your animation won't be lost (as long as your control curves names stay the same).

If you're using corrective blendShapes on your rig, make sure that they're not driven by your control curves.  It easier to update your rig that way.



Updates

06.07.07:   Heel locs axes, and therefore foot Ik control curves, are now properly aligned.

06.08.07:   Went back to my previous way of doing stretch on arms and legs that I think is more flexible.  FK stretch is no longer limited by the IK maxStretch attribute.  Exposed stretch amount on arms and legs.

08.01.07:   Split joints now work properly.  Master control can be rotated without any problems.  Added split joint rotation ratios to spineSplit ctrl (the visibility of which is now located on the root ctrl).

06.09.07:   Exposed stretch value for spine on cog ctrl.

06.15.07:   Fixed a problem with the arm and leg creation failing on 8.5 in osx.

06.19.07:   FK to IK snap now fully implemented on legs.  Stretch value now displays the correct value when used on an arm or leg with split joints.

06.21.07:   Added optional ik fingers to hand rig.  Space switching on mirrored controls now works properly (leg and arm IK, hand).  PV controls will now follow their ik curves when their space is set as such.  Updated Fk to Ik snap to work when a character's rig group has been regrouped or moved in the scene hierarchy.  Fk/ik snap also now supports references via the namespace optionMenu and works with previously built characters.

08.01.07:   Split joints now work properly.  Master control can be rotated without any problems.  Added split joint rotation ratios to spineSplit ctrl (the visibility of which is now located on the root ctrl).  Fixed the way scale is determined so pv control wires will now mirror properly.  Added popup to select target object when wire mirroring encounters multiple mirror objects.

08.03.07:   Made a small change to the way finger IK ctrls are scaled.

08.10.07:   Weight spine joints now rotate correctly with rootCon rotations.  Thanks to Josh Yoder for finding this.

09.27.07:   Under "Tools" menu added "Save Wires to Shelf" (with its own icon) and "Rig Remover", both of which should make for easier updates.  IK and PV controls are now aligned along the world axes.  Improved default rotation order on control curves.  Script will now attempt to repopulate UI fields (hidden and non) automatically, which, among other things, means that parts of the rig can be added after the UI has been closed and opened again without a problem.  Added scale slider and four new shapes (tweaked others) to abWireReplace UI.  Improved error handling (the script now checks for an existing rig upon creation).  Slight improvements to the default skeleton.  Killed a few bugs.

10.03.07:   Fixed the hand IK rotation problem by adding "Align Hand IK to World Axes" checkbox to the Arm tab.  Leaving the checkbox blank will align the IK control to the wrist joint and allow it to rotate the hand.  Enabling it will freeze the control's transforms and lock and hide the rotation channels.  Modified default LRA alignment on arm, wrist and hand joints to make the IK control a bit more intuitive.  IK finger rig now blends properly between FK and IK.  Added curl attributes for each finger as well as midCurlAmt and tipCurlAmt, which determine how much the respective joints will rotate relative to the base joint when using masterFist and fingerCurl attributes.  Added masterSpread to hands and individual finger spreadAmount attributes to spineCtrlCrv to specify the amount each finger is affected by masterSpread.  Wire replacer should now work more reliably overall.  Adjusted the object centers of curves which should eliminate drifting when replacing wires.  Replaced wire scale slider with a float field, which can be control-LMB MMB or RMB dragged on to interactively scale the selected wire.  Creating wires along the -z axis now works as expected.  UI field auto fill is now more comprehensive (be aware that it fills mirrorable object fields (upArm, upLeg, the hand fields etc) with the left objects by default).  Added the ability to rig mirror limbs at the same time (The options menu finally has a child).  Lot's of other small stuff.

12.21.07:   Added ability to select hand joint rotation axes under Options > Hand Options.  Added "Stretchy Spline From Curve" to tools menu to make quick and dirty IK spline joint chains.  The knees once again stretch as they should (oops).  UI field auto fill now includes the number of split joints.

01.04.08:   Added individual up and low limb stretch attributes to legs and arms (works with limbStretch on foot and wrist controls).

01.10.08:   Added the ability to scale the stretchy spine.

02.08.08:   Less flipping when sliding IK/FK blend on leg and arm joints.  They'll still flip occassionally when the root ctrl has lots of rotations, but only when the IK and FK limbs are in matching positions and the ikFkBlend is between 0 and 1.

02.21.08:   Rig is now scaleable.  Added true IK to spine controls (enable "useRootSpace" attribute on the control curve).  Added translate control to the head, which can also be used in IK mode (enable "ikCtrlVis" on head ctrl to see the control).  Added utility to match ctrl positions across space switches ("Space Switch Matcher" in tools menu).  Added snapIKtoFK and hugely improved SnapFKtoIk (both can be found in the character shelf button).  Unfortunately, older snapFKtoIK buttons won't work anymore, which is not a huge problem because it wasn't really working that well anyway.  FK controls with align attribute now auto align with the root ctrl (<- this is awesome for those of us who love the align att).  Rig Remover will now work with multiple characters in a scene.  Improved stretchy splines (made with "makeStretchySpline") scaling.  Removed World space from space switch options as it was pointless.  Disabling all of the spaces does the same thing.  Fixed spine stretch value.

02.25.08:   Very small fix.  IK/FK snap button now works when rig_grp position has changed in the rig hierarchy (placed in a new group).

To fix a button made with 1.9, just copy the button command into a text editor and replace all instances of ">|" with ">" and all "&|" with "&".  Replace your current command (of the IK/FK snapping shelf button) with the modified version and you should be good to go.

04.22.08:   Weight Spine joints are now created in the skeleton grp.  They aren't deleted when you remove the rig, so you don't have to reattach and weight them when you update the rig.  Added "Reset Character to Default Pose" (which can be also be called with "abRTResetCharPose(1)") and "Reset Selected Control Curves to Default" (call with "abRTResetCharPose(0)") to Tools menu.  Added ability to lock proxy controls to prevent troublesome translations and rotations.  Added a warning when building the skeleton about snap to PV not working under certain conditions.

04.23.08:   The script now supports feet that have been rotated out of the YZ plane.  When building your skeleton, match the foot locators (ankle, ball, and toe) to your mesh by moving them in their local YZ planes (no X) and rotating the "lf_foot_grpLoc" in Y.  If you want to use an existing skeleton you'll have to orient the ankle and ball joints first.  To do so, select left and right ankle and ball joints and run "joint -e -orientJoint xyz -sao ydown;" in the command line.

04.28.08:   Skeletons on layers can now be rigged.  IK and FK joints won't be colored, though, so you're better off keeping it off of a layer until the rig has been created.  Added a spine_end group control to the proxy skeleton.

05.07.08:   The skeleton created by skeleton builder is now mirrored in behavior instead of orientation (except for the eyes and, optionally, the legs).  I had to update hand rigging (among other things) to accomodate the change, so I've added a new a menu item (Options > Hand Options > Reverse Right Curl) which should be enabled when rigging skeletons created with earlier (pre 2.0) versions of the script.  Added "Mirror Leg Behavior" menu item to the skeletonMaker UI (enabled by default).  Disable it to mirror the leg joints by orientation.  Changed the way "Align Hand IK to World Axes" works -- rotations are now allowed.

05.08.08:   The UI autofill feature was missing some important hidden fields which kept certain spaces (like handCtrl for finger IK controls) from being created.  Now that it's fixed, the finger IK curves travel with the hand as they should (they're constrained to handCtrl space by default).  I also added the option to skeletonMaker to specify the number of fingers on the proxy.  Note that if you recall a saved skeleton from a shelf button, it will respect the current finger num value if the skeletonMaker UI is open.  Neck and head joints are now aligned so their control curves rotate the same way as the spine curves.

05.09.08:   Proxies saved to the shelf now have local transforms preserved (including scale on the rootLoc).  Feet rotated out of Z should now rig correctly when there are Y rotations on the leg_grpLoc.

05.12.08:   Fixed a bug with weightSpineGrp that prevented multiple character spines from being created in the same scene.

05.13.08:   Added Joint Orient Rotation Tool to Tools menu.

05.16.08:   Improved skeletonBuilder's orientation of joints in legs and feet when the limb has been rotated in Z.

05.29.08:   Added tool to add weight joints to a skeleton (useful for the lower leg), Tools > Add Weight Joint Tool.  Removed snap to PV warning for legs (they work when rotated -- the arms still don't).

06.07.08:   Leg split joints now rotate properly when the knee is brought above the waist.

07.13.08:   Fixed rt_thumb_grpLoc default skeleton proxy positioning.

08.05.08:   Added djx's fix to GroupFreeze procs.  Character names must now be unique before a proxy can be skeletonized.

10.14.08:   Changed min value on armStretch and legStretch attributes to -9.9 (arms and legs can now stretch negatively).  Improved default finger joint LRA orientation.

10.16.08:   Added "Align Control Curves to Spine" button on the Spine tab.  If enabled the mid and high spine controls will align to their respective joints; otherwise they'll lie on the XZ plane (the previous default).

12.02.08:   rt_thumb_a_loc is now properly parented in proxy (to rt_thumb_grpLoc).  Added "Quick Create Character Set" to tools menu.  Select a control curve on your rig and then run it.

12.22.08:   Added "Change Rotation Order Tool" to tools menu.  With it you can change the rotation order of any selected control curves and maintain their orientation across one or many keyframes.

01.16.09:   Simplified the spine and made it much more robust.  Note that although the spineRot control curve no longer holds spine twist attributes, it's still used as an attribute holder for the arm, leg and hand setups.  So don't delete it.

01.23.09:   Fixed an issue with IK/FK arm snapping.

02.09.09:   Soft selection is now disabled before creating a rig.  It can cause an issue on 2009 and up (thanks bm jo).

02.11.09:   Fixed issue with limbs flipping when sliding IK/FK Blend attribute values (finally!!).

02.20.09:   Big enhancements to the twist joint setup in this version.  There are now two types of split joints: inline, the previous type which are parented one to another, and branched, which are all parented to the up joint.  Use inline for upArm and upLeg joints (where twist is read from the upJnt) and branched for foreArm and knee split joints (where twist is read from downJnt).  The forearm and knee twist is read from an aim constraint, which avoids a lot of gimbal lock problems with the wrist.  The idea is Adam Mechtley's, not mine, so a huge thanks to him for sharing his knowledge.  You can find his videos regarding the aim constraint setup at his site, www.6ixsetstudios.com.

Other new stuff: the "Add Split Joint" tool to the Tools menu, "Refresh UI" to the Options menu, knee split joints, and the addition of COG space to the hand IK controls.  Also, the leg and arm hierarchies are now checked before rigging to make sure that the joints are zeroed out.

Note: If you have issues with a knee or elbow shifting slightly after it's rigged, check to make sure that the preferred angle on your joints is set to 0 0 0.

04.07.09:   Adjusted proxy skeleton finger joints so that they're now aligned with their parent grpLocs.

04.23.09:   Arm IK/FK snap should now work with referenced characters.

04.29.09:   Added more softmod warnings.

05.26.09:   UpLeg and upLeg split joints now rotate as they should when the knee is brought above the waist (forgot to remove an old fix -- that's why this one reappeared).  Improved stretchy spline maker; control curves can now be parented to a root transform or to the curve below them in the hierarchy; spline IK now rotates properly in a rig setting; added the ability to select the spline's parent object in the UI (leave it empty and a new control curve will be created at the base of the curve).

07.30.09:   Added "Weight Joint Selector" to "Tools" Menu.  Use it to quickly select joints for weighting.  Hold the shift and control keys when clicking to add or subtract from the current selection.  Also added "Make abxPicker Character Sheet" which will create a character UI node for use with abxPicker.mel (http://www.highend3d.com/maya/downloads/mel_scripts/animation/4216.html).  Please, someone, make a better UI and send it to me -- I'll incorporate it into the script.

07.31.09:   Improved abxPicker UI.

09.01.09:   Fixed issues with non-mirroring pinky and ring cup joints.  Added "Make IK/FK Snap UI Shelf Button" to the "Tools" menu (create a snap IK/FK shelf button for existing characters) and "Auto Build IK/FK Snap UI Button" to "Options" (uncheck it if you get the error "Object Not Found: Toolbutton 1" on rigging arms or legs).

09.24.09:   Improved "Make IK/FK Snap UI Shelf Button".

12.09.09:   Fixed issue with "Make IK/FK Snap UI Shelf Button".

03.04.10:   Check Character names for and remove "lf" and "rt" strings (can cause issues).  Added popup menu to charName field to quickly select existing characters.  Fixed issue with mirrorObj function and objects with shared names.  Improved heelLoc positioning method (esp. when ball and toe don't share the same Y translation) and foot IK control positioning when there are rotations on the proxy skeleton's foot_grpLoc.

comments

Josh Yoder
July 19th, 2007 said:

Really like this auto rigger, but found something either wrong or I just haven't found how to fix:

You can't turn the rig around. In other words your character must always face in  +Z axis. When I try to rotate the root control in Y only about half the controls follow. This makes it just a little hard to animate interacting characters in the same scene :-)

July 19th, 2007 said:

Hey Josh,

The script assumes that when setting up a complete rig you move through the UI tabs left to right.  It sounds like you might have created the spine after rigging the legs and arms.   Which will work, but the resulting arm and leg rigs have no root control to which they can parent themselves.  Try running through the setup again starting with the spine tab, and see if that fixes the problem.

July 20th, 2007 said:

So the rig doesn't work unless it's facing Z+.  Kind of a big problem!  Until I can fix it, I'd advise not using the script.  I'll get to it as soon as possible (which might not be that soon).

August 1st, 2007 said:

A new and much improved version is now up.

Mr Chan
September 7th, 2007 said:

I am using this ... trying to use this on Maya 8.5 on OSX, creating everything seems to go smooth up until I try to rig the arms and legs, when I select the required joints and then proceed to click create arm or leg rig, the bones go all stretched and break.  This is an amazing script and I am really hoping to add this to my pipeline as it would save me HOURS. I hope you release a fixed version soon.

Thanks for all the hard work. Keep it up :)

September 7th, 2007 said:

Hey Mr. Chan,

You're the second person to report issues on 8.5 in OSX.  It seems to be working for PC users on 8.5, but not Mac users, and I'm not sure why.  Unforunately I don't have a Mac (or Maya 8.5) so it's difficult for me to track down the problem.  Is the script throwing any errors or warnings in the script editor?

Mr Chan
September 8th, 2007 said:

Hey Crumbly;

I got it working :) As far as I can tell.. I will continue to test to make sure, but here is the fix for all you MAC OSX Maya 8.5 users...

If you model in meters and then try to use Crumbly's script the arm and leg rigs will break... To fix this, model in meters like you normally would, then set you're units to centimeters, rig using Crumbly's awesome script and then set the units back to meters. Hide the nodes and you are good to go :)

I hope that helps everyone.

Regards

Mr Chan

September 8th, 2007 said:

Awesome!  Thanks, Mr. Chan, for figuring that out.

October 9th, 2007 said:

wonderful!! Thanks a lot crumbly

October 17th, 2007 said:

Have you figured out how to implement global scaling yet? If you can tell us maybe how to set it up in the outliner that would be fantastic. Besides that this script is great, thank you very much for your efforts!

October 17th, 2007 said:

Hey Stephen,

Making the rig scalable and adding true IK on the spine are next on my to do list.  I think I've figured out how to scale the stretchy IK.  It's the weight spine joints that I've got to take a look at.  It might be a little while before I can get around to this, though.

Saheee74
October 18th, 2007 said:

thanks for this great scripts, I am on my way to shoot my first animation using this rig, hopes it maintane it`s performance.

thanx

October 25th, 2007 said:

Great Script!  Works wonderfully, except for one problem:  The knee targets get screwed up if there is a slight bend to the knee other than along the x.  To fit it to my model, I needed just a slight bend in the z also, and that completely threw off the targets.  Click on my name to be taken to the image on my website.  Thanks again.

John
October 27th, 2007 said:

Cant use component editor nor character sets though

October 29th, 2007 said:

Barry,

You've encountered one of the script's limitations.  The leg and foot joints need to lie on the same YZ plane for the rig to work correctly.

John,

I'm not sure what you mean.  I haven't had any issues using character sets or the component editor with the rigs.  There's no reason it shouldn't act like any other rig (which it is).

Can you expand on the problems you've encountered?

Tim
October 29th, 2007 said:

Does this work for maya 2008?

October 30th, 2007 said:

I've only tested it very briefly on 2008 and it worked fine.  I can't think of a reason why it shouldn't.

November 9th, 2007 said:

Have you used Advance Skeleton plugin for maya? Its on highend3d too. The one thing I like about that setup is that it has this feature for arms and legs that prevent IK poping called anti pop. Also it has another feature that enables you to keep the characters hips always centered between the legs which is super helpful for ofset walks.

Now I like this stuff, but the problem with this plugin is that keying in it seems harder like it gives you too many results and for some reason lags my maya program when using character sets but your plugin is great, plus your a great animator so you know what we need! If you could impliment just some of the small features tthat this Advance Rig has your auto rig would be perfect!

Wish Features a.) Anti Pop on IK b.) Hips center between legs c.) Squash and stretch for head.

and if you really want to get fancy maybe some kind of mouth control and brow control for face.

Thanks alot keep up good work.

Mr Chan
November 23rd, 2007 said:

Hey me again;

I must say I am really digging 1.7, a job well done man, thanks ever so much for this awesome script.  I just thought I would let everyone know, that it works PERFECT in Maya 2008 for OSX Leopard (10.5) Keep up the great work man..... thanks again.

George
December 8th, 2007 said:

Is there a way to scale the figures made with this rig tool?

December 11th, 2007 said:

Jonald:  Sorry I'm so late to reply, but thanks for the suggestions.  When I get some time I'll look at implementing at least a few of them.

Anti pop on IK sounds very useful.  I'll have to think about how that would be implemented.  Auto hip centering is often requested, but I've always resisted because it seems sort of gimmicky to me.  People seem to like it though, so what do I know.  It would be super simple to implement, so maybe I'll just add it as an option.  And a squash and stretch head is on my list.

Mr. Chan:  Thanks!  I'm glad to hear it's working on 2008.

George:  No, you can't currently scale the rigged characters.

Steven Zaharakis
December 12th, 2007 said:

There seems to be an issue with your SkeletonMaker portion of the autorig.  Ive noticed on every character I rig with it, the right side HAND of the proxy skeleton I position is way off.  Is this known?

December 13th, 2007 said:

No, that's not something that I've come across.  Does it do this with the standard (unmodified) skeleton?

Jonald
December 19th, 2007 said:

That never happened to me...Hmm perhaps its the version of maya your using

Graham
January 14th, 2008 said:

What a great time saver!  Thanks so much for writing this script!  I'm using it right now for a school project and it appears to be working great thus far.  I took apart some of the stuff that was built for the spine and put in my own stuff.  I'm also going to modify the head.

I'm having two issues thus far.  First, there's no IK further down the foot to lock it from passing through the floor.  I was going to implement the way of preventing this with an ik handle at the toe but came into a bit of a problem there.

There seems to be a separate joint chain called AnkleBallReader, which it where i think your getting the driven keys for the foot rotations.  Will IK chains mess up those controls and is there an easier way to prevent the foot going through the floor?

Graham
January 14th, 2008 said:

Sorry...one more thing...what does the AnkleBallReader chain do down in the leg and why does it stick out to the side like that?  It frightens me....:(

NewGuy
January 14th, 2008 said:

Which directories should the downloaded files be placed into?  Anyone can answer this please...thanks.

January 14th, 2008 said:

Graham:  I sent you an email.  The ankleBallReader joints are used for FK/IK matching.  If you don't care about that you can delete them without further consequence.

NewGuy:  You can unzip the downloaded file into your Maya/versionNum/ directory, where versionNum is the actual version number of Maya that you're using.  The script will go into your scripts/ folder and the icons into prefs/icons/.

Mr. Man
January 17th, 2008 said:

Great rig script! I was wondering if you've encountered this: I built a proxy skeleton and then rotated lf_arm_grpLoc a few degrees on negative .rz, since my model has a relaxed t-pose. I built the skeleton, built the rig. I then slide the IKFK blend attribute for the right arm and there is a 360 flip on the arm. It doesn't happen to the left arm, so I'm guessing it is caused by the shortest interpolation method on the orient constraint and the mismatch between joint orientations on the fk and ik arms.

Mr. Man
January 17th, 2008 said:

Oh, sorry I just read your release notes, and see that his is a known issue for the legs. The left arm is the only one immune to the problem, and it's the only case where your IK and FK arms have matching joint orientations.

January 18th, 2008 said:

Thanks, Mr. Man, for pointing out the joint orientation issue.   I never thought to check that.  The new version (1.8.3) should fix the flipping.

Seon
January 21st, 2008 said:

This is an awesome script. It gives you a lot of control over your joint placement. Some auto set ups its hard to know exactly where the joints will be. The only issue I am having is when select items such as curves maya seems to slow down, the curve is not selected instantly. My character is pretty low res and the mesh(ref) + rig is the only thing in the scene. The only reason I ask is because this can really slow down the animation process. Is it my computer or do other people have the same issues. Is there a way to fix this.

Thanks for the scripts Crumbly, saves me a lot of time and frustration : )

January 21st, 2008 said:

Hey Seon,

Someone else mentioned the same problem but I can't think of any reason why the rig would interfere with selections.  It's all node based and it doesn't run any scriptJobs.

If you want to send me your file I'd be happy to test it on my computer.

Seon
January 21st, 2008 said:

Crumbly, thanks for the offer but I might have found the issue. Whenever I built the skeleton and rig I left the abAutoRig UI open. Not even realizing that the UI was still open I began to test animate and maya was really lagging . But once I restarted maya and open the rigged file everything seemed to be fine. Does that make sense? Anyway again this is a amazing piece of work you created...

PS: I should be starting Animation Mentor in the spring, this should define come in handy in the short film section.

BRAD
January 22nd, 2008 said:

dear sir ~

is it supported quaddruped ?

January 23rd, 2008 said:

Sorry, but no, it can't create quadrupedal rigs.

Meysam Abotaleb
February 14th, 2008 said:

Hi Thanx Man I Have a Question Form You Can You Make Use Both ik and fk together this mean : move with fk and switch to ik and fk dont change to Zero or inactive

February 14th, 2008 said:

For the arms and legs, yes, the IK/FK blend can be between 0 and 1.

Meysam Abotaleb
February 15th, 2008 said:

this control is in abAutorig 1.8.3 or not if  yes please say me how? if not can you tell me when can you put this control in your script because i love your rig can you put control similar to maya FBIK ? please put control to enable or disable spine stretch Please replay all my question

Meysam Abotaleb
February 15th, 2008 said:

you and your script is #1 Crumbly please put FBIK in your Script i work with your script in our studio if upgrade to upper post your script we dont need anything thanx man

February 21st, 2008 said:

Hey Meysam,

Thanks, I'm glad you like the script.

As for the FBIK, I have to say I'm not a huge fan.  Odds are that you probably won't see it in the rig anytime soon, but who knows.

Chupacabras
February 23rd, 2008 said:

First off with the compliments on a great rigging tool. I love the control.  I built a rig with 1.8.2 and am animating away.  Now for the query: This happens elsewhere, but I'll use this as an example - When animating the elbow_pv_crtl, I set a key (+w) and keep going.  Then I realize that I want to delete the key, so down to the timeline, shift-click the key and RMB-delete.  All is good and away we go.  I save the scene and reopen it and lo-and-behold, geometry is gone, the skeleton is destroyed and I need to step back a version to where everything was okay.  This seems to also happen if I accidentally key the translation on the hand_ctrl or the rotation on the arm_ik_ctrl.

When the scene is opened, the Script Editor outputs a slew of errors regarding the setAttr, createNode plusMinusAverage, and connectAttr.

Any thoughts, besides paying more attention when animating ;-) ? Oh, and I am running Maya 2008...

Thanks, Chupacabras

February 23rd, 2008 said:

Hey Chupacabras,

That's weird,  I don't know why that would be happening.  If you want to send me the output of the Script Editor, I'll take a look at it.

Is the character that you're animating a reference?

Wikanimator
February 24th, 2008 said:

Awesome script, thx thx thx a thousand thx.

Here goes my problem, when the shelf button for ik/fk switching appears, if i click it it shows me the menu for switchinig, but when i use the buttons for example for the left arm, nothing happens. Is it the same if I use the hand control atribute "fk/ik blend"? The script is sourced

Another doubt that i have is that you said that when binding the skin we have to use the newly created spine joints. I guess that i have to use the "selected joints" option when binding and skip the old spine joints?

February 25th, 2008 said:

Hey Wikanimator,

Matching is different than adjusting the FK/IK blend.  Try this:

  • Pick a limb and move and rotate the IK control away from its default position.
  • Enable the FK and IK vis attributes on the limb control, and set the FK/IK blend to .5.
  • Open up the character UI (shelf button) and click one of the snap buttons for the limb.

It should snap the IK or FK limb to the other.  If that doesn't work, let me know.

As for the skin binding, yes, you want to use selected joints and skip the spine_low, spine_mid, and spine_hi joints.  You do want to include the spine_end and hip joints, though.

John B
February 25th, 2008 said:

What's up Crumbly, awesome tool you've made here.  I am having a little difficulty in the setup and maybe you can help.  When I rig the skeleton the knees and elbows pop way out of place.  If I turn off the IK in the IKBlend attributes they go back to the right position, but of course only allowing FK animation.  Here's a screenshot, any ideas?

-To see the image go to photobucket and search for my album, bungalicious.  It should be the first image you see.  Damn spammers ruining comment sections...

February 25th, 2008 said:

Hey John,

I've never seen that happen.  Could you save your proxy skeleton to a shelf button and send it to me (the button command)?  I'll see if I can recreate it.

February 25th, 2008 said:

John,

One more question for you.  Are your working units set to centimeters?  The script currently doesn't work with other units.

John B
February 25th, 2008 said:

I actually have my units set to inches.  I'll switch it over and try it, and if that doesn't work I'll send the button command.  Thanks for the help.

John B
February 25th, 2008 said:

Switching my working units from inches to cm did the trick.  Thanks again!

Chupacabras
February 26th, 2008 said:

Maestro Crumbly, Chupacabras here, I think I found the issue that I was having.  I checked out the Script Editor and saw that on the lines that it failed on while loading my Maya Ascii file, it showed a symbol at the end of the line that looked quite like the Euro symbol (money).  I saved in Maya Binary instead and all is well so far.  Hmmmm.  And I always trusted Maya Ascii...

-Chupacabras

February 26th, 2008 said:

Weird.  I thought .ma was solid.

Jeff
March 5th, 2008 said:

Incredible! Simply the best auto rigger ever!  Im animating faster than ever with this!

John
March 6th, 2008 said:

Does anyone know if abAutoRig will work with Maya 7? Or if there's an older version that will work with Maya 7? Thanks!

March 7th, 2008 said:

Hey John,

I started writing it on Maya 8 and haven't tested it with anything earlier.  I can't think of a reason why it wouldn't work, though, and you won't hurt anything by trying, so I say give it a go and see what happens.

John
March 7th, 2008 said:

Hey Crumbly,

Thanks for the scoop! I'll probably give it a try on Maya 7 this weekend ... I'm looking forward to it!

Thanks! John

Fazil Ahmed
March 8th, 2008 said:

This Script is reallly Awesome  ......

James
March 9th, 2008 said:

Is there away to switch from IK to forward K? If so how?

March 10th, 2008 said:

You switch between IK and FK using the FK/IK blend attribute located on the foot control (the square under the foot) and hand control (circle at the wrist).

Danielle
March 12th, 2008 said:

Hey, I love this rig, it's great. I have a question with scaling. I can scale up, but when I scale down the geometry and rig separate. Is there a way to scale the rig smaller?

March 12th, 2008 said:

Hey Danielle,

Hmmm, that shouldn't  be happening.  Make sure that you don't have your geometry in either the rig or skeleton group.  Also check that the skin is weighted to the proper spine joints.

If that doesn't work, I'd try removing the entire rig (with the rigRemover).  Sometimes if you rerig over an existing character group some of the space switching constraints can cause double transformations.  Once the rig is removed check that the rigGrp has been deleted -- tt should have been, but if not you can just delete it yourself.  Then rerig the skeleton and it should scale properly.

If none of that works, let me know and I'll investigate further.

John
March 14th, 2008 said:

Hey Crumbly,

I tried your autoRigging script in Maya 7 and it looks like it works well!

By the way, if I want 4 fingers instead of 5, do I just delete the pinky?

And what's the licensing restrictions for your autoRigger ... Can I use this on freelance work?  :-) We have our own autoRigging systems at work, but if I ever start my international animation and film production studio and theme park, can I use this autoRigger for that too?  ;-)

Thanks so much for a great autoRigger!!!

Thanks! John

March 17th, 2008 said:

Hey John,

The only fingers that the script requires are the thumb and index finger.  The rest can be deleted as you want.  So, if you have four fingers (including the thumb) and want the outer two to have cup joints, you can delete the middle finger.

As for licensing restrictions, there are none.  Go forth and use it to make cool stuff.

(free passes to international theme parks always appreciated...)

John
March 19th, 2008 said:

Thanks!

MitchStan
March 24th, 2008 said:

Hey Crumbly,

I'm a noob with Maya but doing well learning the software the last 6 months.  I would love to try out your incredible rigging utility, but I can't seem to get the mel script sourced.  I'm using Maya2008 on a mac with OS X 10.5.2.  I've copied the files to the appropriate directories.  Since I'm new to mel, could you pleas tell me how to properly source the scripts?

I'm doing something wrong because when I type: source abAutoRig.mel;abAutoRig;

I get the error:

// Error: Cannot find file "abAutoRig.mel" for source statement. //

Thank you for any help.

Mitch

MitchStan
March 24th, 2008 said:

Never mind - got it to work - had to restart Maya!  Doh!

So far looks amazing!!

Thanks for a great looking tool!

ISOSCELES
March 28th, 2008 said:

I'm having some issues during walk cycle tests where the 'knee pv' continues to flip when the leg extends back. I've turned on Hip ctrl and Leg IK ctrl within the 'knee pv' and its still funky. Any suggestions?

ISOSCELES
March 28th, 2008 said:

Just found this on Highend3d and BLAMO... Great work! Being an animator, rigging has always been a nightmare. Thanks for making Maya simpler. The AutoRig presets are everything I could ask for (and MORE!). Before finding this AutoRig, I had given up on the idea of having a stretchy rig. Bravo on the foot cog ctrl and cog root ctrl.

I'm confused of how to use the spine shaper and 'use root space'. (Octongal spine controller: all values add up to one? confused.) Would you mind explaining these bits? I've RTFM and I need a little more explanation.

March 28th, 2008 said:

Hey Isosceles,

The spineSplitRot control is there to make certain user adjustable attributes more accessible.  It can contain any of the following attributes, depending on the rig that that you build:

  • Spine joint rotation:  You'll have a header attribute (like "Spine_B") and four values( e.g. Spine_b_Hip, Spine_b_Low, Spine_b_Mid, and Spine_b_High) for each weight spine joint.  The X rotation of the weight spine joint is calculated by multiplying those four attributes by the rotation of their respective spine controllers (the rotation of which is indicated by the first four attribute values on the spineSplitRot control).  These values need to add up to one.  If they don't, your weight spine joints will rotate either too much or too little with respect to the rotation of your spine control curves.

  • UpLeg, upArm, and foreArm split joint rotation: Here you can set the proportion of up or fore limb X rotation shared by each split joint.  Again, these have to add up to zero or the limb rotation will be a multiple of what it should be.

  • Finger Spread:  These attributes determine the direction (positive or negative value) and amount of the spread attribute (on the hand control) inherited by each finger.

As for the useRootSpace attribute on the spine controls (except the spine shaper), it unparents the control from the curve below and puts it into the root control's space.  With useRootSpace set to one, the control will act like a true IK control and not be affected by the translation and rotation of a parent spine curve.

ISOSCELES
March 31st, 2008 said:

Thanks for everything. I've learned alot here. My animations:

www.zombiedasein.com

www.elkcloner.com

curve-ball side-note: The following comment was helpful, yet you might want to add that rotating the legs of the proxy skeleton ruins the foot roll and knee pv controller (legs flip in nasty strange ways). This was my only problem with the rig, and I thought I'd share!

"If you plan on using the snap to pv controller for the knee and elbow joints, you'll want to make sure that the first three leg and arm joints share the same x and y values respectively.  Otherwise you'll have no luck getting it to work."

April 1st, 2008 said:

Yeah, I'm not sure why the elbow and knee snap to pv is so finicky about the joints being in the same xy and yz planes, but it is.

If you really want the snap to pv feature (and you have  Maya 2008), you could create the rig in the default t-pose, rotate the limbs to accommodate your character (using the FK controls -- make sure that you also match the IK to the FK), and then skin your mesh to the skeleton.

matt
April 11th, 2008 said:

hey, great rig, I'm going to use it on a small production althought I changed couple things that are annoying.You might want to think about it also, but it's no big deal and can easealy be changed.

First I changed the way the finger are control, I much rather have a controller with each finger that expose it's attribute, having all attr exposed in one controller is not very fast to use. I'm not a big fan of the way you spine works althought it's good enough I think I might change it to the way I'm used too, but I ddn't because I thought it might break the rest appart.

I have one question, I need a way to rotate the controller of the feet so it's orientation match the one of my feet , right now I din't find a way to have it's local axis match the orientation of the foot unless the foot are pointing  straight in the z axis. How can I rotate it without rotating the entire foot, and so aligning its rotation to the one of the foot.

thanks, it's ta great rig nontheless..

April 22nd, 2008 said:

Hey Matt,

Thanks, I'm glad you like the rig.  I thought about implementing individual control curves for each finger, but personally I prefer having all of those attributes on one curves, so that's what I put in the script.  Happy to hear it wasn't a big deal to change.

As for the foot orientation issue, that's a current limitation of the script.  The feet have to be rigged pointing straight in the z axis.

I'll take a look at it and see if I can make that bit of the script a little more flexible.

April 23rd, 2008 said:

I've updated the script (1.9.4) to support feet that have been rotated out of the YZ plane.  Let me know if it gives you any problems.

Andy
April 26th, 2008 said:

Hi Crumbly, I really appreciate your rig creator, however, I am recieving an error when I'm trying to create the leg and the arms for my model. "Error: The attribute 'MODELNAME_lf_upLeg_fk_jnt.overrideColor' is locked or connected and cannot be modified. //" The weird thing is that this only happens every now and then, it seems more frequent when I have scaled the Proxy skeleton down and tried to match it up with my model. I'm using Maya 7.0 btw.

April 28th, 2008 said:

Hey Andy,

Is your skeleton on a layer?  I can't think of another reason why overrideColor would be unsettable.  If so, I'd recommend waiting until you've finished creating the rig to put it on a layer.

I'll upload a new version of script (1.9.5) that plays nice with locked overrides (you'll lose some of the color coding on the rig, though).

Andy
April 28th, 2008 said:

Hi Crumbly,

Yes, it was because I had put the skeleton in a layer before I finished it. I emptied the layer and everything works fine now. Thanks alot!

Meysam Abotaleb
May 4th, 2008 said:

Hi again Crumbly

This rig similar to Animationmentor Rig ?

May 4th, 2008 said:

Hi Crumply, Nice script. There is one little thing. When I reorient the feet of the proxy skeleton the rotation axis of the joints got messed up. So when I use foot roll the feet rotates around the wrong axis.  I have to reorient the rot axis of the joints (+X aim, +Y up).

Keep on scripting, kind Regards, Paul

May 5th, 2008 said:

Meysam:  It's similar to the AM rig in some ways (attributes on the foot and hand controls, snap to PV, etc) but in others it's very different (the spine, stretchiness, etc).  It's a mix of features I've seen on other rigs and my own ideas.

Paul:  The latest version of the script (1.9.5) should remedy this issue (rotating the feet wasn't supported in previous versions).  Make sure that you're adding the Y rotations using the lf_foot_grpLoc (the red sphere control at the ankle) and not by moving the ball and toe locs in X.  Enabling "Lock Proxy Control Axes" (which is enabled by default) should keep this problem from occurring.

BTW, I have yet to update the docs regarding this and a couple of other new features.

If you're already using 1.9.5 and you're still running into this problem you can click "Save Proxy to Shelf" once you've finished building your troublesome proxy skeleton and send me the contents of the shelf button (MMB drag it into your script editor).

May 6th, 2008 said:

Hi. Great tool. I have one thing though. Maybe I just havent found it yet. But if you select BOTH eg. clavicles controls, then the up down rotation is fine (rotate Z) but the Rotate Y is not behaving the way I want. They should both rotate forward. The same goes for the rest of the arm controls (fk and ik)... Have I overlooked something or could you add an orient function ? I could just delete the left arm on the skeleton and then use the standard Maya mirror joint function (Behavior) with search replace ("rt_" / "lf_" ), and run the rig setup. Then it seems to work. But would be great if your tool could handle it.

Thanks again.

May 6th, 2008 said:

Hey Tom,

You're right, the skeleton wasn't being mirrored properly.  The new version of the script (2.0) should work as expected.  I've updated the hand rigging to deal with the new joint orientations (enable Options > Hand Options > Reverse Right Curl to rig pre-2.0 skeletons).

Thanks for the suggestion.

Mr. Man
May 6th, 2008 said:

I love the new mirroring, thanks! Two thoughts: Your stretchy limbs rely on arm joint .tx values, so they have been broken by the new orientations (negative .tx values). Maybe you could read some locators that have positive local orientations instead? I think the way your elbow and knee snap works may need some tweaking for the right side. Also, it would be nice to offer an option on leg orientation during the skeleton build process, behavioral vs. orientation. I think all animators like arms the new way you've done them, but the legs can vary.

May 6th, 2008 said:

Oops, I totally forgot to test the right side stretch.  Thanks for pointing that out.  Fortunately, it shouldn't be too difficult to fix (and it goes hand in hand with PV snap).  As for the leg mirroring, I'm happy to make it an option if I can make the stretch more robust (which I'm pretty sure I can).

I've taken down v2.0 for now.

May 7th, 2008 said:

Hi Again.

I found another thing also regarding the orientation of the controls. It seems that the neck and the head ctrls are differently oriented than eg the spine. Would be nice to have them the same? Looking forward to v2.0

Regards.

May 7th, 2008 said:

Ok, 2.0 is back.

Stretch and PV snap should now work regardless of whether the rig has been mirrored with behavior or orientation.  I've also added the option (in the skeletonMaker Options menu) to choose the way the legs are mirrored (default is behavior).

The default head and neck orientation haven't changed in this version.  I'll try to get to it in the next update.

Mr. Man
May 7th, 2008 said:

Awesome! I'll check it out.

Jose
May 7th, 2008 said:

Hey Crumbly,

Im really new with rigging, so if this might be a way basic question.  Im trying to st up the leg and arm rigs, and when i hit create rig, maya says someting about mutiplte mirror object, and then the knees move forward and when i set up the arms the elbows go backwards, what am i doing wrong and how can i fix this?

Mr. Man
May 7th, 2008 said:

Looks to work very nicely, thanks for the quick turnaround. I have one request for the arm behavior -- it would be nice if the arm IK could be aligned with the world, yet still control the rotation of the FK hand control. Even better, would be aligned with the arm, yet still maintain positive Y for "up" on the right hand, and positive Z for "forward on the right hand.

May 7th, 2008 said:

Mr. Man:  Awesome, thanks for pointing that out.  I (once again) completely missed the fact that the IK control axes got bjorked when I changed the mirror type.  As of 2.0.1 the arm IK ctrls should be aligned properly regardless of the way the the skeleton is mirrored.  I've also updated the way "Align Hand IK to World Axes" works (it now allows rotations).

And thanks for all the feedback, I really appreciate it.  Things are so much easier to fix when you actually know that they are broken.

Jose:  Did you rename any of the joints on the skeleton (or change their left/right prefixes) before you tried to rig it?  The script currently only supports the default naming system (and "lf" /"rt" prefixes) when creating the rig.  If it can't find a mirror object for a given transform or joint, it asks the user to specify one.  It sounds like that's what happened to you.

Meysam Abotaleb
May 8th, 2008 said:

Hi Crumbly I think IK finger have a problem When switch to ik in fingers  , IK finger Controller go back to 'T' pose ( Default pose ) IK fingers must translate or rotate with hand ;)

May 8th, 2008 said:

Hey Meysam,

Thanks, you're right.  I've fixed it in 2.0.2.  There were a few hidden fields that weren't being updated properly and so the default space for the finger IK controls wasn't being created.

I've also changed the default orientation of the neck and head joints so their control curves will now rotate as the spine curves do (as suggested by Tom), and added the ability to specify the number of fingers on the proxy (in the skeletonMaker UI).

May 8th, 2008 said:

Hi crumbly,

First, I want to thank you for that awesome work!

I've got a question about the thumb orientation. In what axis the thumb parts are suppose to turn? In my case, after several searching, I always have inverse orientation joint; thumb_a has Z up and inverse rotation; Thumb_b and Thumb_c have Z bottom and seem to rotate in right way. So where is the truth?...

Mr. Man
May 8th, 2008 said:

Bravo! It looks great. I have a question about how you store the proxy skeleton placement to the shelf button. It seems that after getting the stored proxy position by clicking the shelf button, all object transforms are zeroed. This makes it difficult to tweak things on their object axis later. For example, if I rotate the lf_foot_grpLoc to turn the feet out, I can slide the lf_ball_loc along the "foot axis" very easily using translateZ. After restoring a proxy pose from the shelf, the lf_ball_loc is world oriented. Could you alter the script to store the exact values without freezing transforms?

May 9th, 2008 said:

gzavye: Thumb_a should have the same orientation as Thumb_b and c -- they should all rotate the same way.  The left thumb joints should all curl inward as you increase their Z rotation and spread outward as you increase ry.

Mr. Man:  That's a good point regarding the stored proxy, and something I hadn't even thought about.  Another issue with the way proxies are saved is that the feet won't be set up correctly on recalled proxies if the ankles have been rotated in Y.    I'll fix this in the next update.

May 9th, 2008 said:

The inversion may happen when I rotate the proxies in many - and perhaps strange - directions and it causes local axis up side down...

Observation about proxy skeleton in shelf; In my scene I had to scale down the proxy to 0.2. And when I draw a new proxy from the shelf, scale for global skeleton is good but each proxy has his original scale (1) . Finally I see a messy proxy pack (I hope that's clear because I'm afraid that i'm writting with a bad frenchy english :| Do you think it will be possible to fix this little issue?

May 9th, 2008 said:

Hey Guys,

I've just posted version 2.1 which should address all of your saved proxy issues.  Saves made with earlier versions of the script will still work, but they'll be restored the way they always have.  New saves will restore with object transforms preserved (including the rootLoc scale).

Mr. Man
May 9th, 2008 said:

Crumbly for president.

Jose
May 9th, 2008 said:

i havent changed anything, is there anything that i have to do before setting up the rig, because i try setting up jsut a basic skeleton (no geomtry) to see if i can fix this probelm but still no luck the exact message from maya  is:

Mutltiple Miror Objects Select the mirror object of Alex_rt_knee_jnt

(my options) Alex_lf_knee_fk_jnt     Alex_lf_knee_ref_jnt Cancel

i hope that this clarifies my problem a bit better

May 10th, 2008 said:

Hi crumbly,

I've just tested version 2.1 and I always have my scale issue on proxies; but I think it's just a minor one

But I have an other problem; and this one is a big one for me; Each time I rig the leg on my character, the foot roll doesn't work. I tested on other characters and on my current with a bigger size, and I didn't reproduce that issue...I lost 2 days on that and I have no more solution. OK my character is a little bit special (very little legs), but I was thinking that it was possible to rig that guy.

If you're agree I can send you my model to check what happen.

May 10th, 2008 said:

Jose:  Thanks, that helps.  The script currently only works when linear  units are set to centimeters (Preferences > Settings).  It sounds like yours might be set to something else.  Does that fix it?

edit: I just uploaded a small update to 2.1.  The new version requires that your linear working unit is set to centimeter before you can create the rig.

gzavye:  Are you having the scale issue even with new saves (those created with 2.1)?  It should be restoring the scale correctly -- I can't think of a reason why it wouldn't.  If you send me the contents of your shelf button, I'll take a look at it.  Also, I'm not sure what you mean by "messy proxy pack".  Is this an issue after you create the skeleton from the proxy?  If so, you might want to check that your joint size (Display > Animation > Joint Size...) is set correctly.

As for the footroll, I can't get that to break either.  If you send me your file I'll take a look at it and make any fixes necessary.

May 11th, 2008 said:

OK; I tested a new proxy from shelf with a all new character using 2.1.X and it's works now...Tanks again for your time.

May 12th, 2008 said:

I''ve just uploaded a new version (2.1.1) of the script that fixes an issue with the weightSpine group that occurs when you try to rig multiple characters in the same scene.

gzavye:  The ball joints on your character were flipped 180 degrees around their object space X axis from where they should have been (Z should be aiming towards the world X+).  I sent you an email with a few lines of Mel that will flip them to where they should be.

Mr. Man
May 12th, 2008 said:

Jumping COGs Batman! I just noticed something odd. If I build your rig from scratch, (leaving everything default, including proxy placement), turn .stretchyArm to 1 (or any limb), then try to move the COG around (not on a single axis, but in-camera with MMB, or from the center of the manipulator) the COG jumps around in strange ways after it finishes calculating stretch. If no limbs are stretchy, no problem. It is pretty consistent, although some moves will not cause the problem, probably when there is no new stretch value to calculate?

May 13th, 2008 said:

Hmmm, I've tried the default rig as well as several variations (different combinations of split joints, enabling stretch on single and multiple limbs, finger IK on and off, etc) and I can't recreate the issue.  The COG is behaving fine for me.

Do you have any extra scriptJobs or expressions running?

Mr. Man
May 13th, 2008 said:

Hmm, no, no extra scriptJobs or expressions. Do you run on Maya 2008? I'm able to get it to happen most if I MMB move the COG (or any spine controllers) up and down, when I let go of the MMB I see it spin the cursor for a second while it calculates something, and then POP! it jumps the controller to a new spot. It's not a snap modifier or anything like that (which was my first thought when I saw the problem).

Mr. Man
May 13th, 2008 said:

Also, noticed that it only occurs within the stretchy range of the limb. Once the leg, say, reaches its maximum stretch length and the COG translation can pull the foot away from its controller, things behave as expected.

May 13th, 2008 said:

I tried it again and still nothing.  It's working fine for me.

I'm using 2008 on a PC.

May 15th, 2008 said:

I was wondering. If its possible to modify the script, so it can handle leg and arms that are not aligned in a straight line (eg legs along X)? On the proxy skeleton, Im trying to rotate eg. "lf_leg_grpLoc" on Z, and translating "lf_knee_loc" on X. But they are as you know locked.

May 15th, 2008 said:

Hey Tom,

If you want, you can just unlock those attributes.  You can also disable Options > Lock Proxy Control Axes in the SkeletonMaker UI before creating or recalling a proxy and it will be fully adjustable.

The problem (and the reason that I locked those atts) is that the Pole Vector constraint gets flaky when the IK joint chain is created on other than a world plane, which in turn breaks the knee/elbow snap to PV functionality.  You can still rig such a skeleton, and it should work fine except for snap to PV ("should" being the operative word).

I've tried to find several ways around this limitation; so far I've had no luck.  If anyone knows of a workaround, I'd be happy to incorporate it into the script.

May 15th, 2008 said:

Thanks for the quick reply ( and for a great script, sometimes the positive things goes without saying ;)

I have now unchecked the lock function and rotated the "lf_leg_grpLoc" 10 on Z. But to get the IK ctrls to stay level, I then need to get the heel locators to be level also. ( The process required me to adjust the "charName_lf_heel_loc_frzGrp" also?) Correct me if Im wrong. Manged it and it seems to work. But would be nice if this could be automated somehow.

May 16th, 2008 said:

I just built a skeleton with the same rotations on lf_leg_grpLoc  as yours and found that I had to adjust the ankle and ball joints before it would rig correctly.  You might want to check your joints and make sure that they're aligned correctly (attributes like footroll will break if they're not).

Right now, the best way to determine the proper joint orientations for your skeleton is to build one using the default proxy (make sure to use a name other than your current character name) and refer to it.  I'm sure that the way in which joints are oriented in the proxy to skeleton creation process can be improved.  I'll take a look at it and see what I can do.

edit: Ok, that was easier than I thought.  Version 2.2.1 should improve the default orientation on the leg, ankle and ball joints.

May 16th, 2008 said:

hey crumbly,

i thought that i had left a comment, but when i rig the face, and test the eyes, the bones deform the face.  how can i fix this?

May 19th, 2008 said:

Hey Jose,

It sounds like you need to adjust the weighting of the influences on your mesh.

Meysam Abotaleb
May 19th, 2008 said:

hi crumbly please add pivot joint for better skinning for example :          \/ | < foot ankle            \  < pivot  joint

Meysam Abotaleb
May 19th, 2008 said:

hi again please add stretch and squash body  for example put one controller to upper head for stretch and squash

Meysam Abotaleb
May 20th, 2008 said:

i forget this , please add Jaw joint

May 20th, 2008 said:

Hey Meysam,

Just to make sure that we're on the same page, the pivot joint would travel with the ankle joint but be parented to the knee, right?  I think It might be easiest to implement this as a tool that allows you to customize the placement of this joint between any two other joints.

As for squash and stretch, are you looking for me to add it to just the head?  I can do that.  For the rest of the body, S&S it can be implemented using blendshapes driven by spine and limb stretch values.  Personally I think this is a more flexible (and less complicated) solution than scaling the joints.

I'll add the option for a jaw joint in the next update.  Actually two jaw joints, a and b.

May 21st, 2008 said:

Thanks for the feet fix. I found another thing. If I move the "lf_knee_loc" on X, then the "*_lf_knee_pv_ctrl" are not created in front of the knee, but more in a 45 degree angle to the side. I can see why, but it would be nice if you had an option to get it in front.

May 21st, 2008 said:

Hey Tom,

The leg PV control lies on the same plane as the upLeg, knee and ankle joints -- it wouldn't really make sense if it didn't.   Basically you'd have the knees pointing off to the side of the PV control regardless of where you moved it.

May 30th, 2008 said:

Another thing. An easier way of selecting the skin joints. Maybe a button for selecting legs, arms, fingers, spine...or all together?

May 30th, 2008 said:

That's a good idea.  I'll put it in the next update.

Josh Yoder
May 30th, 2008 said:

Wow! I'm behind the times! Nice to see your rig has come a long way! I think I was still using 1.5 or something like that. Can't wait to load 2.2.2 and re-rig my characters! (which I've done numerous times because I found some flaw in the geometry that I wanted to fix :-D)

I see more than one person has asked if it can handle quads. Maybe you should teach someone who can rig quads how to make the script? (not me, I'm a modeler...why else would I use your script? haha)

Stupidvampire
May 31st, 2008 said:

Is there any way to get the stretchy ik setup with nodes to scale properly with the world ctrl?

Stupidvampire
May 31st, 2008 said:

Nevermind I figured it out...XD

Josh Yoder
June 4th, 2008 said:

Hmmm, made a tail for a character (using the stretchy IK from curve tool, which is awesome!) but I'm having trouble connecting it to the character. No matter where I set the parent it either causes weird transforms or won't rotate properly (particularly in the YZ axis) I did parent the curve and the script created hierarchy under the main rig node, I'll check if that was a problem.

I rerigged one character and made two more using the script. Funny thing is, the two new ones have IK flipping issues in the legs when rotated greater than 180 degrees in Y. But the rerigged character doesn't and I didn't change anything. Go figure.

June 5th, 2008 said:

Hey Josh,

Are you rotating the rootCon 180 degrees in Y to make the legs flip or are you rotating the foot IK control (or something else)?  I'll see if I can reproduce the problem.  I'll bet that it has to do with the way the leg joints are now oriented by default.  If you uncheck "Mirror Leg Behavior" in the SkeletonMaker Option menu before you create your skeleton you should end up with same orientation on your leg joints as your earlier character.

edit: I'm getting the flip on only the right leg (when the rootCon is rotated exactly 180 degrees) and the joint mirror type doesn't make a difference.  I'm not sure why it's not happening on your other character.

A simple workaround (that I just discovered) is to rotate the rootCon to something like 180.00001 and the flipping should go away.  

As for the incorporating Stretchy IK into your rig, it's something that I never (amazingly) thought about.  I created the tool for another purpose entirely and put it in because I thought it was useful.  The twist and the actual IK controls are kind of rudimentary at the moment.  When I get some time I'll take a look at what I can do to make it more useful in relation to the rig.

June 5th, 2008 said:

Maybe a big project, but could it be possible to modify the script , so you could specify the numbers of arms and legs in the rig (more than two).

dave Paul
June 5th, 2008 said:

thanx for your rig dude. it's pretty cool to animate with. just one thing I wonder : would it be hard to make a mirror pose stuff  on such a rig ? it would be very helpful. (especially for walkcycles) :D

Josh Yoder
June 5th, 2008 said:

Well, here's one for ya: went back and tested the rigs again after posting...and they didn't flip...weird random bug thingy, maybe?

Did find another interesting thing though: when the character is put in a seated or knees-to-chest position (either by translating the feet or moving the upper body controls down, happens when the knee joint gets higher than the hips) the split joints in the upper legs tend to twist, causing the geometry to collapse. It can be fixed by going into the weight control (that spineSplitRot_ctrl) and setting both leg joints to 0.

June 7th, 2008 said:

Tom:  That would be a big project -- maybe not as difficult as it seems, though.  I'll have to think about it.

dave:  A specialized mirror pose tool would probably be pretty easy to implement.  I'll put it on the list.

Josh:  I found and fixed the problem with the leg split joints in version 2.2.3.  Try it out and let me know if you're able to break it.

By the way, you want to make sure the the values for the split joint rotations on the legs and arms add up to one for each limb.  If you set them to zero they won't rotate at all.

Josh
June 11th, 2008 said:

Awesome! The split rotations work fine without any adjustments.

Marwa
June 26th, 2008 said:

hi;

can you pleas tell me how to load this script in maya for Mac........I tried many time but it doesn't wok.

Marwa
June 26th, 2008 said:

yes I forget to tell you that I used to load script from the script editor but it gave me error that file not found.

Karlen
June 27th, 2008 said:

Hi crumbly. Awesome work on this script

I have a few questions though. When we do the rig spine/rig arm/etc, it makes some control curves and some extra joints and they turn magenta but if we don't click on the control curves and click the join directly, it is green. I'm not sure how to do the bind smooth skin with what seems to be two sets of joints...I guess I don't understand maya as well as everyone else. Thanks in advance.

June 30th, 2008 said:

Sorry for the late reply; I was out of town last week.

Marwa:  It should load like any other script.  Make sure it's in your scripts directory before you start Maya (or rehash) and then enter "source abAutoRig.mel;abAutoRig;".

Karlen:  You're only seeing one set of joints.  They turn magenta when you select the control curves because they have incoming connections from those curves.  It's a Maya convention that lets you know when you're dealing with upstream/downstream nodes.

You'll find all of the joints to which you can bind your skin under the charName_Skeleton_grp transform.  The only joints in that group that you won't want to use are the spine_low, spine_mid, and spine_hi joints.  For those you'll substitute the joints under the weightSpine_grp instead (which are created the first time you rig your character's spine).

I hope that helps.

July 3rd, 2008 said:

WoaW !!!! A long time since i've been there, i've just discover this script ! Just a word : WoaW ! You are a furious guy !!!! I've try it quickly, it seems work perfectly ! I've come back if i find some problems, thanks a lot ! (Hey tell me the truth, you didn't sleep the night ? you spend your time on Maya ? :p)

August 5th, 2008 said:

crumbly, I've been trying out this amazing script, v2.2.4 on 2008 sp1, and I encountered an error, which I tracked down to a couple of the listRelatives commands missing the -fullPath flag (in abRTGroupFreeze() and abRTGroupFreezeReturnObj()). Very nice rig. Thanks for sharing.

August 5th, 2008 said:

DarkFuryo:  Thanks, man!  I'm glad you like the script.  And you're right, I've spent too many late nights with Maya.  I'm trying to do better in that regard.

BTW, sorry about the late reply, but I just saw your comment.  I think I've got some spam filters to adjust.

djx:  Thanks for troubleshooting the script and, even better, providing me with the solution!.  Could you make it any easier for me?

I'll post an updated version of the script once I run it through a couple of quick tests.

BTW, I'm curious what you did to break the script?

Thanks again.

August 5th, 2008 said:

I've updated the current version to 2.2.5.

I made djx's suggested changes and also added a check to ensure that the current character name is unique before a proxy can be skeletonized.

August 6th, 2008 said:

What did I do to break the script? Um... not really sure. Its the first time I had used it, since trying a much earlier version a while back. I wasn't doing anything fancy. Just building the default skeleton and rig. One day I hope to be able to make my own rigging scripts, so studying yours is both inspirational and educational.

August 6th, 2008 said:

Thanks djx.

bug finder
August 16th, 2008 said:

new script have bug my character separate rig my character close maya and open charachter strech and break rig

Tim
August 24th, 2008 said:

hey i was wondering is it possible to add squash to the rig? I notice how cool it is taht the character can strecth but doesnt really squash,. If you add that i will be forever greatfuL!!!

August 26th, 2008 said:

bug finder:  Sorry, but I'm not sure I completely understand you.  You created a rig, saved it, closed Maya, and when you reopened it the rig would break when stretched?  I tried and it worked fine for me.  Maybe there's something that I'm missing?

Tim:  I never thought about it but you're right, the limbs should squash as well as stretch.  Fortunately it's easy to fix.  All you have to do is remove the minimum from the armStretch and legStretch attributes (located on the hand and foot controls, respectively).

To remove the minimum you have to select the foot or hand control curve, open the "Edit Attribute" UI (Modify > Edit Attribute...), select the stretch attribute (legStretch or armStretch) in the Attributes scrollList, and uncheck "Has Minimum".  You should now be able to set the stretch to a negative value.

I'll update the script so that these stretch attributes have no minimum on new rigs.

Tim
September 5th, 2008 said:

Oh great this is cool! I suppose the only thing is when it stretches I would think it should get skinner and when it squashes it would grow bigger in the minimum amount of space its compacted to. Is that possible too?

September 11th, 2008 said:

Hey Tim,

I'd love to have the actual weight joints squash and stretch, too.  Unfortunately the only ways I can think of doing this would add another level of complexity to the rig.  

What you can do (if you want) is use the spine and limbs' stretchAmount attribute to drive squash and stretch blendshapes.  I think this method gives you a lot more flexibility in determining the way the mesh deforms, and (as long as your mesh isn't super complex) I doubt you'll notice any slowdown at all.

Josh Yoder
October 1st, 2008 said:

Ahhh! Quit updating it!

Only kidding of course, but each time you add some cool new feature I feel the need to re-rig some of my characters (since I'm trying to keep them uniform for later use in some major-production-that-is-still-only-on-paper), hehe.

Fortunately this is a great opportunity to try out that rig-remover feature. But I'm guessing it won't save skin weights as well as curves. any tips in that department?

October 7th, 2008 said:

Hey Josh,

Sorry for the late reply.  The script includes a feature that will save all of your (script created) curves to a shelf button for later restoration.  

As for the skin weights, you might not even need to detach your skin from the skeleton, depending on which version of the script you're coming from.  If the version that you're using right now has the weight spine joints in the rig hierarchy then you shouldn't have a problem.  

If you want to start with a new skeleton (or you want to detach your mesh before rigging) there are a bunch of scripts on Highend that will export your weights to a file. You can then import them once you've created the new rig.  (Maya 2008 might have this functionality built in, I'm not sure.)

October 14th, 2008 said:

Hi again.

Have stumbled upon a few things. If you make a spine like a "hunchback" (not straight) then I can't get the spine controlers to aim other than at worldspace (both the axis, but also the controler curve itself). They should aim along the spine joints.

Regarding the finger control. It seems that the eg. index finger joints doesnt curl in a straight line if you do the following. Rotate the "lf_index_grpLoc" on Y and translate the "lf_index_b_loc" and "lf_index_c_loc" up on Y. Then the curl attribute rotates them weird.

Hope the explanation makes sense.

Regards Tom

October 14th, 2008 said:

Hey Tom,

Yeah, the spine curves stay in the XZ plane.  If you want to adjust one all you have to do is select all the vertices of a given curve and then move, rotate and scale it into the position you want.

I've uploaded a new version of the script that should take care of the finger issue you describe (I changed the default orientation for the finger joints).

October 15th, 2008 said:

Thanks for the quick reply. Regarding the spine, it seems that the axes orientation of the controllers, are in world XZ also (besides the curves) . It would be really nice, if the axes themself, could orient after the spine/body.

October 16th, 2008 said:

Hey Tom,

Ok, now I get it.

I've just updated the script (again) with a  new version (2.4) that has a checkbox on the Spine tab labeled "Align Control Curves to Spine".  Enable it to create the mid and high spine controls the way you describe them.

stezza
November 4th, 2008 said:

I cant go to bind pose!!! I select a control but error... select -r FKCurveBackA_M ; // Warning: Unable to determine character rigGrp. //

Now what do I do?

November 4th, 2008 said:

Try running the following bit of mel from your command line:

abRTQuickCharDefaultPose("charRig_grp", true);

Where charRig_grp is the name of your character rig folder (keep the quotes).

hohepa
November 6th, 2008 said:

Crumbly you must be a saint. I've just read all the replies and most of them say Wow, but...Anyway, I can't wait to try it. Later.

stezza
November 12th, 2008 said:

I ran version 2.4 in Maya but the Create Skeleton Box box at the top says abAutoRig 2.11 and not 2.4.! The script editor says... abAutoRig.mel 2.4 brendan ross 04.14.2007

So why show version 2.11?

Thanks

hohepa
November 13th, 2008 said:

I'm having trouble trying to animate my model. Everything works the way it should. But when I set keys no animation happens. Any good suggestions?

November 16th, 2008 said:

Hello Crumbly Congratulation amazing script im currentli using for first time and get great results

But i have a problem with the hands, I get a wrong axis i tried remove the hand rig reoriented joints and little fix also with the option/hand options in every option of curl and spread but none of then get the right results and i check every finger key in the attr in channel box and when i do the rig the middle_ doesnt work or its not connected and the index_ takes the attributes of the thumb also thumb doesnt work

at the begining in the proxy skeleton a turned almost 270 degrees the thumb to match my model it was ok? or its the main reason of misfunction

Thank you and keep on excelent

November 17th, 2008 said:

stezza:  You've got the 2.4 version.  It just sounds like you copied the new version of the script over the old while Maya was running.  The next time you start up Maya the menu bar title should read correctly.

hohepa:  I don't know why that would be happening.  Selecting control curves and shift+W and shift+E isn't setting keys either?

Antonio:  I think I have to see it to know what's going on.  Did you happen to save your skeleton to a button?  If so, you can send me the contents of that shelf button and I'll take a look at it.

jackson
November 30th, 2008 said:

GREAT script crumbly. I've just downloaded your script and tried to run it. everything goes good until i get to the leg and arm controls. for some reason it ONLY makes the controls for the left side and it gives me this error:

// Error: Object not found: toolButton1.

I have tried many times but it won't mirror the controls. am i doing something wrong?

thanks

November 30th, 2008 said:

Hey jackson,

I don't know why that would be happening.  Does it fail when you create and use the script's default skeleton without changing anything?  And you're using a recent version of Maya?

If it still fails, feel free to send me the .ma of your skeleton and I'll be happy to take a look at it.

rain
December 2nd, 2008 said:

Hello!   Why the lefthand is different from the righthand " rt_thumb_grpLoc" control three locator, but "lf_thumb_grpLoc" control four locator .When you move the "lf_thumb_grpLoc" it will be some problem. I don't know how why. Can you help me? this problem is appered in all version!   Thanks a lot!

rain
December 2nd, 2008 said:

sorry! i forget this problem is appered in the proxy skeleton....

December 2nd, 2008 said:

Hey rain,

Thanks for pointing that out.  It shouldn't affect the finished skeleton (because the left side is mirrored to the right), but even so, I fixed it in the latest version (2.5).

rain
December 2nd, 2008 said:

thinks for your reply ! You can get into the outliner and check the "rt_thumb_a_loc"! Waitting for your reply!   :)

rain
December 3rd, 2008 said:

Perfect£¡ Think you  crumbly.

apf
December 3rd, 2008 said:

Hello crumbly, first off GREAT RIG!!!, on the other hand, I have just downloaded version 2.5 and there seems to be a problem when setting up the arms, it states the following whenever I try to rig the ARM (everything else works fine although I haven´t got to the fingers yet) ......// Error: Number of direction flags do not match number of selected vertices. ... obviously, because of this error, the controls do not function properly...needless to say, the proper upArm joint is being selected before creating the rig ... Thanks in advance!!!

December 3rd, 2008 said:

Hey apf,

The script should have made a button on your current shelf called "Skel" when you created the skeleton.  If you send the contents of that button to me (you can middle mouse drag it into your script window) I'll take a look at it and see if I can't recreate it on this machine.

December 4th, 2008 said:

apf,

I checked your skeleton and I had no problem rigging the arms, or any other part of the rig, on this machine.  Which OS and version of Maya are you using?  That might have something to do with the issues that you're running into.

I'm still completely confounded by the error message that you describe.

apf
December 5th, 2008 said:

Heyas crumbly, I am using VISTA 32BIT, Maya 2009.  And I just can´t really get past that error message :(

Kind Regards, APF

apf
December 5th, 2008 said:

hey crumbly, don't know what the hell happened, but I reinstalled the script, re-downloaded it, and voila!  Maaaan, your script is @$%@ awesome!!!, thanks for your kind help!!!! Kind Regards, AP! : )

December 6th, 2008 said:

Cool!  I'm glad it works.

January 1st, 2009 said:

Hey man awesome stuff. I ran into a small problem. I'm running the MAC version of Maya 2008. when I run the scrpt I instantly get this error message:

// Error: The attribute 'skeleton_proxy_grpLocShape.overrideEnabled' is locked or connected and cannot be modified. //

any idea what that is?

January 2nd, 2009 said:

Hey jboogie,

I don't know why that would be happening when you run the script ("source abAutoRig.mel;abAutoRig;").  The skeleton proxy and overrides aren't dealt with at all in that path of execution.  If you have a node in the scene named "skeleton_proxy_grpLoc" try deleting it (and all of its children) and then run the script again.

Aziz
January 8th, 2009 said:

Hey crumbly!  First of all, thanks for a great script!

I'm facing a problem on the arms.  When I switch from IK to FK, the arm rotates 360 and the binded skin obviously looks horrible.  In IK mode, the arm looks good, as it should be but in FK, rotate X goes bezerk.  Actually, the values don't change, the way it looks does.  Any idea why this would happen?  Thanks in advance

David Parle
January 11th, 2009 said:

Im a total novice to MAYA and i just want to play with a skeleton as in animate one, try some jumps and walks, as im considering doing a course in CGI. I have a 2D animation background. Im trying to build skeletons and its taking many attempts and ive been through a few tutorials already. Part of the process many will say but i dont think i want to be a rigger. id love to be able to just have a go playing with the different controls so i can see whats possible so imnot driving blind. Ive searched a lot online for a skeleton to work with with no success. Can anyone donate a file or point me in the direction of some resources.

January 13th, 2009 said:

Hey Aziz,

I've seen this happen when the IKFK blend is between 0 and 1 and the arms are in their default position.  But if it's happening when the arm is in full FK, that's something different.  If you want to send me your rig I can take a look at it (I won't share it).

January 13th, 2009 said:

Hey David,

Here are a couple of compilations of free rigs for Maya:

Highend

Cgtalk

I haven't really used any of them, but I think a lot of people like Moom.

RAIN
January 23rd, 2009 said:

Hey crumbly. I lost the file named "abrtikfksnapshelfbn" for .Can i get it back?

January 23rd, 2009 said:

Hey Rain,

Try this:

Download this file and open it in your text editor.  Replace all the occurrences of "charName" with your character's name.  Copy the modified text and paste it into the Maya script editor.  Make a button by selecting the text in the script editor and dragging it to your shelf.

Let me know if that doesn't work.

Also, I updated the script to 2.71 to fix a few issues with IK/FK arm snapping.  If you're having errors when trying to snap the arms with the UI try downloading this new version and see if it helps.

Dawid L.
February 3rd, 2009 said:

Hello Crumbly. I have read through but I haven't seen any answer for that. First - the rig is great and saved me a lot of time with my animation but... I have a problem with it now: When I use cog control to rotate the character in X rotation (to have him lean for example) the weightSpine Joints after certain point (about 80 percent of cog X rotation) joints are getting weird rotations resulting in the character's spinal part getting twisted....if it makes any sense. I can't get it to work ...help please

February 3rd, 2009 said:

Hey Dawid,

The latest version of the script (v. 2.71) has a new spine that addresses exactly that issue.  You'll have to rerig your skeleton, though.  If that's a problem let me know and I'll see if I can come up with some instructions to help you convert your existing spine to the new version.

Dawid L.
February 4th, 2009 said:

Thanks Crumbly for very quick reply :).  I don't fancy reriging because I have done some animation already. Nevertheless I came up with solution that doesn't require reriging. I have removed parenting (i think it was parented to the root) for the weightSpinejoints group and the weightSpineTargets GRP  and parented them to the cog. Seems to work well. Again thanks for the support!

February 5th, 2009 said:

Thanks Dawid!  I'll try your solution on a 2.7 rig and if it doesn't break anything I'll incorporate it into the script.

By the way, for others reading this, the 2.71 rig will create all the same controllers in the same positions with the same attributes (except for the spineSplitRot_ctrl which will have all the same atts except for the spine related stuff).  It should animate exactly the same as an earlier version of the rig would.

Josh
February 12th, 2009 said:

Wow, 2.8! Last one I uploaded was 2.2.5

Can't wait to see what new magic has been added.

Did I mention that I have trouble parenting the stretchy IKs created by the "stretchy IK from curve" script? The issue was that once parented they twist when the rig is rotated in any axis. It isn't really noticeable until you hit 90 degrees. I tried several parent options but none fixed the twist, although the skeleton and curves translated just fine.

When working it provides great tails, capes, or hair modifiers. I also put a long Santa cap on one of my characters over Christmas. Lots of fun.

February 13th, 2009 said:

Hey Josh,

Yeah, you did mention the stretchy IK issue.  You mentioned it and I forgot it.  Sorry about that.

When I put the feature in I never considered that people would want to attach it to their character rigs.   Not sure why it never crossed my mind, considering this is a rigging tool.  Oh well.  It's now next on my to do list, barring any unforeseen bugs.  I'll improve the twist and add the ability to switch between IK and FK on the controls.

Josh
February 14th, 2009 said:

Yeah, I think you mention that before. Out of curiosity why did you creat it? I can't really think of anything besides character extras except for wires or maybe a snake.

Speaking of character extras, it might be a great way to add an extra arm or two. Then again I could just build another rigged pair and attach it to the original rig. I'll have to try it!

February 16th, 2009 said:

Hi. Regarding the IK Ctrls on the feet. What determines the axes orientation? I have a very bow-legged character, (Unlocked the proxy control axes) but the left ik leg controller seems to be orientated in the same direction as the right. Should be mirrored? Dont know if Im doing something wrong? Maybe a new function, to get the IK Leg controllers axes, orientated in world space. (The same function as the arms)?

February 16th, 2009 said:

Josh:  I've got a bunch of ideas on how to improve and better implement the stretchy IK into the rig.  Hopefully I'll get some time soon to work it into the script.

And as for why I built it, it was to rig a bunch of non animated cartoony trees (of all things).

Tom:  The leg rig setup reads an offset value that's tucked into the skeleton's ankle joint on creation.  If you send me your skeleton (as an .ma if you're on 2009) or the contents of your skeleton shelf button I'll take a look at it and see if I can figure out what's going on.

February 18th, 2009 said:

Thanks for the reply. But I think I found a way. It all started when I noticed that the axes on the fk leg crls, not where aligned correctly (probably because of the unlocked proxy control axes?), so I manually rotated them on one leg. Then mirrored the legs joints (with behavior, and remembered the naming convention off course). Then the fk controls were fine, but the heel ik ctrls axes were weird. Then at a point, I found out to use the old heel_locators ("abRTDeleteMeWhenDone") with the new joints. And so far it works. Correct me if I'm wrong, the heel locators determines the axes orientation on the ik heel ctrls ? Don't know if I missed some things, because I did a lot of things. But bottom line, it works for now (hope it continues ;). Thanks again for the reply

February 18th, 2009 said:

Yeah, the heel locs in concert with the hidden createRot attribute on the upLeg and ankle joints determine the orientation of the IK controls.  I guess I hadn't thought about it, but you do need to make sure that heel locs are aligned with the ankle joint.

I'll lock off the rotation on the locs just to make that more obvious.

HumaN
February 24th, 2009 said:

Dumb question, but how do you install it? I'm using it for an animation class that requires us to rig our models in any method we want, including auto riggers to save time. Sorry for the remedial question, I couldn't seem to get it working.  Kept getting #Error [invalid syntax. [ 2, 16, source abAutoRig.mel;abAutoRig;\n]

I'd really love to try it since I've heard great things and been compared to Setup Machine. Thanks.

February 24th, 2009 said:

HumaN,

Sounds like you're trying to enter the command into a python script tab or command line.  Make sure you're entering it into the mel tab of the Script Editor or a mel command line.

Josh
March 2nd, 2009 said:

Ooo, new version! Good thing I checked before rigging the character I just made. ;-)

Actually I stopped by to let you know that as of version 2.8 the UI window still says it is version 2.25. I'm pretty sure I installed in correctly (even deleted the old one to be sure). You probably just forgot to change the title line in the window creation script.

March 3rd, 2009 said:

It's working in 2.9 for me.. Let me know if it's still showing 2.25 in the latest version.

I haven't updated the instructions on this page for 2.9, yet (just the changelog), but make sure that with the new version of the rig you don't weight your mesh to the wrist joint.  It won't break anything if you do, but the wrist doesn't twist at all -- the hand does the twisting.

Alfo_O
March 9th, 2009 said:

Hi, i think this autorig is quite nice, the only thing i would say , need some tweaks here and there, and need a small fix for the spine... I really like the fact that i could hold the ctrl in place like a "real IK ", the problem is that on top of it, you still need a Master Spine ctrl that moves all the spine ctrls around, because , now you dont have a control to move the character forward. im rigging a quadruped with your autorig, but i have to modify it by hand to fit my requests, (ehh im struggling a little with all those constraint!!), but still, i defenetly prefear it to TSM ,you did a really nice job. If you accept critiques about it, or comments on what i would like to add/modify, it, please contact me, i would love to help on improveing it .

nice work again.

Bye

ps. When did u do AM ?I kind remember your spider animation..m...mm..

March 16th, 2009 said:

Hey Alfo_O,

Sorry for the late reply, but I've been away from my computer for a bit.

I see what you're saying about having a Master Spine control, and it would be easy enough to add.  What if the IK spine controls were parented to the COG instead of the masterCtrl?  Would that work?

As for critiques and comments, yeah, I'm always happy to hear them.  At this point, that's where most of the additions to the rig are coming from.  As long as the suggestions keep with the ethos of the rig (streamlined, animator oriented, easily removable, customizable, etc) and I have the time to add them, I'll consider it.

I finished AM about a year and a half ago.  Did you attend?

Alfo_O
March 18th, 2009 said:

Hi Crumbly :), i sent you an email.

I was in AM nearly the same time you where there :).ehh

Alfo_O
March 22nd, 2009 said:

Hi, i just have discovered another issue . when the legs have some kind of orientation that is not a standard almost parallel position, i find out that the Foot IK ctrl , is oriented wrong,most of the time has rotation issue, and even the translation axis are going crazy, the same is for the FKHandCtrl curve, is rotated in a random axis, there is any way to fix this? any chance to have the aling ik foot to the world axis ,as for the arms ik? For now im fixing this by creating a new ctrl oriented where i need it to be, and transfer the attributes from the old one to the new one.. Any ideas?

thanks

ps:i just noticed that i the LT reverse foot isnot rotating properly, append with just one the other works fine..thats a mistery..:S

draw
March 31st, 2009 said:

Hi I really like your rig and i am just testing out for a personal project.. However, i still dont get why there is a "weightSpine jnts" and what they are for? Also what does spineSplitRot_ctrl do?  i ve read all threads here but still dont get it.

March 31st, 2009 said:

Alfo_O:  I got your email and I apologize for not getting back to you until now.  I plan to implement the master control for the IK spine (which can be parented as you like) -- I just haven't had any time to work on it in a while.

As for the leg position when rigging, that's a limitation of the script.  The feet and legs can be rotated in Y, but the legs do have to remain parallel (the upLeg joints can't be rotated in world Z).  Still, I'd appreciate it if you could send me a copy of the problem skeleton so I can make sure that it's not breaking in new and exciting ways ;).

draw:  The weightSpine_jnts are the spine joints to which you bind your mesh.  They're created as part of the rig and not the skeleton; in older versions of the script they would be deleted when the rig was removed.  It added an extra layer of complexity to have to rebind and weight those joints every time you removed the spine rig.  So now, the first time you create a spine rig for your character, the weight spine joints are created in your skeleton group.  As long as you specify the same number of spine joints the next time you remove and rerig the spine, those joints will be reused by the script.  It avoids you having to rebind new spine joints to your mesh.

The spineSplitRot_ctrl holds a bunch of (sort of meta) attributes for various parts of the rig.  It used to hold rotation scalars for weight spine X rotations, but the new spine no longer requires that, so it now holds various limb and hand attributes.  Stuff like rotation scalars for split joints, various hand related values like finger spread direction, and some others that I can't remember at the moment.

draw
March 31st, 2009 said:

Hi again, just another question.. my character is not in full T-pose.. which means the character's arm joint needs to rotate down.  I get this confirm message saying "The arm joints must like on thesame YZ plane for the elbow snap to PV function to work properly." Is this because i just rotated shoulder down to match  my character?   Is there a way to work around without fixing my character pose?

thanks

March 31st, 2009 said:

Hey draw,

Yeah, the elbow snap function doesn't work when the arm joints (upArm, elbow, wrist) don't lie on the same XZ plane.  The same goes for the legs in the YZ plane.

There's no way to get around it that I know of.  Keep in mind that it's only the elbow snap function that breaks (the elbow joint snaps to and can be controlled by the PV control).  The rest of the arm rig should work fine.

draw
April 1st, 2009 said:

ah..icic.. I guess i just have to test it out..But still i think this is the most amazing autoRig i ve ever used.. especially with all the control sets.

THanks

James
April 2nd, 2009 said:

hey crumbly,

i just want to thank you for writing this script; im in the position where i pretty much need an emergency rig (i was using a rig i found online that i modified and found a huge problem i couldnt fix) and so far its helping me a lot.  i'm not very experienced when it comes to rigging (bear with me haha), and i did encounter one problem: when i create the controls for the legs, the knees bend in the opposite direction.  i've heard of this happening before but dont know how to fix or prevent it.  i moved the knee pv's to the front of the model and they bent the right way, but i dont know if that'll come back to haunt me later, so i figured id ask before i really get far into the process.  thanks for your time.

james

April 2nd, 2009 said:

Hey James,

If you send me the contents of your character's skeleton button (added to your shelf when you created the skeleton from the proxy) that would be a huge help in understanding what's going on with your rig.  It could be a couple different things, and it's probably OK to do what you've done, but I need to see it to be sure..

BTW, you can get at the contents of a shelf button by dragging it with the middle mouse button into the script editor.

rick
April 6th, 2009 said:

hey crumbly, your rig works fine since i am not trying to use the pv snap on any of my work.   I still dont get what the spineSplitRot_ctrl does.  I just rigged a new character using autorig and i see some attributes of fingers on that control?   For the spineShaper, it seems it working but why GEO doesnt move with it. Where do i turn on this attribute so my geo follows the weightspine? and what is "Root ctrl" and Cog Ctrl attribute for in each ctrl? i dont really see difference when i turn on and off.. last, in order to bind my geo to your rig, i just have to select the hip joint with my geo and bind, right? i just got confused on some of the instructions...

man i feel bad about asking many question...but i just want to use this rig for my personal project really bad..

thanks

rick
April 6th, 2009 said:

maybe i am missing something here...but how can i make a character spine to rotate in X after bind it with only high, mid, and low spines?  I just selected all the joints including weight spines except for the high, mid, low spine joints, and bind to the mesh.  when i rotate spineLow_ctrl in X the weight spine does not follow up.(which make sense cuz i didnt bind skin to the low spine joint.)

Is there a attribute or an option that i missed??

p.s i went to AM too..about 2 years ago. when did you finish?

April 6th, 2009 said:

Hey rick,

The spineSplitRot_ctrl currently holds attributes for split joints and hands.  The split attributes determine how much a given split joint rotates in relation to it's target joint's rotation.  So, for example, if you set the value for a forearm split joint to .75, its rotation will be 75% of the wrist joint's (the target joint) rotation.  There are also attributes for hand spread which determine the amount (and direction) each finger will spread based on the hand spread attribute on the hand control.

The spine shaper's only function is to allow you to tweak the curve of the spine between the mid and high spine controls.  You can turn it off on the COG.

The "Root_ctrl" and "Cog_ctrl" (and others) allow you to switch the parent space of a given control.  If you take the arm IK control and set all of the attributes under "____SPACES____" to 0, then set the "Cog_ctrl" to 1, the arm IK control will move with the COG.

I've been meaning to clarify the way to bind the geometry to the rig in the instructions;  I just haven't gotten to it yet.  You don't want to bind to all the joints in the hierarchy.  What I would do is make sure that in the smooth skin options "Bind to:" is set to "Selected Joints".  Then select all but the lo, mid, and hi joints (like you've done) and also the wrist joints (to clarify: you don't want to bind to the wrist joints).  Then you can bind your geo to the selected joints.

Something's not right if the spine isn't rotating in X.  If you want to send me a copy of the file I'll take a look at it (don't worry, I won't share it).

I finished AM about a year and a half ago.

rick
April 7th, 2009 said:

hey crumbly, thanks for the tip.  what i meant was the spines rotates fine in X (spineLow_ctrl,spineMid_ctrl, spineHigh_ctrl).  One thing that i dont really get is, since i am binding my character to the weight spine, and not the low, mid, high joints which i can rotate by just grabbing the controls, i would not be able to paint skin on those three joints.(i have to paint weight on the weight spines obviously)  In my scene, if i just rotate the spine controls, the weight spines does not follow with the spine rotation. so the weight spine does not move at all.   Is there a attribute that i have to turn on so the weight spines get constrain to the low mid high joints? i am sending you the rig by email. thanks for the great support

sean
April 13th, 2009 said:

hey i just tested out your file. thanks for fixing the rig. I have a one suggestion tho. it will be great if you can add a button for binding the geo to theskeleton.  Its kind of tidious to go to outliner and then grab all the joints except for the hi, mid, low spine andthe wrist, every time i want to re-bind or rereig the skeleton with different number of spine joints.

thanks again

April 15th, 2009 said:

That's a good idea, sean.  I'll add it one of these days.

April 19th, 2009 said:

Amazing script! Question,.. I have 2.6 running with Maya 8.5 and I scale the rig up as needed and its fine, but at work, I'm using version 2.9 I believe in Maya 8.5, and I scale up the rig, make joints, create rig for the arms and it only rigs the left side.   Happens every time.   (I'll try 2.6 at work obviously, but I was wondering if there was some problem or if I need a later version of Maya.

thanks

ketchupbeast
April 22nd, 2009 said:

Hey there.  Your script is awsome.  No problems except when trying to get the IK/FK snap UI to work with a referenced file.  When I choose the namespace, the FK->IK snap works but the IK->FK snap comes up with an error: "// Error: No object matches name: namespace:".  Am I doing something wrong?  Thanks for your help.

crumbly
April 23rd, 2009 said:

Hey John,

So, the legs get rigged correctly; it's just the arms that are rigged on only the left side?  Hmmm, that's weird.  I don't have a copy below 2008 on my system, so I can't really test it that way, but if you send me the file with the skeleton rigged as far as you can get it (including the left arm), I'll take a look.

You could also try to disable "Auto Mirror" under the "Options" menu and rig the arms individually.  That might work if the issue is with the procedure that determines mirror joints.

crumbly
April 23rd, 2009 said:

ketchupbeast,

I just uploaded version 2.9.2, which should fix the issue.

ketchupbeast
April 23rd, 2009 said:

Thank you so much crumbly!  The FK/IK snapping on reference files works fine now.  Keep up the great work.

April 24th, 2009 said:

Awesome autorig, I've had success in using previous versions before.  Now however, I have an issue, and it is with one of the first steps.  After I create a proxy skeleton I try to build a skeleton, but I keep getting an "object not found" error and nothing happens.  I am using Maya 2009 64bit and I've tried versions 2.9.2, 2.9, and 2.8 with no success.  Any ideas?

April 27th, 2009 said:

Nevermind, I got it to work somehow.  Maybe I wasn't saving the proxy to the shelf before?  Does that make a difference?

crumbly
April 28th, 2009 said:

Hey John,

It sounds like you might have using the soft mod tool.  Could that be it?  The script fails hard when soft mod is active.

I'll make sure that the next version switches to the move tool before rigging to minimize this issue.

May 5th, 2009 said:

Hi Crumbly, this autoRig is very good, I like it! I've just started to test your tools and the rig, so I don't have many questions at the moment. But I got a very simple suggestion, about the "root control", it's useful in production to have this main control: twice or triple to get the chance to constraint it to something and in the same time to move and/or animate the char in the best position... I guess it's very easy for you to put in, just create two or three curve controls in different sizes one inside each other and it will be done! Thanks for your work!

May 6th, 2009 said:

Crumbly,

Yes, I most likely had the soft mod tool on since I was working on blendshapes right before I started rigging.  Thanks for the reply!

May 14th, 2009 said:

its good

May 21st, 2009 said:

I know this will sound like and odd request, but if you decide to work on this script agian could you consider adding the ability to generate a basic skeleton, with no constraints with the MotionBuilder joint naming conventions?

Josh Y
May 25th, 2009 said:

Found a leg IK problem in 2.9.3. I noticed it in 2.9.0 as well, but I have a character rigged with 2.8 that is fine.

Anyway, the problem is when the foot control translates in Y above the knee (about mid thigh) the leg joints flip. The pv control is weighted to the leg IK, so that is not the issue.

rotation values at translation of 20 units Y (leg deforms fine) X -3.54, Y 0.172, Z -87.18 rotation values at translation of 21 units Y (flipped IK) X -86, Y 0.153, Z -92.921

I think you ran into this problem before with a much older version so it should be an easy fix. It makes it kind of hard to roll the character into a ball when his thighs invert on him (ouch?)

Any any progress on how to parent the stretchy IK to the rig anywhere? Its weird, I can attach a regular IK or spline IK to the rig no problem but I can't attach the stretchy one made with your script (which has a lot more flexibility).

crumbly
May 25th, 2009 said:

Butch:  I'll take a look at the MB skeleton and naming conventions.  If they're close enough it wouldn't be a problem to implement.

Josh:  I think the previous fixes were undone when I adjusted the upLeg rotation order to get rid of the leg flipping when IkFkBlend between zero and one.  It shouldn't be too difficult to fix (hopefully).

I'll get on that stretchy IK thing, too.  I've been meaning to do that for a while...

Alfo_O
May 26th, 2009 said:

Hi ,  i tried to replicate the pole vector problem and i noticed that it may occur only if you create the joints of the legs in a Not planar way, for example if you rotate the leg guide in Z, that is locked. Josh did you checked that your character guides are correct?

Josh Y
May 26th, 2009 said:

Alfo_O

That's a a good suggestion, but no, that is not the issue. When I make the legs I only translate the locators on the proxy skeleton and once the joints are in place I don't touch them. I've also been modeling my characters to fit the general orientation of the rig so I don't have to rotate any of the guide controls in a locked direction.

crumbly
May 26th, 2009 said:

Hey Josh,

I just fixed the leg issue, and I'm uploading the new version now.  I've made a lot of fixes to stretchy splines too.  They're actually usable with the rig now.

crumbly
May 26th, 2009 said:

Just thought I'd mention to everyone commenting here (btw, thanks!), if you've ever posted with your email before, note that you can enter just it when you post again and your other info will be recalled.  I guess I never made that clear.

Oh, and comments also support markDown (links are still disabled, unfortunately).

Josh Y
May 30th, 2009 said:

You, sir, are awesome!

I did a quick test bind and everything works beautifully! No twisting and the stretchy splines parent perfectly! Thanks a bunch!

crumbly
June 4th, 2009 said:

Right on!

July 14th, 2009 said:

Maybe I'm just dumb or didn't fully read the instructions, but I can't seem to figure out the spine. For some reason, I can't find a local master control like the hips that moves everything but the legs. I'm trying to find a good solution for an auto rigger to use on a student film that is better than The Setup Machine which I've used before but wasn't entirely happy with.

crumbly
July 16th, 2009 said:

Hey John,

The COG (charName_cog_ctrl) should do what you want.  It's the round white curve that sits outside of the hip control curve.  Does that do what you're looking for?

Also, make sure that when you set up a character, you go through the tabs (spine, head, etc) in order from left to right.  It will still work if you don't, but you'll have some  controls that won't be properly parented to the rest of the rig (if those parts of the rig don't exist yet).  You'll also lose space switching and some advanced control attributes.

July 20th, 2009 said:

Thanks for the pointer. The problem with the COG is that for some reason it starts off locked, so I unlock the attributes, but when I move it it is getting double interpolation somehow.

crumbly
July 27th, 2009 said:

Hey John,

First of all, sorry for the super late reply.

As for the rig, I think we might be looking at different things.  Try creating a default skeleton (click "Make Proxy Skeleton" then "Build Skeleton" in the skeleton maker), and then apply a default rig (don't change any of the default values in the UI).  The COG will be named "charName_cog_ctrl".  When you select it, you should find that the translate and rotation attributes are unlocked.  If they're not, something weird is afoot -- send me your file and I'll take a look at it.

August 4th, 2009 said:

its nise but some bots in the rig can i scale @ move the rigging or controls. according to the charter position

August 7th, 2009 said:

Hi Crumbly, Love the autorig. I wonder about the 'align' opiton on the FK shoulder. If I animate the shoulder and clavicle with align set to off, then key align to on I get a pop in the shoulder. I could be doing something wrong, if so, Im sorry to bother you.

crumbly
August 11th, 2009 said:

Hey Joel,

Not a bother at all.  Toggling the align attribute will generally rotate the specified joint unless the rig is at its initial position.  Personally, I like it (and always enable it) because it means that I don't have to deal with as much counter animation (especially when animating the head).  I think it's one of those things that you either like or don't, so I'd recommend you leave it on or off and avoid the mess of switching back and forth.

August 21st, 2009 said:

Hi Crumbly!

Amazing rig Setup, what would take me 5 days to rig now turns into a couple hours of tweaking. I'm currently doing a History Channel Competition, so I made a biped. Now I adjusted all the proxies to the human hands, when I rig with IK fingers and all that, the right side works, but the left side when I create the hand rig says:

// Error: 'SoldierRig_lf_pinkyCup_jnt.rotateY' already has an incoming connection from 'SoldierRig_lf_hand_ctrl.masterCup'. //

I'm a noob at Rigging, and have no clue how to fix this problem. Any help and I'll bring you to a future film festival!

August 23rd, 2009 said:

ohhh got it to work! No further questions!

Thanks alot!

crumbly
August 24th, 2009 said:

Hey Ben,

Sorry I wasn't able to get back to you sooner -- glad you were able to get it to work, though.

Josh Y
September 12th, 2009 said:

Wow, 3.0.2! Moving up in the world. Fortunately I won't have to change any old rigs this time around, so every new model from here on gets 3.0, hehe.

Still love it! And I keep finding more and more cool thing to do with the stretchy splines! Try experimenting with Paolo Dominici's ZV Dynamics and ZV Parent Master, lots of fun!

lunacocoa
September 28th, 2009 said:

Hey Crumbly,

So I just tried using the AutoRig and I am running into a problem when Rigging the Spine. These are my steps:

Created a Name

Pressed Create a Skeleton

Pressed Make Proxy Skeleton

Pressed Build Skeleton

When I press Build Skeleton I recieve an error:

Error: No object matches name: |skaterboy_Skeleton_grp|skaterboy_hip_jnt|skaterboy_spine_low_jnt |skaterboy_spine_mid_jnt|skaterboy_spine_hi_jnt|skaterboy_spine_end_jnt |skaterboy_lf_clavicle_jnt|skaterboy_lf_upArm_jnt|skaterboy_lf_elbow_jnt |skaterboy_lf_wrist_jnt|skaterboy_lf_hand_jnt |skaterboy_lf_ringCup_jnt|skaterboy_lf_ring_a_jnt //

When I press Build Skeleton the Rig creates joints from the root to the top of the head along with the left arm and 4 fingers even though 5 fingers was set in Funger Num.

Then I select the Spine tab Spine Root: |skaterboy_Skeleton_grp|skaterboy_hip_jnt|skaterboy_spine_low_jnt Hip: |skaterboy_Skeleton_grp|skaterboy_hip_jnt|skaterboy_spine_low_jnt

Then I press Create Spine Rig and I receive the following error: // Warning: Root joint needs to be parent to both the hip joint and the mid spine joint

Also, when I try to manually select the Spine Root in the Spine section I receive this error: // Warning: Root joint must have a x translate of 0 I got around it by selecting Refresh UI in the Options menu.

Any ideas? Thanks

lunacocoa
September 28th, 2009 said:

sorry it looks all crazy, I didnt know the text would continue in a line. I originally wrote it all on separate lines.

crumbly
September 28th, 2009 said:

Hey lunacocoa,

The "Finger Num:" intField specifies the number of fingers that will be built on the proxy skeleton.  Once the proxy has been built, you're done with that field; it will have no effect on the conversion from proxy to skeleton.  

Otherwise, it sounds like you're doing everything correctly.  What's strange is that the script is choking as it looks for the first ring finger joint.  When a proxy has only four fingers the ring finger is omitted.  The proxy version of that joint shouldn't even exist, so I don't know why it would be trying to build it.

I've tried and can't recreate the error.  My only suggestion is to make sure that you're building the skeleton in an empty scene.

What version of Maya (and what platform) are you using?

lunacocoa
September 28th, 2009 said:

Thanks Crumbly, I am currently running Maya 2010 32-bit on a 64-bit system. I actually was trying the Rig with a character in the scene. I tried it in an empty scene, but then I was getting an error when just trying to create the skeleton. I'm going to mess with it and see if I can figure it out. Ill get back to you.

Jess Herman
October 6th, 2009 said:

Hi there!

Great tool! I love it!

My only trouble is with scaling the rigs after I've skinned the characters. The IK hand controls and knee and elbow up vectors seem to stay in the same place when I use the master scale on the root control.  The eye controller also stays in the same place and the feet lift off the ground.  What am I doing wrong?  Also, as I scale down some of the control curves scale up and vice versa... specifically the neck, head and wrists. Is there any way I can fix this?

November 4th, 2009 said:

you saved my life today with this script, big thanks!!!

November 6th, 2009 said:

Hi! I'm having a problem. After the skin, if I close and open the file again, the mesh disappears, and only the skeleton stay in the viewport. Whats happening()

crumbly
November 6th, 2009 said:

Hey Iuri,

Does the mesh that you've skinned to the skeleton still exist in the scene?  If so, make sure that "Polygons" is checked in your viewport "Show" menu (not the main menu, but the one at the top of every viewport).

sadpanda
November 9th, 2009 said:

i put the script in my :Documents and Settings/Dany/My Documents/Maya/2009-x64/scripts the rest into the icons folder. whenever i click  make proxy skeleton and then build skeleton maya always respons with" // Error: Object not found: ." what am i doing wrong?

crumbly
November 10th, 2009 said:

Hey sadpanda,

That issue has come up before and I think it has to do with the Snap IK/FK shelf button creation.  Try unchecking the Options > Auto Build IK/FK Snap UI Button menu item in the main script UI.  If there's an existing Snap IK/FK shelf button (blue icon with the skull) you can delete that too.  (It can be rebuilt using the Make IK/FK Snap UI Shelf Button in the Tools menu.)

If none of that works, create a new shelf and try running the script again.

Let me know which of that (if any) works for you.  I haven't had any luck recreating the issue on my own machine and I'd really like to get it ironed out.

nuevometropolis
November 19th, 2009 said:

I had the same problem but i found a solution: go to maya panel: Windows\Setting\preferences\ Preferences. then, edit \restore default settings and works for me !!  :D

December 5th, 2009 said:

Hey, Crumbly! Just stumbled across your site and was super excited to give this a try on this mermaid I'm working on right now. Now, I'm a MEL noob through and through and I have to say that your section on how to use this script is pretty fuzzy. Luckily, my Mastering Maya text suggests simply typing in the file name on the command line to invoke the script... needless to say the whole "source abAutoRig.mel;abAutoRig;" was giving me all kinds of red lines and I may or may not have pulled a hair or two out in confusion. Hehe! But I think I may have it now because just typing "abAutoRig" pulled up the UI. I'll be back if I have any other real pressing concerns or questions. ;-)

RockerKing
December 9th, 2009 said:

After i build my skeleton and open the file in another computer the Snap IK/FK shelf  is gone. How do i recreate the shelf button again?  I tried clicking Make IK/FK Snap UI Shelf Button in the Tools menu but it didn't work. It asked me to select at least one control of my character and try again. Whcih control should i cleck?

December 9th, 2009 said:

Hey RockerKing,

You can select any control curve on your character.  Usually I just select the rootCon.

RockerKing
December 9th, 2009 said:

It doesn't work no matter which control cruve i click.  It'll state "Error: Cannot find procedure "abMakeFKIKSnapBnDataString" on the script editor.  

I only way i'm able to recreate the shelf again is to recreate a new skeleton with the same name so that it'll auto create the shelf. Then i open my character file to continue. But doing this step everytime is very tiring, any way to slove it?

crumbly
December 9th, 2009 said:

Hey RockerKing,

I checked it out and, yeah...  it was a mess.  There were two functions with the same name and calls to another that didn't exist.  I must have been more than slightly sleep deprived that day.  

Anyway, it should be fixed now.  Try it out and let me know.

RockerKing
December 9th, 2009 said:

Ya, it's fixed. Thanks for the quick update.

December 27th, 2009 said:

Hey, Crumbly. What's going on with the Pole Vectors in the elbows? They are being placed in front of the rig rather than behind and causing a reverse elbow bend.

crumbly
December 30th, 2009 said:

Hey D,

If you imagine the arm hierarchy (upArm, elbow, wrist joints) as the head of an arrow, the elbow should point to where the PV control is placed.  Is this the case in your setup?  If not, send me a copy of your skeleton and I'll see if I can figure out why it's not working.

Scabyx
January 12th, 2010 said:

Hey Crumbly!!

Nice work again, everithing is perfect, and thanks again for the 3.0.5 foot implement. Btw.: Are you sucseeded to see the dog leg setup i have sent you?

Cheers from hungary

crumbly
January 14th, 2010 said:

Hey Scabyx,

Sorry, I meant to respond to your email sooner.

I checked out the dog leg, and I like it.  I  could see it opening up a whole new world of quadruped rigging.  Unfortunately I just don't have time to add it at the moment, and when I do get back to working on the script (whenever that is), there are a bunch of features set to go in before it.

So, I guess what I'm saying is, it will be a while (maybe more).

Scabyx
January 17th, 2010 said:

Master Crumbly,

Thank you for your kind words about the dogleg. No problem with the implementing. It will be done, when it's done :-D. Just a little help for organization:

Tyler Thornock dog hind leg tutorial

this is the step by step tutorial by Tyler where you could have a look when you reach it. In the meantime good luck to you all.

Cheers

Tii
January 18th, 2010 said:

I'm sorry for asking you a stupid question. I don't know how can I use Spine IK control for the backbone? I can use just only FK spine. Could you please tell me step by step? (with picture will be more than appreciate!)

Thank you very much in advance,

crumbly
January 18th, 2010 said:

Hey Tii,

To switch the spine into IK mode you just set the "useRootSpace" attribute on the charName_spineHigh_ctrl, charName_spineMid_ctrl, and charName_hip_ctrl control curves to 1 (or "on").  Once you've done that they'll be parented to your charName_root_ctrl space.

Scabyx
January 20th, 2010 said:

Hello Crumbly

Just a little question: If I blend between a posed fk arm, and ik, there is a snap in the wrist. Am i doing something wrong? I assume there will be a smooth blend between the two states in the wrist. Align is off.

Thanks

crumbly
January 26th, 2010 said:

Hey Scabyx,

No you're not doing anything wrong, that's how it works.  If you enable Align it should blend smoothly, but otherwise it snaps.  I know, it's annoying.  I tried to fix it a while ago, but got lost in a tangle of flaky constraints.

Scabyx
January 28th, 2010 said:

hello Crumbly

no problem, i made another solution for the hand, i will send it to you. It is worth to look at, i have modified som blends, and two controls. You will see how it is working. My animators like it very much.

crumbly
January 28th, 2010 said:

Awesome!  I look forward to checking it out.

Scabyx
January 28th, 2010 said:

Mail sent Master

CosmicBear
February 3rd, 2010 said:

After checking your tools out all day long I have to say, I think I'm in love! Thank you so much!!! Where do I send the presents to? ;)

body
February 8th, 2010 said:

Thanks man. It´s the best autorig i´ve ever used!!!

I´ll send you some results if you want.

Cheers!

crumbly
February 9th, 2010 said:

Hey CosmicBear and body,

Thanks guys (and/or girls), I'm glad you like my stuff.  And yeah body, I'd love to see what you've done with it.

April 19th, 2010 said:

Fantastic autoRig you have created there. One minor thing, every time I click Build Skeleton in the abSkeletonMaker, it creates a shelf button as well. I didn't notice it the first time, so I tried to create a few time to understand everything that the autoRig offers. Then, I realized I created many shelf buttons.

crumbly
April 19th, 2010 said:

Hey Giap,

There's an option in the SkeletonMaker UI named "Autosave Skeleton on Build" which is enabled by default.  Uncheck it and the shelfButtons will no longer be created when you skeletonize a proxy.

If you want that menu item to be disabled by default you can do a search in script for the following string:

$abRTGlobalPrefNames[68] = "autoSaveSkeleton";$abRTGlobalPrefs[68] =

Once you've found it, replace the 1 in quotes at the end of the line with a 0 (keep the quotes).  The next time you start Maya that option will be disabled.

prajain
May 19th, 2010 said:

Hey Crumbly, this autorig of yours is a blessing for newbies in this field like me, im a student n everyday i play with ur rig i find new features that jsut help make wrk so fast. Thanks alot for this great autorig, it is definitely the best ive found and u sharing it for free is even the greatest part. But hey like i said im a newbie and ive tried hard to research wat all people here are talking about the rig n figure out hw to use waht, im still confused bout some options n functions, wat are they meat for and wat are their practical uses while animating, U see ill b starting to learn animtion soon so i thot if i knew the irg propelry i wouldnt miss out on any use of the rig just cuz i dint knw wat it was for. I knw this question doesnt add anything fr the rig bt i wud b grateful if u can teach me. Here are the functions i wanted to knw bout -

use root space on the cog cntrl. align options, rotation order, thumb fist damp, the ik fk snap button the space switch maker hand options - reverse right curl.

Also i wanted to know if there is a way to use ur rig without the stretch functions, like for a realistic human charcter. SORRY i knw the questions are very basic. THANKS alot in advance

crumbly
May 21st, 2010 said:

Hey prajain,

Thanks, I'm glad you like the rig.  Here are the short answers to your questions regarding the rig (I hope to get some video demonstrations up shortly for this and a few of my other scripts):

Use Root Space on the COG control: If enabled, your COG won't move with the root control (rootCon).

Align Options: If enabled, the chosen control (head or wrists) will maintain the same orientation regardless of movement of the joints above it.

Rotation Order: This is mostly just a convenience.  Occasionally you might need to switch the rotation order on a control if you're moving in ways that aren't typical.  Rotation Order determines which axes move independently and which move with others.  The last axis is the one that moves the other two, so if your Rotation Order is XYZ, Y and X will rotate when you rotate Z, and X will rotate when you rotate Y.

Note that there's also a Change Rotation Order Tool, which will change the Rotation Order on animations without having to go back and tweak every keyframe.

Thumb Fist Damp: Reduces the amount of curl on the thumb when you adjust the Master Fist attribute.

IK/FK Snap Button: Snaps your character's IK leg or arm to the position of the FK leg or arm (or vice versa).  Useful when switching between the two in an animation.

Space Switch Matcher: If you have a frame where you switch a control into a different space (hand IK into HeadSpace from RootSpace, say) this script allows you to copy the position in one space, and match it in another (so you could copy the position of the hand when it's in HeadSpace, move to the frame where it switches to HeadSpace, hit paste, and it will be in the same position it was before).

Reverse Right Curl: This is used in setting up the hands.  If you find that the right hand is curling in the opposite way when you adjust attributes than the left, you can remove the rig, enable this and set it up again.  Shouldn't be too much of an issue now.  I think the joint orientations are more predictable in newer versions.

And yes, you can disable the stretch functions if you want, just set the Stretchy Leg and Stretchy Arm attributes to 0.

Prajain
May 21st, 2010 said:

thanks alot. That was rily helpful.

Carmine
May 25th, 2010 said:

Hey Crumbly,

I'm trying to use your Rig in Maya 2011 on 32bit XP.  After placing my proxy skel the way I want it, I hit the Build Skeleton button and get this message from Maya:

// Error: Controls must have a layout.  No layout found in window : //

Please let me know if you're aware of how to fix this!  Thanks.

crumbly
May 28th, 2010 said:

Hey Carmine,

Sometimes this happens when your shelf is hidden.  Try toggling it on if it's currently off.  If that doesn't work, try disabling the "Autosave Skeleton on Build" menu item in the skeletonMaker window.

Otherwise I haven't really done more than a cursory check of the script in 2011.  I hope to switch over (and update my scripts that need it) soon.

June 13th, 2010 said:

Hi,

Very nice script. Well done!

I would like to propose one option. When you have Stretchy IK/FK legs and arms, you can add squash option in Z and X axis and add window to choose % of squash the bones.

Streching is ok, but it works perfect when something is also squashing.

Like animators says "Squash & Streach - principles of aniation"

crumbly
June 24th, 2010 said:

Hey Mayamak,

Thanks, and I agree, a simplified squash setup would be a nice feature.  It's next on my list (along with a bunch of other features) but requires some other changes to the base rig first.  And honestly I haven't worked on the script for a while (except for bug fixes).

I hope to get some time to do so soon.

GG
July 8th, 2010 said:

Hi!

Many thanks for this script. But I've encountered a problem when skinning the forearm. I have a split forearm joint, but Maya's (2011) Interactive Bind tool doesn't allow me to set the weights of the lower joint. I suspect it's because it's not inline... In any case, I've tried many different ways and the second forearm joint just doesn't get any weight. Do you have any ideas? Thanks!

Gregory
1 week 3 days 18 hours ago said:

I'm new using the free auto rig you have. I just can't get the script to work for my maya. Do I need to first create half skeleton rig then type in the mel script to get option menus to appear on my screen? I don't know whats going but I need some help please. When you have some free time can you email me?

Oh yeah I'm running Maya 2010 just to let you know

Thanks!

sean
1 week 3 days 7 hours ago said:

hi, i have been using your rig for a while now.  I love it! i was wondering if there is anyway to create spines with no constraints and just a default FK with motionbuilder namings.  I am just trying to test this rig with some motioncapture data.  If not, are you planning to make some options for it?

thanks!!!

crumbly
1 week 2 days 5 hours ago said:

GG:  I apologize for not responding early to your post, but I haven't switched over to 2011 yet.  It seems strange that you wouldn't be able to set weights on a joint that's part of a skinCluster just because it's not inline.  Maybe there's an option in the Interactive Bind tool that enables/disables that ability.  Or you could add the joint as an influence and see if that works.

Of course, you probably solved your problem months ago.

Gregory:  I don't have 2010 installed at the moment, and I haven't tested it, but the script works in 2009 and 2011, so I assume it works in 2010 as well.  You don't have to make a skeleton, the script will do that for you.  Make sure that abAutoRig.mel is in your scriptPath (best to put it in mayaVer/scripts), that you restart Maya (or enter "rehash" in the mel command line), and that you source and run the script as described at the top of this page.

sean:  Thanks!  The options on the spine are limited, so at the moment, no, you can't build it with a purely FK setup.  Motion capture is not something I've ever used so I've never really even thought about adding it.

Honestly, It's been a while since I've added any new features to the script.  I'll still fix any bugs that people find, and at some point I might add some or all of those features I've been playing around with, but for now it's pretty much on my back-burner.


go on, say it






  

about this post

"abAutoRig 3.1" was posted on June 6th, 2007 under Mel Scripts.  It was created using Maya.

This entry was last updated on March 4th, 2010.

next entry

previous entry