• Editor
  • Vertices move when a weighted bone has been repositioned?

I know the topic title sounds silly, but bear with me.

I'm frequently running into the case where I'm working on a weightmap, and I find I need to adjust the position of one or more of the weighted bones. I'm (usually) able to reposition a weighted bone without screwing up my weightmap by using the Compensate toggles. However, I've noticed that if I move a bone after it has been bound to a mesh, changing the weight of that bone's influence on a vertex causes the vertex to move in weird ways.

It's easier to just show with an image:

The image here shows Spine v.2.1.27, but this happens in more recent releases as well.

So... why does this happen?

(Also, what is the filesize limit on attachments for the forums here? I had to downscale this image a couple times before I could upload it. :S)

Related Discussions
...

When you bind bones, you're saying that the vertices' current positions are bound to the bones' current transforms. This is often called the "bind pose". Afterward, when you move the bone, it affects the vertices based on the weights. This is the whole reason to use weights: because you want vertices to be affected by bones.

After you bind but before you move any bones, you can set the weights however you want and the vertices won't move. Once you move a bone from the bind pose to some other pose, then the vertices that have > 0 weight for that bone will move. If you then change the weight for that bone to zero, the vertices will move back to where they were in the bind pose (assuming you haven't moved other bones).

The workflow is generally to bind your bones and then set your weights. You can use animate mode to manipulate the bones to make sure the vertices move like you want without messing up your pose in setup mode. You can even edit the weights in animate mode (for convenience, you are actually changing the setup mode weights, weights aren't keyable) so they move like you need as you manipulate bones. It's not common to bind, then move bones in setup mode, then adjust weights.

I believe the question is why mesh deformation doesn't respect compensate mode. If i want to adjust my bone position from the bind pose (edit mode) afterwards, for example.

Sorry, I guess I got a bit carried away with the recording. :rofl:

Like Xelnath said, my issue is specifically that I want to be able to change the bind pose of a bone after I've started to work on weights. I figure it's uncommon, but it's dramatically more convenient to be able to do so.

For me, the whole process of building a complex rig is pretty time consuming, and requires a lot of minute by-hand adjustments. That's not a criticism against Spine at all, rigging in general just seems to be like that.

In my experience, with anything that requires a lot of hand-crafted work, the less prescriptive the workflow, the better.