Help Rigging a Human using a cane

I’ve been banging my head against the table for the past day trying to rig this. I have a character with a Cane, and I want the Cane to react naturally like it would in real life while I’m animating my character.

I would appreciate some pointers on how you would this.

The closest I can get to my desired effect is using a “Track to” from the top bone on my Cane to the bottom. But this is causing issues with the Cane model flipping 180 degrees because the bones almost on top of each other.
Then when I’m trying to pair the hand with the Cane itself using a “Child Of” bone constraint, this is causing even more problems with the rotations being off, it not following it properly.

This is driving me nuts.


This is what I want to achieve at the end…


So, the hand will be attached to the Cane’s top with a “Child Of” constraint.

(1) I want the cane to be moved with a controller at the bottom (Green Circle).

(2) I want another controller at the top to control only the rotation of the cane (Blue Box). The cane will pivot on where it naturally would. (Green Circle)

I know their is a lot of in depth technical work behind this, but that is how I want the cane to function. I could really use some pointers on how to do this specifically or any fundamentals of rigging tips would be appreciated.

The trick is to have the cane move the hand, which is what I think you are striving for. My approach would be to rig the hand as an IK chain, then parent or constrain the IK target to the top of the cane. Any motion of the cane’s head would pull the IK chain, and hence the hand, along with it. If the hand will never leave the cane, parenting the IK chain target should work OK, otherwise use a constraint (Copy Location is a good choice as it keeps things simple and can be offset if necessary) so the Influence can be keyframed to 0 (zero) when the hand & cane need to separate.

I see the cane has its own Armature, though I’m not sure you would need an elaborate controlling system for the cane, as there are only 2 pivot points in play (bottom & top ends), and simple Rotation transforms around these points, coupled with Location transforms of the entire object, may suffice, but that depends a lot on the type of motion needed. If you effectively keyframe the cane motion, the hand will follow automagically via the constrained IK chain. If you keep the cane armature, you can likely use the bone at the cane’s top as the constraint target that the hand’s IK chain follows.

The character itself was originally made by itself as a simple humanoid test rig, the Cane was added in later. So I want to interchange between objects the character is holding (Can pick up, place down, throw, etc…)

I kind of get your paragraph of instructions, but do you have any visual examples of how this would work? I don’t understand this part…

and simple Rotation transforms around these points, coupled with Location transforms of the entire object,

I think I got this kind of working to what you said here…

My approach would be to rig the hand as an IK chain, then parent or constrain the IK target to the top of the cane

I have my “Hand” bone, IKed to the top of the Cane bone, which let’s it follow it. Then I used a “Copy Location” on the IK bone on my humanoid character which controls the “Hand” bone, so it follows the top Cane’s bone.

I can then move my Cane’s top bone, which works as a quick and easy way to move my Cane and Hand (The hand controls now can’t be moved or it will mess up).

But now I’m not sure what to do next, which is make the bottom of the cane always stay in the same spot (Unless I specifically move that bone). And, have the top Cane bone always point to it, while I rotate or move the Top bone.

A “transform” is just a change in some object’s orientation in 3D space – moving (Location), rotating (Rotation) and scaling (Scale). So to move the cane you don’t absolutely need an armature – just keyframe the cane’s Location & Rotation as needed. If your rig is properly set up to follow the cane’s head (you can test this by simply grabbing the cane and wiggling it around, the hand should follow it as if gripping it), then animating the cane (keyframing its transforms) will cause the hand to follow it.

By itself (not linked to an Armature) the cane is a rigid object, so no worries about it bending or twisting or the like as it is being animated (which can happen with an Armature if not done properly). So, I would set its origin at the tip of the cane, as that portion is what is kept stationary when it’s planted on the ground. Then, as the figure moves forward, I would rotate the cane around that origin point at the tip (likely on only one axis but that is dependent on the scene details) to cause the motion you indicate with blue squares in the diagram above.

This approach means you will have to animate the cane’s motion convincingly, but as I see it other solutions introduce other technical problems it may not be worth encountering. I like to keep things as uncomplicated as possible, even if it means a little more work on my end.

How about a Limit Location Constraint attached to bone at bottom of cane.

Minimum z = 0 (whatever axis is pointing up actually)

That way it won’t go below ground level.