Scaling Joints

I was wondering if there was a way to scale a joint, but not it’s sub joints.

I realize this is weird, but it’s pretty important for what I’m trying for.

I tried the obvious solution, which is to scale the joint, and then scale the sub joints in the opposite direction, but right now it’s finiky and I’m hoping there is a better way.

Any help would be appreciated.

The answer is generally no. If you really need to do this, it’s best to restructure your skeleton so that you don’t have that parent/child relationship. For instance, make both joints be a child of the same parent. Then you can scale the one without affecting the other.


Maybe I am asking the wrong question.

Let me try again.

I have a model that has been rigged for animation, I need to be able to scale this model while still using the animations for the model…

So, I’ll give you a for instance. The model is a dog, I want to scale the dog so that it’s feet are bigger then the base model, but the legs are the same size, and it’s body is a little longer then normal.

After I have applied the transforms to the model I would then like to use the animations that I have been given by the person who made the model, such as walking.

I have named joints for each part of the body, but they have to be left as is so that they can be animated properly.

How do I scale the various parts of the body without interfering with the animation or the hierarchy of the joints.

(Is this a clearer question? hopefully with a different answer then it can’t be done)

I won’t say it can’t be done, but it is real hard to do that and make it work. The problem is that when you, say, make the dog longer, you are actually moving apart the joints between the head and the tail, and that changes the way the animation is going to play back.

Basically, the simplest answer is to have your animator make the changes in the animation package, and re-export it.

If you want to be able to make these sort of changes at runtime (say, due to the player moving a character-builder slider), then you have to design your model very cleverly with joints built-in that you can move and/or scale. And you have to make it so that the joints you scale are not parents of any joints you don’t intend to inherit that scale.

So, you could have a joint that is over each foot, that scales the foot geometry to make the feet bigger. But this joint would have to be a child of the normal joint hierarchy that actually moves the foot, because you don’t want to scale those joints.

Similarly, to make a weiner dog longer, you could have a special joint in the middle of his skeleton that you can move backward a bit. But you would want to translate it, not scale it, because scale would be inherited by the rest of the joints in the chain.

But you can’t do these tricks with just any skeleton hierarchy. You have to have the joints already built into the skeleton with this purpose in mind.