2
$\begingroup$

I am trying to scale and position the bones of one armature to another. And, I was wondering if there was a way to snap the position of the bones in one armature to the position of the bones in the other?

Thank you for your time!

$\endgroup$
0
$\begingroup$

I was looking for the same. I saw the UE folks do this and was trying to do it without their plugin. They show it happening here... (https://www.youtube.com/watch?v=F9cTXzO8wq0&list=PLZlv_N0_O1gaxZDBH0-8A_C3OyhyLsJcE&index=4&ab_channel=UnrealEngine)

It's a bit tricky since your cursor has to be in the correct place...

  1. In object mode, select both armatures.
  2. Go into 'Edit mode'
  3. Enable 'Vertex Snapping' (refer to image below to see where to find the button to open the menu. (enable rotation/scale here if you'd like to)
  4. Select the bone head/tail that you would like to move to the other.
  5. ** Tricky Part here: Ensure your cursor is inside (or near) the source head/tail before you start transforming.
  6. Press G to transform the position of the tail/head.
  7. Moving close to the other armature tail/head should snap to it.

** Also note that, if you move the tail of one bone, you will likely have to move the head of it's connected bone too.

vertex snapping

$\endgroup$
1
  • $\begingroup$ You can just select the tail/head and press g, then the axis (x, y or z) and move the selection near the object aligned to the center. You don't need to place the cursor near the source. $\endgroup$
    – Sid110307
    Nov 29 at 11:11
-1
$\begingroup$

Probably the easiest thing to do is to do it in pose mode, with copy transforms constraints, and then apply the pose as rest pose. Interface for constraints is good enough that this is less work than doing it in edit (where you need to also match roll, btw) at least in most cases.

Make sure both armatures have no unapplied transforms. Select snapping armature, enter edit mode, alt-p (clear parent) -> disconnect, then return to object mode. Select both armatures and enter pose mode. For each bone, select the snap-to bone, shift select the snapping bone, and shift ctrl c (add constraint with target) -> copy transforms. The defaults for copy transforms are fine for what you want, so there's no need to enter the bone constraints tab. You should see your bone snap, in pose mode, to the position of your other bone. Repeat for all bones. When you're done, still in pose, ctrl a (apply ) -> pose as rest pose; then select all bones and use the "clear pose constraints".

This procedure will orient the bones's axes and head positions correctly, but won't affect rest length. Tail positions (and connected property) aren't that important, but if you need tail positions to be correct, you can follow the clear transforms constraint above with a stretch-to constraint, targeting an appropriate bone's head, or targeting the tail of the copied bone (which then requires editing bone constraint from defaults, thus making it more troublesome.) If you use stretch-to, snap your bones from root outward to prevent having to recalculate rest pose length for these constraints.

$\endgroup$

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.