Humane Rigging Custom Bone shape error/question

I am following along with Nathan’s training, and he doesn’t show how to make the custom bone shapes. I made them myself and can’t figure why the custom main shape changes direction. As you can see below, I don’t have any rotations on this object everything has been zero-ed out:

http://screencast.com/t/5qMIViB2jyvp

http://screencast.com/t/PWrI0ZOZnX

And here is the error:
http://screencast.com/t/F6YRvks9Nh1

I have tried [ctrl a] on both the object and the bone. The strange part is I got this to work on both rotate custom shape and used the same process to create both. Can someone help?

This is just a guess but here goes.

If you start with the default Blender scene, add a bone it’s by default pointing upwards (at least that’s how it looks visually). But if you to go to the Object Data context in the Properties Editor and under the Display panel you turn on the Axis setting (while the bone is selected). If you then switch to pose mode you will see the axis direction that your bone has in Pose Mode. Your Z Axis for the Bone isn’t pointing upward but is instead pointing side ways. So your bone only looks to be pointing upward. It is really on its side.

On your mesh you are using for Custom Bone, it has it Z Axis pointing upward (if you cleared rotation etc), but your bone has its Z pointing in a totally different direction (when in pose mode). And since custom bone shapes orientate about the Z axis. The custom bone shape reorientates to point along the bones z axis direction, so the custom shape flips.

So I would rotate the custom bone shape mesh in edit mode to take account of the flip.

My best guess without see blend file.

Ick, yeah custom shapes are confusing.

They match by local orientation of the individual bone. If you go into edit mode on the bone and turn axes on you’ll see the length of a bone is always the local y axis. Likewise if you go into edit mode on your shape and turn on axes you’ll see it’s y axis indeed matches. You’ll still probably have to fiddle with it a bit to get your mind around it, but hopefully that clarifies it somewhat.


Here’s a brief procedure:

  • turn on the armature’s Axis
  • draw/add the meshes to use for bone shapes on a separate layer
  • turn on the meshes’ axes
  • make both layers visible
  • select the armature
  • switch to Edit Mode
  • select the head of the first bone that will get a shape
  • Snap Cursor to Selected
  • switch to Object Mode
  • select the mesh that will be used for the bone’s shape
  • Snap Selected to Cursor
  • switch to Pose Mode
  • rotate the mesh until its axes matches that of the bone
  • assign the Custom Shape to the bone
  • switch to Object Mode
  • scale the mesh to match the scale of the bone

Once the two match, it’ll be hard to tell the shaped bone from the mesh, which is why they’re on separate layers; it makes it easier to select the mesh for further editing.

Do all bone shape mesh editing in the mesh’s Edit Mode, NOT in Object Mode. That way the bone shape in Pose Mode will always match the location, rotation and scale of the mesh.

I have a series of screenshots for this procedure, but there’s no way they’d all end up attached to this message, so for now, hopefully this terse explanation will suffice. Let me know if you have trouble with any step and I’ll see about posting the corresponding screenshot.

Well that was a HUGE pain the butt. I didn’t change anything other than go into edit mode of the custom bone shape and rotate till it looked correct in pose Mode. blender ball.blend (458 KB)

I attached the blend file if anyone is interested in downloading and giving me a constructive criticism.

Thanks, from the Lurkers

Here is the procedure I’ve been using when I want to add bone shapes.

  • Add the mesh that will be the shape
  • Add a copy location (world->world)+ copy rotation (world->world) constraint this mesh and set the target to be the bone that will have the final shape.

Your mesh should now be perfectly aligned with the bone that it will replace.

  • On the bone, enable the shape
  • Select the base-mesh and in object mode, scale the mesh until it matches the out line of the bone.

Now you can go into edit mode on the base mesh and and it works very similar to if you were just editing the shape directly on the bone.

Great Pointer! I just tried this out. Works perfectly