How to have a rigged object snapped to another object's surface? I'm creating a cute, hyper simplified character, and I'd like to animate it with a rig. It's the sort of character that only has spheres for arms and feed, but when I try to parent the hands they sometimes protrude too far from the body, espeically with some of the more irregularly shaped characters.

What I'd like to have happen is for the arms and feet spheres to have their origins find the body shape and stay on it, but in the direction their relative bone is pointed, so that I can still animate them with a skeleton.



here's a quick example. The teddy bears arm, when I try to move it up for a wave, disapears into the body, because of the waythe sketon works. I could bend the sketon more and be careful about such things, but I'd still run into the problem if I'm not careful. I'd love if programaticlly it would simply put the arm so it's origin is on the surface of the body so it was always the same amount being shown.



More like this.

Is it possible?
1 Shrinkwrap Constraint
Add an intermediate bone as a parent of the Hand: Arm &gt; HandParent &gt; Hand.
Then add a shrinkwrap constraint to it using the options Projected, On Surface along +Y in Local Space.
The HandParent will be projected onto the surface of the object, which you select in the Shrinkwrap Constraint.
 
2 Bone Placement
An easier option, is to simply place the arm bone at an appropriate base position, so that the arc it describes resembles the arc of your sphere. This is less computationally expensive and faster to setup. Add a custom bone shape and the bone will not be in the way as well.