I am currently stuck with blender 2.8 (I know that is a beta right now but I remember having the same problem with 2.79 and I finally want to solve this).

I am trying to make an object a child of a bone. To do this I select the supposed child object then shift select the armature (that was made using rigify), switch to pose mode, select the parent bone and parent it with ctrl+p to the bone. When doing this the (carefully aligned) child objects is rotated and moved and I can't figure out why. I am sure the must be a way to do this without having to reposition the child after parenting.

I have applied all transformations to the child object and also checked to have reset all transformations on the pose.

Please check the images to see what I am talking of. Thanks for all the help you are providing and all the work done on blender.

before parenting enter image description here

after parenting enter image description here

  • $\begingroup$ Remove existing constraints and parents from the mesh you are trying to parent to the bone. $\endgroup$ Jul 10 '20 at 11:29

Let the bone position it, then tweak.

In as much as you can position then parent, I am suggesting the opposite. The nature of parenting is to let the child inherit the transform of the parent.

If the object has no translation or rotation it will be at the location and rotation of its parent.

The head to tail axis of a bone is, +Y along the bones length. Align our child object to reflect this.

The "up" axis of our default cone is +Z, we want to make it point to "+Y".

enter image description here The default cone, rotated and translated such that its origin (local (0, 0, 0)) is at the tip of cone, and it points in a +Y direction. The cone is at global location (0, 0, 0)

If non-zero rotation apply the rotation.

Now we can parent to a bone and the cone will be tip to tail of bone.

enter image description here cone parented to head bone of rigify bird metarig, adjusting the cones y location will slide it up and down the bone

  • 2
    $\begingroup$ Thank you for your response. I thought of positioning them after they are made children of the bones. But I also have all the mirrored parts which already are in position. My current workaround is to set the parent in pose mode, go back to object mode and clear the parent again using alt+p and then set the parent again in pose mode. on the second parenting the object will stay in position. $\endgroup$
    – cioddi
    Jan 16 '19 at 9:22

I was experiencing the exact problem as OP, and solved it differently. I discovered that the reason was that some of my mesh objects had movement constraints on them. Once I removed the movement constraints from the meshes, the behavior stopped.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.