Skip to content
Go back

Bringing Mixamo Animations to Life in Godot: Our Manual Import Workflow

Published:  at  19:18

Bringing Mixamo Animations to Life in Godot: Our Manual Import Workflow

Here at 9to5grind.dev, we’re always looking for efficient ways to bring our characters to life. Mixamo is an incredible resource, offering a vast library of free character animations. However, getting those animations onto your specific custom character model in Godot sometimes requires a bit of manual setup, especially if you want fine control over the process.

While plugins exist, understanding the manual import and retargeting process in Godot is super valuable. Today, we’re sharing our step-by-step workflow for manually importing Mixamo animations and retargeting them onto a humanoid character in Godot Engine.

Alternative: Godot Addon

Before we start: It’s worth mentioning that there’s an addon in the Godot AssetLib called addons/mixamo_animation_retargeter designed to automate this process. Unfortunately, it didn’t work reliably for us, which is why we’re detailing the manual approach here. However, it’s definitely an alternative that might be worth trying out!

Prelude: What You’ll Need

  1. A Mixamo Account: You need to log in to upload your model and download animations. It’s free! Get one at Mixamo.
  2. Your Character Model (.fbx): Your model needs a humanoid bone skeleton compatible with Mixamo. You’ll upload this to Mixamo first.

Part 1: Getting the Animation from Mixamo

  1. Upload Your Model: Head over to Mixamo and upload your character’s .fbx file. Make sure it rigs correctly.
  2. Find Your Animation: Browse or search the Animations tab (e.g., search for Idle, Walk, Jump Attack). Select one you like.
  3. Preview: Mixamo will apply the animation to your uploaded character for a preview. Sweet!
  4. Download: Happy with the preview? Hit the Download button. Use these settings in the dialog:
    • Format: FBX (Binary or ASCII works, Binary is common)
    • Skin: With Skin (Crucial! This includes the mesh and skeleton, which helps Godot during import, even if you only need the animation data later).
    • Frames per Second: 30 (or match your project’s target)
    • Keyframe Reduction: None (usually best to keep all the data)
    • Click Download.

Part 2: Importing and Preparing the Animation in Godot

  1. Import FBX: Drag and drop the downloaded .fbx file into your Godot project’s FileSystem dock, preferably into a dedicated folder (e.g., res://assets/mixamo_imports/).

  2. Open Import Settings: Double-click the newly imported .fbx file in Godot’s FileSystem. This opens the “Advanced Import Settings” window.

    Godot's Advanced Import Settings window showing the imported FBX scene tree with AnimationPlayer selected.

  3. Setup BoneMap for Retargeting:

    • Select the Skeleton3D node in the scene tree on the left.
    • In the Inspector dock on the right, find the Retarget section.
    • Click the dropdown next to Bone Map and choose New BoneMap.
    • IMPORTANT: Click the floppy disk icon next to the new BoneMap and Save it (e.g., mixamo_bonemap.tres). You can reuse this BoneMap for all your Mixamo imports for this skeleton type!
    • Under Profile within the BoneMap resource, select SkeletonProfileHumanoid.
    • (Optional but Recommended): Expand the Bone Map resource in the inspector and check the bone mappings under Groups (like Body, Head, Legs, Arms) to ensure they correctly match your skeleton’s bone names. Godot does a good job guessing, but verification is key!

    Godot Inspector showing Skeleton3D Retarget section with BoneMap set to SkeletonProfileHumanoid and Body group selected.

  4. Rename the Skeleton (Crucial for Retargeting):

    • Still with the Skeleton3D selected, scroll down in the Inspector to the Bone Renamer section.
    • Make sure Rename Bones is checked (On).
    • In the Skeleton Name field, enter Skeleton. This needs to match the name of the Skeleton3D node in your actual character scene you’ll be applying the animation to later.

    Godot Inspector showing Skeleton3D Bone Renamer section with Skeleton Name field highlighted and set to 'Skeleton'.

  5. Extract the Animation:

    • In the scene tree on the left (inside the import settings window), select the AnimationPlayer node.
    • In the Inspector on the right, find the animation named mixamo_com (or similar default Mixamo name).
    • Expand the Save to File section for that animation.
    • Check the Enabled box (On).
    • Click the folder icon next to Path and choose a location and filename for the extracted animation resource (e.g., res://assets/animations/jump_attack.res). This .res file is the clean animation data we need.

    Godot Inspector showing AnimationPlayer settings, highlighting Save to File Enabled checkbox and Path selection for the 'mixamo_com' animation.

    (Reference image similar to the one showing the File Dialog shows the general layout where these settings are found) Godot's Advanced Import Settings window showing the main layout.

  6. Reimport: Once all settings (BoneMap, Bone Renamer, Save to File) are configured, click the Reimport button at the bottom of the import settings window.

  7. Check the Result: If successful, you should now find your named animation file (.res) in the folder you specified in step 5.

Part 3: Adding the Animation to Your Character’s AnimationPlayer

Now, let’s add that extracted animation to your actual character scene.

  1. Create Inherited Scene: Find your original character model .fbx in Godot (the one you uploaded to Mixamo). Right-click it and select New Inherited Scene. Save this new scene (.tscn) somewhere sensible (e.g., res://scenes/player.tscn). Working with inherited scenes is good practice.

  2. Open Your Character Scene: Open the .tscn file you just saved.

  3. Access Animation Management: Select the AnimationPlayer node within your character scene. In the bottom panel (Animation editor), click the Animation button, then select Manage Animations....

    Godot Animation panel with the 'Animation' dropdown menu open, highlighting 'Manage Animations...' option.

  4. Setup Animation Library:

    • The “Edit Animation Libraries” dialog appears. You’ll likely see a [Global] library or one inherited from the FBX.
    • Click on the library name (e.g., [Global]).
    • On the right side, click the small Disk icon. Choose Make Unique first, then click the Disk icon again and select Save As....
    • Save this library as a .tres file (e.g., res://assets/animations/player_animations.tres). This makes your animation set reusable and independent of the original FBX import.

    Godot Edit Animation Libraries dialog with the Disk icon menu open, highlighting 'Make Unique' and 'Save As...' options.

  5. Load Your Animation: In the same “Edit Animation Libraries” dialog, with your newly saved library selected, click the Open Folder (or “Load Animation”) icon. Navigate to and select the .res animation file you extracted in Part 2 (e.g., jump_attack.res). Click Open.

    (Reference image godot_mixamo_import_007 shows the File Dialog for loading) Godot Edit Animation Libraries dialog with the Open File dialog active, selecting a '.res' animation file.

  6. Confirm: The animation should now appear in the list within your animation library in the dialog. Click OK to close the dialog.

  7. Test It! Back in the Animation editor panel, click the animation dropdown list. Your newly imported animation (e.g., jump_attack) should be there! Select it and press Play to see it on your character.

    Godot Animation panel showing the animation selection dropdown, with the newly imported 'jump_attack' animation highlighted.

Success!

Congratulations! You’ve successfully imported a Mixamo animation manually and added it to your character’s AnimationPlayer in Godot. Repeat the process (starting from downloading a new animation, but reusing the BoneMap!) for all the animations you need.


This manual process gives you full control and helps you understand how Godot handles animation retargeting. It might seem like a few extra steps compared to plugins, but mastering it is a great skill for any Godot developer working with external animation sources.

Got questions or your own tips for this workflow? Share them in the comments below!

Happy Gamedev! - The 9to5grind.dev Team



Previous Post
It's a Wrap! Our DCJam2025 Entry "Enter the Mansion" is Submitted!
Next Post
Leveling Up Our Workflow: Automated Godot Deployments to Itch.io!