I have many objects with child-of constraints. I need to unparent these without loosing their current location in space. I thought about looking up their global transformations, then deleting the child-of constraint (thus movin them in space), then bringing them back to their old location by keying in the previous global coordinates… How could I do this?
In the Properties panel under the Location widgets you should see two buttons: Global and Local, with local selected.
You could always un-parent the children with the “Keep Transformation” option.
Now I am really surprised: it does not work. I can switch to “Global” and it still just shows the local coordinates. This is in Blender 2.6.3
(Also, it seems that unparenting does not work, if you didn’t use ctrl-P, but defined a “child-of” property.
That would be because, as you note, of how you’ve parented the object.
what I think is happening, based on my own experances is this: When you parent using the modifier, blender just kinda makes a note of that and effectively redefines that objects local space as being in relationship to the parent. it then adds the parent location rotation scale to the child L/R/S to create the final result.
try this workaround though: Select your child object and snap the cursor to it. remove your constraint and then tell the object to snap its origin back to the cursor.
OK, I get those 2 buttons in Edit-mode, for selected vertices. That could help somehow. But I still do not get the global rotations of the object then…
(My problem is, I need to un-parent many childs, and want to keep or recreate their positions/transformations in space.
And, so far, it is impossible. Un-parent with “keep transformation” does not seem to work when you parented using the “child-of”-modifier. And if I remove the parent entirely, I cannot recreate the global transformation, because I cannot access global rotation before (just 1 coordinate, indirectly, through edit-vertex-global).
Use ctrl-A and select “Visual Transform” on an object with the child-of constraint. Delete the constraint and the object will have the correct location and rotation.
Thank you John! That solves it, and solves a whole bunch of problems for me.
sorry but i cannot work this out. i want to see the global locations of ALL objects, but objects that are children show loc relative to parent.
is there not a global setting somewhere? what i have to do now is unparent and keep transform to see global location, then reparent, which is a pain when you have hundreds of parented objects. thanks
i tried ctrl-A and select “Visual Transform” but it doesn’t do anything for me