0
$\begingroup$

Is it possible to move a single bone from an armature in pose mode with a separate object in object mode at the same time?

I often need this functionality when creating a layout for an animation shot. After posing my character I might need to move the root bone or an IK controller a bit. But when my character interacts with the environment, for example sitting next to a table, I can't find a way to move both the character armature and the table at the same time. So I find myself moving the two elements separately which often leads to inaccurate positioning. If I turn the armature to object mode I can move both objects but there are some use-cases where I want to move an object with only one particular bone.

$\endgroup$
  • $\begingroup$ I haven't tried this to find out what effect it has on the other bones in an armature, but you can give a bone a Copy Rotation, and/or a Copy Location Constraint. With the location one especially you might have to tick Offset. It's probably more practical to do it the other way around - that is, give the constraints to the object instead of the bone, so the object follows the bone. $\endgroup$ – Susan May 27 '19 at 7:44
  • $\begingroup$ When I try adding constraints it changes the object's current position so I can't really use that (even when setting offset in copy location since the object has a transform of its own). Also, I'm just trying to make a one time position change so adding a constraint seems a bit much for that... $\endgroup$ – Nadav Sheffer May 29 '19 at 8:29
0
$\begingroup$

I'm assuming you need the child object to rotate on the spot, that is, with its own Origin as pivot point? If so ....

Select the object to be constrained, which I'll call a cube from now on, and Shift S, Cursor to selected.

Shift D, and call the new object TemporaryCube. Create an empty.

Add a Copy Rotation constraint to the Empty with the bone as the target. Select the Empty first and the Cube second, Control P, Object with Keep Transform.

Add two Child Of constraints to the Cube.

In the first constraint, untick the Rotation and Scale axes. Pick Bone as parent. Correct the location by pressing Shift S, Selection to Cursor.

In the second constraint untick Location and Scale axes. Pick Empty as target. Rotate the Cube back to how it should be by: Selecting a) the Cube, b) the Temporary Cube, then going to Object/Transform/Align to Transform Orientation. Then you can delete Temporary Cube.

If you want to remove the constraint afterwards ....

  1. Create a cube or sphere or something. With it selected, press Shift and select the object with the constraint. This cube/sphere is going to "hold" the position and rotation data for you.

  2. The cube or whatever needs to be in the same position and rotation as the object with the constraint. You can get it there using Object/Transform/Align Objects, and Object/Transform/Align to Transform Orientation. You'll probably need to select all axes in the tool settings and change Global to Local.

  3. Remove the constraint, then get it back into the position of the "data holder" cube/sphere using the same two align tools as above. Remember that the object you select last when the two objects are selected ready for the align tool, is the object whose data will be copied.

| improve this answer | |
$\endgroup$
  • $\begingroup$ Thanks Susan! I've managed to change the object's position with the bone. However when I try to remove the constraints or delete the Empty, the object changes its position and rotation again. Can you also explain how to remove the constraint? $\endgroup$ – Nadav Sheffer May 30 '19 at 4:40
  • $\begingroup$ I just edited my answer to give you the answer to that question. $\endgroup$ – Susan May 30 '19 at 8:42

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.