Retargeting of 4 arm Character

Hello guys,

i am searching for a solution to retarget a 4 arm creature. The mesh was created in blender and the rig has the same naming convention to be compatible in the Unreal Engine. I retargeted the “normal body parts” with the mannequin animations and it worked like i expected. The 2 additional arms just do nothing and I couldn`t find a way to retarget them. So I tried a second solution and tried to put the extra arm mesh as a skeletal Mesh to the Character Blueprint and connected them with the SetMasterPoseComponent. It kinda works but it is not really attached to the Character mesh.
Maybe someone knows how to find a workaround? Or is there a way to just retarget the extra arms?

Thank you so much !

1 Like

Your exact case is in the docs:

Whether you’re retargeting using the same skeleton asset, or retargeting using a different skeleton asset (which requires a rig), you need to animate the extra limbs separately.

There are two ways I can think of that you can do this:

  1. Modify the original animation to include the extra arms. Any skeletal mesh that doesn’t have those extra arms will just ignore them.
  2. Have a separate animation only for the arms and combine the two animations in the animation blueprint.

Edit I think the easiest thing to do is, in the animation blueprint, have the extra arms copy the animation of the normal arms.

1 Like

For animating them?

Really depends on what is acceptable to you.

A 1 to 1 copy can now be done via control rig

You just link it up so that the bones move together with the animated arms. Having both arms to the same animations looks rather silly in practice though, so this may not be a good solution. Still, it's probably the Easiest solution, being all done in engine.

Next situation is a hack.

Firstly, you need to add a "root" bone to the secondary arms. This will be a prerequisite for the ABP way after you are done with the process.

Import the character in again with a “new” skeleton (and update the existing one to include the root for the secondary arms if one did not exist).
Set up re-targeting with the “new” skeleton - here you just feed the name of the arm bones into the re-targeting - ignore the rest. you want to get just the secondary arms to move. (note do not re-target the secondary arms root bone).

re-target the arms with all the animations you need: This produces a set of animations that are tagged to the secondary arms.

Now that you have this set of animations you can re-re-target the new animations to go onto the existing skeleton of the main mesh.

if you made it to here, you have a set of clean animations that involve just the secondary arms, but work with the main (original) skeleton.

IF you are good with C++ you can actually use the name of the currently playing animation to play the same exact Arms version as a montage.

IF you are no good with C++, you will need to modify your ABP to Blend per bone - that’s why we added a root bone to the secondary arms;
Every animation needs to run into a “blend” node, which will blend the re-re-targeted arms animation on top of the original animation.

Compared to control rig, this STILL allows you to play different animations.

Last but not least:

The complex alternative is to animate them in a DCC - blender. For that you need to first set up a rig - meta human + rigify are a decent start, you can cut the arms of a copy of the metaskeleton, place them in, and because the types are properly set for the bones, it should automagically rig the super-limb for you. Can take some work to actually do - you may want to check my plugin, as well as mr.mannequin.

http://mosthostla.com/gamedev/bonebreaker/

Regardless of what you use, the idea behind it is all the same. Get a working rig, animate the key frames for the arms.
In blender you can actually copy poses and apply them to different things, as well as paste opposite. you can get stuff done rather quick that way.

1 Like

Thanky you so much for your answer and sorry for the late reply. I am going to try your “edited solution”. I created 2 Blueprints with the same Animation Blueprints one for the Body and one for the arms but I think it would be faster like you said to copy the animations. So i think I will need a Child Animation Blueprint to copy the Animations, is this approach right?

You would just use Copy Bone in the animation blueprint for the 4 arm character (duplicate the mannequin animation BP and apply that to the 4 arm character). You only need to copy the rotation of the moving arms to the extra ones.

1 Like