Child object moves and rotates upon parenting to bone 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


after parenting
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".


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.


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