Retargeting MoCap Data in Unreal Engine
This is a short tutorial on how to retarget our UE animations inside Unreal Engine. It assumes that you have imported some of our (UE compatible) animations into Unreal Engine along with the Unreal Engine mannequin character and a destination character. If you do not have the mannequin already you should be able to get a copy from the UE marketplace.
Below is a short video with the steps explained below. This tutorial was put togther in UE 4.24 but it should work in later versions as well. The data used in this tutorial is our own data thats retargeted to the UE mannequin. It will not work with other random mocap in other formats or retargetted to other skeletons.
Short UE MoCap Retargeting Video
Part 1 - Setup Source & Target skeletons
1. Open the source skeleton that your animations are retargeted to. Our UE compatible animations are retargeted to the UE mannequin. You should include this within your project and open up its skeleton settings. If you do not have the UE mannequin you can download it from the UE Marketplace.
2. In the options drop down at the top of the skeleton tree select 'Show Retargeting Options' to display each bone nodes retarget settings. This allows you to set how each bone assumes its position transform data. ie. does it take the bone position from the animation or from itself and how is it scaled.
3. Right click on the top root node and select 'Recursively set translation targeting skeleton'. This sets all the nodes to use the Skeletons default bone positions for its translation data rather than the animation data. This is what we want for most bones in our skeleton as they usually should only move with rotation data from the animation.
4. Some bones however should also have position translation turned on because they do not only rotate, they also move in 3D space. So for the root node select 'Animation' this allows the animation to control root node position. The root node contains our horizontal movement of our character. For the pelvis set it to 'Animation Scaled'. This will allow the characters hips to move correctly up/down with movement scaled to the characters proportions. The IK bones and weapons also will need translation data from the animation as they track the hands and feet. Set these to 'Animation'.
5. Now save the settings and open the target skeleton and repeat the process for the target character that the animation will be mapped onto. ie. Set all bones for the target skeleton so they use the skeletons position data and then set its root node to 'Animation', the Pelvis to 'Animation Scaled' and the IK Bones / Weapons to 'Animation'.
Part 2 - Setup Retarget Settings
Now we have both source and target skeletons setup correctly we need to setup the retargeting for them. The following Assumes that your target skeleton also uses the Unreal IK Rig. If it does not it may take a little extra effort in setting up bone names. The process should be more or less the same though.
1. Open the source skeleton & open the Retarget Manager. Set Rig Type to 'Humanoid'. You should see the bones all populate the slots for there respective joints. I recommend checking the slots as occasionally they can list incorrectly. I've found this with the finger joints in the past which sometimes appear in the wrong order. Any bones in the wrong slots will cause the retargted animation to break.
2. Set Retarget Base Pose. Keep in mind both source and target skeleton should be in a similar pose for the retargeting to work best. You can use the 'Manage Retarget Base Pose' to set a pose you have adjusted in the viewport as the new base pose. You can also load poses in here if you have one saved. Often a T Pose is used for this when retargeting as it is easy to setup and see limbs in alignment. However you could use other poses such as an A Pose if you wish. I recommend extra care in matching the arms and also the distance between the feet of source and destination characters.
3. Repeat the Above for the target model, ensuring the retaget base pose is as close as possible to the source model.
Part 3 - Retarget Animation!
Now we have the bone settings and retarget options setup for both source and target skeletons we can retarget each animation.
1. Locate your animation asset that you wish to retarget in the content browser. Right click on it and select 'Retarget Animation Asset>Duplicate Anim Asset and Retarget'
2. Select the destination skeleton in the left hand window. you should now see the source and destination characters in the source/target windows. When happy click the retarget button to initiate the retarget process for the animation.
3. You should now have a copy of the animation retargeted to your new character. Try it and see how it came out. If it does not look quite right please check back the steps carefully. There are a number of places where things can go wrong causing it to not look quite right. Pay extra attention to the name of the bones and base pose in the retarget manager. Also check that the skeleton bones were all setup correctly so as to only use translation data from the animation where needed.