1
$\begingroup$

I have several objects parented to bones and try to find the correct rotation point of the bones. I assumed I could simply move the tail of the bone to where it should be, but when I exit the Edit Mode, the meshes move as well.

This behaviour doesn't make a lot of sense to me. If moving bones in edit mode affects the mesh, I should see the effect immediately.

How can I edit the bones without moving the mesh and without having to unparent and reparent all meshes from the bones until I have found the correct bone position?

https://pasteall.org/blend/cdc88a558b8f4722ba8b2a7a3de665a8

$\endgroup$
2
  • 2
    $\begingroup$ Hello could you please share your file (at least this part of your mesh + armature)? pasteall.org/blend $\endgroup$
    – moonboots
    Commented Mar 23, 2022 at 9:49
  • $\begingroup$ Here is a very simple version of what I am doing: pasteall.org/blend/cdc88a558b8f4722ba8b2a7a3de665a8 I just have way more elements that are attached to the bones. In this case, the bone is not aligned with the cylinder. I would expect that editing the bone in edit mode would alow me to align the bone with the cylinder. $\endgroup$
    – Tom
    Commented Mar 23, 2022 at 13:50

3 Answers 3

2
$\begingroup$

Other answers are accurate, but there is another option here, which is to parent bone relative rather than straight bone parenting.

When you parent an object with bone relative, you are telling Blender that its position should be the same for any rest position of the bone, regardless of what that rest position is. (There's some potential for "bone relative" being a poor name, as which kind of bone parenting is relative is a matter of perspective.) When you do that, edit mode manipulations of bones will change the bone without changing the positions of any bone-relative children.

Bone relative parenting will solve your problem without requiring you to use armature deformation (which has a performance cost, and which requires additional effort in creating and filling vertex groups.)

The reason that edit mode manipulation of straight bone parenting doesn't update the position of child objects until you tab out of edit mode is that, in order to improve performance for creation and editing of an armature, bone inverses are not calculated until the mode switch. These inverses change with any manipulation of a bone's location or axes, and without these bone inverses, the positions of child objects cannot be calculated.

$\endgroup$
1
$\begingroup$

It happens because you've parented with a basic Set Parent to > Bone, not with vertex group, in that case if you move your bone in Edit mode, its child object will follow. If you plan to use this mode rather than With Empty Groups (which will allow the bone to use vertex group to control the object) you can 1) unparent the child object, move the bone in Edit mode then reparent, or 2) move the bone in Edit mode then correct the object position.

$\endgroup$
1
  • $\begingroup$ Thanks, this pointed me to the correct solution! I got it. $\endgroup$
    – Tom
    Commented Mar 23, 2022 at 15:08
0
$\begingroup$

Moonboots pointed me to the correct solution.

There are two different types of skinning: Parenting and the Armature Modifer: https://docs.blender.org/manual/en/latest/animation/armatures/skinning/introduction.html

Instead of parenting the mesh to the bone, I should have parented with Ctrl + P -> "Armature Deform" -> "With empty groups"

This creates empty vertex groups with the names of the bones. The bones move the vertices in these groups. As these groups are empty, they have to be filled with the vertices of the meshes.

For this, select the mesh, go into Edit-Mode, and press "A" to select all vertices (or select the vertices you want to affect). Then open the "Object: Data Properties" tab of the mesh, select the vertex group with the name of the bone and click assign. Now the bone moves all vertices assigned to this vertex group.

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .