Mirroring rigged and animated mesh - how?

The goal is to have right and left hands (for VR), each being a separate mesh rigged to its own Armature, but using same animations (each hand would have its own animation set, but visually anims will be identical).

I currently have right hand mesh rigged to an Armature and I am about to start animating it.

How do I go from having rigged and animated right hand, to having rigged and animated right, and left hand, without animating left hand from scratch?

I am using Blender 2.82a.


P.S. No, I can’t have only one hand made in Blender and then have it copied and negatively scaled in UE4 to get opposite hand - it messes up with physics and rendering bounds.

Make sure your right hand is perfect and rigged just how you like. Avoid using quaternion rotation for bones that don’t need them. Then copy and flip the whole thing. Pay very close attention to the axes and bone rolls on the new hand. If you do this correctly, you can then copy the actions for the right hand, use them on the left, and only have to invert a few f-curves on each action. You may even be able to use the same actions.

Both mesh and Armature ?

It’s probably going to be different from the original. Do I need to do anything about it ?

So basically, manually make an Action for the copied Armature/hand, go back to original, copy keys from respective action, go back to copy and paste keys to the empty Action ?
If so, is there an easier way ?

Why only a few and not all ? How do I flip f-curves ?

Thanks !

Yes, in edit mode. No negative scaling like you said.

Yes. Pay attention to how the rotation values affect the mesh in pose mode. If a positive X rotation value makes the right index finger curl inward, it should do the same on the left index finger. That’s how you know the animations will work for both hands.

Yes! Use the action editor to select an existing action datablock for the new armature. See if it works, and if you need to make any changes, click the little “2” next to the datablock field to create a single-user duplicate.

Try it out and you’ll see. It’s difficult to explain. You can invert F-curves simply by scaling them on the Y-axis in the graph editor.

Alternatively, another method is to add “Copy Location” and “Copy Rotation” constraints to each of the new bones, inverting each axis as necessary. Then you can bake the animation to new actions.

I don’t know man… It didn’t work at all.

What worked for me (and I was just doing a quick test) was making single armature and rigging right and left hand. Pose right hand, key it in an Action (let’s say Fist_R), copy/paste flipped to the left hand bones, create a new Action (Fist_L), key left hand there.

After that I separated bones of the lft hand into a new Armature and had two separate hands. The only issue was that I had extra Actions in each hand that I didn’t need and I don’t know how to remove them.

Also this method is really cumbersome :confused: