Retargeting: bone maps, rest poses and motion checks
Prepare source data, use current import settings and diagnose the result.
What shared animation requires
Identical bone names do not make two skeletons compatible. Hierarchy, reference pose, axis orientation, proportions and animation-track paths can differ. Retargeting coordinates these data; renaming alone does not fix everything else.
Bone Rest is a bone's reference transform. In Skeleton3D, local Bone Pose includes its position relative to the parent bone: it is not an extra offset automatically multiplied by Rest again. ResetBonePose() restores the local pose from Rest. Do not transfer formulas for a relative Rest offset without checking.
Prepare the source and target skeletons
- Import each character separately and verify its own animations first. A skinning/export failure before retargeting is not fixed by a name map.
- Open advanced model-import settings and select Skeleton3D. Assign a
BoneMapin Retarget. - Assign a profile. For a standard humanoid use
SkeletonProfileHumanoid; other structures need an appropriateSkeletonProfile. - Check every important mapping: profile bone → source skeleton bone. For example,
Hips → Pelvis. Editor name suggestions require review, especially left/right sides, spine and parent relationships. - Configure a consistent target naming scheme and skeleton paths for models sharing one AnimationLibrary. Check track paths and the skeleton's unique name if used.
A BoneMap resource by itself neither renames nor reposes bones in a live Skeleton3D. Assigning Profile in C# does not automatically inspect an arbitrary skeleton. Duplicate assignments to one source bone are possible—correct them before judging motion.
Choose reference-pose handling
The current importer provides retarget/rest_fixer/retarget_method:
| Method | Purpose and check |
|---|---|
| None | Do not perform the selected Rest conversion through this method; check other enabled import operations separately |
| Overwrite Axis | Align reference axes with the profile. Compare deformation and orientation after reimport |
| Use Retarget Modifier | Use the built-in modifier/original-skeleton workflow. It requires consistent bone names; enable renaming and inspect warnings |
These are built-in importer options. Selecting a modifier does not guarantee correct results for every rig. Retain the source model and settings; compare methods on the same animation, changing one parameter at a time.
Settings that affect the result
| Setting | What matters |
|---|---|
| Apply Node Transforms | Applies tree transforms during skeleton preparation. Check scale, rotation and neighboring objects, not just the character at rest |
| Normalize Position Tracks | Normalizes position tracks against reference height; MotionScale participates in movement scaling. Does not guarantee elimination of foot sliding |
| Remove Tracks → Except Bone Transform | Can remove accessory animation and other required tracks; inspect clip contents before enabling |
| Remove Tracks → Unimportant Positions | Removes some position tracks while retaining those important to the profile. Assess proportions and motion transfer |
| Remove Tracks → Unmapped Bones | None, Remove and Separate Library options, rather than a simple flag. Check tails, hair and additional bones |
| Fix Silhouette | Adjusts toward the profile pose. Inspect shoulders, elbows, knees and feet; large silhouette differences can require source edits |
The internal apply_node_transforms key and some labels use Node; this is an importer setting name, not a separate gameplay object model. Labels and values can be localized in the interface.
Verify after reimport
Play the same clip on the source and target characters. Check rest, walking, turns and extreme limb poses. Separately inspect hip height, root movement, foot contacts, accessories and tracks outside the skeleton.
| Symptom | Check |
|---|---|
| Clip does not move the character | Skeleton3D/bone track paths, AnimationLibrary, naming scheme and renaming |
| Bones bend in the wrong direction | Body sides, parents, Rest and profile axes |
| Proportions changed | Position tracks, normalization, tree transforms and scale |
| Accessories or their motion disappear | Track removal and unmapped bones |
| Modifier breaks motion | Bone renaming, import warnings and track paths |
See advanced model settings for general import actions. A correct name map is necessary; deformation and motion quality must be checked on the actual character.