Download

Animation retargeting producing broken looking hands

So I retargeted some unarmed, idle and movement animations. Trouble is, the resultant hand positions are quite contorted and freaky!

Looking at retarget manager, the hands don’t quite align, and an even more severe issue is the bicep area that is completely off, looking broken entirely (not picture).


Now I was wondering, is the issue that the base poses are too different, breaking the retargets? Or is it the animations that have wacky hands, combining with the hand being off slightly?

Running anim for instance (index finger looks broken in game):
unknown-1

One positive I’ve noticed with the model’s hands is that it kinda grips a weapon by default, which means an IK setup isn’t needed. The downside is not great though, hah.

Also, could this issue be solved with an IK overlay or something of that sort?

Both.

The default ue4 skeleton animations are always off.

If you are using a free pack, chances are the animations are also off.

With that in mind:

  1. your finger weight paint is bad.
    Why?
    Because of where the finger is causing the bend.
    That portion should be weight painted to the bone before so that the bend can only happen on the skin crease.
  • this may also not matter, if the movement of the flange is overly overextended to the metacarpal.
    All people are different, but without help, you can barely get an upward (against normal direction) bend of more than approx 5 degrees, if even.
    So while the paint looks to be bad, maybe it doesn’t matter.
  1. initial bone rotations are what matters.

The way the pose “looks” may not reflect the bone position. this could be a modeling issue if you just threw the mesh around the skeleton without specifically placing bone heads and tails to the center point of the finger loop.


A mesh that’s just been thrown into an epic armature.


A (badly) corrected bone that is actually aligned with the position of the geometry. just that one bone. The rest would all need the same treatment.
(You should snap the bone and preserve the bone length, not do what I did which was stretch the bone altering it’s rotation. Still the image gives an example of the alignment - and a “what not to do”)

A decent way to fix things is to copy the bone rotations over from the mannequin to the base mesh you intend to retarget.

Going one bone at a time, that’s 10*3 plus 2 (one for each hand) X Y and Z rotations that you have to copy over.

Using blender, you can do this in POSE mode, and then apply the pose as the rest Pose to cause the mesh to acquire the new position as the base to which the engine or animations apply distortion.

Afraid not. It mostly looks like a model issue.

Editing the base is your fastest/permanent fix.

1 Like

If all of your hand animations are contorted in the same way you CAN add bone offsets in a post-process animBP but that has a runtime cost, of course. Really, the best way to deal with this is to edit the retargeting pose to be as close to the retargeting source as possible. Then retarget animations again. If you still have issues after ensuring your pose is matched, you may have issues with the joint rotations or bone axes in your model which will have to be fixed in your DCC. You can export the mannequin to your DCC to use as a reference.

1 Like

Thanks for the pointers! I tried copying over the transform and orientation values from the UE default mannequin one by one, but it was a super slow, error prone process. I messed it up a few too many times, but the fingers were getting distorted as that process went on.

Both the character and the animations are bought externally, so I expected better in parts, but it’s OK. This model wasn’t going to be the playable character anyway, and a combat NPC only looking OK in combat isn’t an issue anyway :slight_smile:

I might look into re-posing the character, but my art or rigging skills are pretty non-existent currently. I have a feeling someone on the project will have to pick it up sooner or later anyway though!

That’s somewhat normal. If you are using blender you can access edit mode to move them.
Then the Rest Pose will automatically be updated to what you modified.

You should only alter rotations though.

I’m thinking that maybe I can include a script for it in my blender plugin…

There’s another way to do it too.
You can copy the other skeleton over it, delete all the bones except the hand you need.
Delete the hand with the bad rotations from the original skeleton.
Merge the 2 skeletons, and re-parent the hand bone.

Its faster than changing 30plus bones manually :stuck_out_tongue: