Skip to content
AssetLoom

Animation

Importing FBX and GLB characters into Unity: Humanoid rig setup and common fixes

Set up FBX characters as Unity Humanoid avatars, import clips, handle GLB files with glTFast, and fix scale, pose and material problems.

By AssetLoom Team, published , 7 min read

Unity reads FBX out of the box and turns a humanoid skeleton into an Avatar, which is what lets one set of clips play on many characters. GLB is different: Unity has no built-in glTF importer, so you add a package, and the result is not a Humanoid rig. Knowing that difference up front saves a lot of time.

This guide covers a Humanoid FBX import step by step, what to expect from a GLB, and the fixes for the problems we see most. The examples use our free Rigged Mannequin Base Character, whose bone names follow Unity’s Humanoid slots, but the steps apply to any humanoid character. Setting names are from the Unity 6 manual and match Unity 2022.3 LTS.

FBX or GLB in Unity?

How Unity handles FBX and GLB characters
FBXGLB (with Unity glTFast)
ImporterBuilt inAdd the Unity glTFast package
Humanoid AvatarYes, on the Rig tabNo; the docs don’t list Humanoid support
AnimationMecanim clips, retargetable when HumanoidLegacy or Mecanim clips on the original skeleton
MaterialsBasic; usually need adjustingglTF PBR materials with glTFast’s own shaders
Best forCharacters that share clipsProps, static models, characters with their own clips

Rule of thumb: if the character needs to share animations with other characters through Humanoid retargeting, use FBX. Our mannequin and animation packs ship an FBX made for Unity and Godot (Y up, metres) for this reason, alongside GLB and the Blender source. If you only have a GLB, see the last step of the GLB section.

Step by step: import the FBX

  1. Copy the FBX and its textures into a folder under Assets, for example Assets/Characters/Mannequin. Select the FBX in the Project window to see its Import Settings in the Inspector.
  2. On the Model tab, leave Scale Factor at 1 and Convert Units on. Leave Bake Axis Conversion off unless the model arrives rotated (see Common problems). Turn off Import Cameras and Import Lights if the file has none you need. Click Apply.
  3. Drag the model into the scene next to a default cube, which is 1 m on each side. Our mannequin is 1.75 m tall, so it should stand a little under two cubes high, feet on the ground.

Step by step: set up the Humanoid rig

  1. Open the Rig tab and set Animation Type to Humanoid. Set Avatar Definition to Create From This Model and click Apply.
  2. Click Configure. Unity opens the Avatar editor with the body map. Green slots are mapped; any red required slot needs a bone dragged onto it from the Hierarchy. A rig with Unity-style bone names, like ours, should map every slot on its own.
  3. Check the hands and the head tabs as well as the body. Fingers are optional, but if they are mapped, check that each finger bone is in the right slot.
  4. If the character binds in an A-pose, open the Pose menu at the bottom of the Mapping tab and choose Enforce T-Pose. Our mannequin binds in an A-pose, so it needs this step.
  5. Click Apply, then Done. The model now has an Avatar sub-asset, shown under the FBX in the Project window.

Optimize Game Objects and attachment bones

With Optimize Game Objects ticked on the Rig tab, Unity strips the bone transforms from the hierarchy. If you need a bone in the scene, for example a weapon socket, add it under Extra Transforms to Expose.

Step by step: import the animation clips

  1. Copy the clip FBX files into their own folder and select them all.
  2. On the Rig tab, set Animation Type to Humanoid and Avatar Definition to Copy From Other Avatar, then pick your character’s Avatar as the Source. Clips that share the character’s skeleton should use its avatar rather than making their own.
  3. On the Animation tab, check Import Animation is on. For each looping clip (walks, runs, idles), tick Loop Time, and Loop Pose if the loop match indicators show a small seam.
  4. Set the root transform options. For in-place cycles, tick Bake Into Pose for rotation and both positions. For root-motion clips, leave Root Transform Position (XZ) unbaked so the travel becomes root motion. The root motion guide explains each option.
  5. Click Apply, add the clips to an Animator Controller and assign it to the character’s Animator component.

Clips made for a different humanoid, for example from another pack, use their own avatar instead. Unity retargets between any two Humanoid avatars at runtime; our retargeting guide covers the details and the bone-name map.

Importing GLB files

  1. Open the Package Manager and add Unity glTFast (com.unity.cloud.gltfast). It registers itself as the importer for .glb and .gltf files.
  2. Copy the GLB into Assets. A GLB keeps its textures inside the file. A .gltf file needs its .bin and image files beside it, with the same names and relative paths.
  3. Select the file to see its import settings. glTFast can import animation for the legacy Animation system or for Mecanim, or skip it. Expand the file in the Project window to see the scenes, meshes, materials, clips and textures it made.
  4. If you need a Humanoid avatar, use the FBX version instead. If you only have a GLB, open it in Blender, export an FBX, and import that as described above.

glTFast clips play on the skeleton they came with, so GLB works well for props, environment pieces and characters that bring their own animations.

Materials and textures

  • Pink materials mean the shader doesn’t match your render pipeline. In URP or HDRP, convert the materials or assign the pipeline’s Lit shader.
  • Editing imported materials: on the FBX Materials tab, use Extract Materials and Extract Textures to get editable copies, or remap each imported material to one of your own under Remapped Materials.
  • Packed maps: an ORM texture (occlusion, roughness, metallic) doesn’t plug straight into Unity’s Lit shaders, which use smoothness rather than roughness. Repack it or use a Shader Graph. The PBR textures guide covers channel packing.
  • Normal maps: set the Texture Type to Normal map. Unity expects OpenGL-style normals, so DirectX-style maps need their green channel flipped.

Common problems

The character is tiny or huge

Check Convert Units and Scale Factor on the Model tab. A file exported in centimetres with the wrong unit tag can arrive 100 times off; correct the export, or set Scale Factor as a stopgap. Fix scale at import, not on the Transform, so the Avatar and root motion use the right size.

It lies down or faces the wrong way

Files from Z-up tools are converted on import. If the model arrives rotated, try Bake Axis Conversion so the fix is baked into the mesh rather than left on a parent transform. Characters should face +Z in Unity.

Configure shows red bones or the avatar is invalid

A required bone is missing or mapped to the wrong thing, such as the hand slot mapped to a finger. Drag the right bone onto each red slot. A rig with fewer than the required bones, or with the spine chain in the wrong order, can’t be Humanoid; use Generic instead.

Arms clip into the body or float away from it

The rest pose was never matched. Use Enforce T-Pose in Configure, then check the clip on the character next to the source rig.

The loop pops or the character drifts

Tick Loop Pose for cycles, and check Bake Into Pose for the parts of root motion you don’t want. If the character slowly turns, bake Root Transform Rotation.

Feet sink into the floor or hover

Under Root Transform Position (Y), set Based Upon to Feet and tick Bake Into Pose. Turning on Foot IK on the Animator state can also help on uneven ground.

A GLB has no Humanoid option

Expected: glTFast imports a GLB without a Humanoid avatar. Use the FBX for Humanoid characters.

Animation packs ready for Humanoid

Every AssetLoom animation pack uses the mannequin’s skeleton and includes FBX files for Unity. The listings were verified by re-importing every file in Blender; they were not opened in Unity for the listing, so run the checks above on your first import.

Browse them in Animations and Characters. Working in Unreal too? See importing an FBX character into Unreal Engine 5.

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