Skip to content
AssetLoom

Animation

Retargeting animations to your character in Unity, Unreal Engine 5 and Godot

Put humanoid clips on your own character: Unity Humanoid avatars, the UE5 IK Retargeter and Godot’s BoneMap, with a bone-name map and fixes.

By AssetLoom Team, published , 7 min read

Retargeting plays an animation made for one skeleton on another: a walk cycle authored on a mannequin, played on your own hero. All three major engines can do it, and all three need the same two things from you: a map that says which bone is which, and rest poses that line up. Get those right and most clips transfer cleanly. Get them wrong and you see twisted wrists, floating arms and sliding feet.

This guide covers Unity Humanoid avatars, the IK Retargeter in Unreal Engine 5 and Godot 4’s BoneMap, with a bone-name map you can keep open while you work. The examples use our free Rigged Mannequin Base Character, the skeleton every AssetLoom animation pack is built on.

What retargeting needs

Retargeting copies each bone’s rotation relative to its rest pose, then rescales the hips’ movement for the new character’s size. That has two consequences:

  • Bones must be matched by role, not by name. The engine needs to know that LeftUpperArm, upperarm_l and mixamorig:LeftArm are the same bone.
  • Rest poses must agree. If the source skeleton rests in a T-pose and yours in an A-pose, a clip that raises the arm 45 degrees raises it from a different starting point. The engine has to compare the two poses before anything else.

Proportions matter less than people expect: a short character can use a tall character’s run, because the engines scale hip movement by hip height. Very different shapes, such as a stocky character with a large belly, need manual pose fixes afterwards.

Bone-name map

The same humanoid bones under four common naming schemes. Left side shown; right side mirrors it (Right…, _r).

Humanoid bone names in Unity, Godot, the UE5 mannequin and Mixamo-style FBX files
RoleUnity Humanoid slotGodot SkeletonProfileHumanoidUE5 mannequinMixamo-style FBX
Root (on the floor)(not mapped)Rootroot(none)
Hips / pelvisHipsHipspelvisHips
Spine chainSpine, Chest, UpperChestSpine, Chest, UpperChestspine_01 to spine_05Spine, Spine1, Spine2
Neck and headNeck, HeadNeck, Headneck_01, neck_02, headNeck, Head
CollarboneLeftShoulderLeftShoulderclavicle_lLeftShoulder
Upper armLeftUpperArmLeftUpperArmupperarm_lLeftArm
ForearmLeftLowerArmLeftLowerArmlowerarm_lLeftForeArm
HandLeftHandLeftHandhand_lLeftHand
ThighLeftUpperLegLeftUpperLegthigh_lLeftUpLeg
ShinLeftLowerLegLeftLowerLegcalf_lLeftLeg
FootLeftFootLeftFootfoot_lLeftFoot
ToesLeftToesLeftToesball_lLeftToeBase

Mixamo-style names usually carry a mixamorig: prefix, left out above. Watch the false friends: Mixamo’s LeftArm is the upper arm and its LeftLeg is the shin. Our mannequin uses the Unity and Godot names (with a separate UE5-named FBX) and ships a skeleton_map.csv listing every bone, its parent and its name in each scheme. The animation packs include a Rig/bone_map.json with the same mapping.

Matching the rest pose

Each engine compares the source and target in a reference pose, but they disagree on which one. Unity’s Humanoid system works from a T-pose. Unreal compares the two skeletons in a retarget pose you can edit. Godot’s SkeletonProfileHumanoid uses a T-pose reference and can adjust A-pose models on import.

Our mannequin binds in an A-pose (arms 45 degrees down), like the UE5 mannequin, and every file includes a T_Pose take for tools that want one. The steps below show where each engine handles the difference.

Unity: Humanoid avatars

In Unity, any two Humanoid avatars can share clips; the retargeting happens automatically at runtime.

  1. Select your character’s FBX, open the Rig tab and set Animation Type to Humanoid with Avatar Definition: Create From This Model.
  2. Click Configure. Check that every required bone is mapped (green); fix any red slot by dragging the right bone onto it.
  3. Still in Configure, if the character is in an A-pose, open the Pose menu at the bottom of the Mapping tab and choose Enforce T-Pose, then Apply.
  4. Import the animation FBX files the same way. For clips that share a skeleton, use Avatar Definition: Copy From Other Avatar and pick the avatar they were made for.
  5. Drop the clips into your character’s Animator Controller. They now play on your character.

Unreal Engine 5: the IK Retargeter

For a quick result, right-click the animations in the Content Browser and choose Retarget Animation Assets. With Auto Generate Retargeter enabled, the engine builds the assets for you. For results you can tune, set them up yourself:

  1. Create an IK Rig for each skeletal mesh. In the IK Rig editor, use Auto Retarget Chains in the toolbar, then right-click the hips in the Hierarchy panel and choose Set Pelvis.
  2. Create the retargeter: Add (+) in the Content Browser, then Animation > IK Rig > IK Retargeter. Assign the source and target IK Rigs.
  3. Toggle Editing Retarget Pose in the toolbar and use Auto Align > Align All Bones so the target’s pose matches the source. Fix any remaining limb by rotating it, and use Snap Character to Ground if the character floats or sinks.
  4. Check the op stack (Add Default Ops fills it): Pelvis Motion transfers the hips, FK Chains copies limb rotations, Run IK Rig places hands and feet on IK goals, and Root Motion carries the root.
  5. Select clips in the Asset Browser panel and click Export Selected Animations.

Our mannequin and the UE5 mannequin both rest in an A-pose, so Auto Align has little to do between them.

Godot 4: BoneMap and SkeletonProfileHumanoid

Godot retargets at import time: it renames and re-rests every humanoid skeleton to one shared profile, so animations saved from one character play on any other imported the same way.

  1. Select the model in the FileSystem dock, click Advanced… in the Import dock, and select the Skeleton3D node.
  2. Under Retarget, create a new BoneMap and set its profile to SkeletonProfileHumanoid. Auto-mapping runs immediately; bones it could not place, or placed with the wrong parent, show as red or magenta.
  3. Keep Rename Bones and Unique Node on (the skeleton becomes %GeneralSkeleton), and enable Overwrite Axis under Rest Fixer.
  4. For an A-pose model, also enable Fix Silhouette. If the feet come out wrong, add the foot and toe bones to its filter.
  5. Import animation files with the same settings, save them as an AnimationLibrary, and add the library to your character’s AnimationPlayer.

When not to overwrite rests

Godot’s docs warn that Overwrite Axis can give poor results if the original bone rests matter, for example on a model with mesh-bound accessories. In that case keep the original rests and use a runtime retargeting approach instead.

Common problems

Foot sliding

Different leg lengths change how far a stride travels. In Unity, tick Foot IK on the Animator state. In Unreal, keep IK goals on the leg chains so feet are placed where the source put them. In Godot, match in-place playback speed to movement speed. If sliding started with root motion, see root motion vs in-place animation.

Twisted wrists or palms facing the wrong way

The two skeletons roll their arm bones differently, so a rotation that turns one palm down turns the other’s up. In Unreal, fix the hand and forearm in the retarget pose. In Godot, Overwrite Axis normally removes the difference. In Unity, check that the hand is mapped to the wrist, not a finger, and adjust Upper Arm Twist and Lower Arm Twist under Muscles & Settings to spread the forearm roll.

T-pose vs A-pose

Arms clipping into the body or hovering away from it mean the rest poses were never matched. Use Enforce T-Pose in Unity, Auto Align in Unreal or Fix Silhouette in Godot, then compare the target with the source’s T_Pose take side by side before retargeting a whole library.

Animation packs on the same skeleton

Every AssetLoom animation pack uses the mannequin’s 53-bone skeleton, so once one pack is retargeted to your character, the others use the same setup:

Browse them all in Animations.

Spotted a mistake or have a question? Email support@assetloom.io.