Creating custom motion for a 3D character can require considerable time and resources. Manual keyframe animation is labor-intensive, existing animation libraries may not meet a project’s requirements, and dedicated motion-capture systems introduce additional equipment and setup costs.

Motion2MixamoRig offers an open-source workflow for transferring human movement from ordinary video to a Mixamo-rigged 3D character.

The tool takes a video containing one clearly visible person and a compatible character FBX file as inputs. It estimates the person’s 3D motion, retargets that motion to the character’s skeleton, and exports a skinned, animated character in .glb format.

This workflow allows creators to use footage recorded with a smartphone as source material for character animation, without purchasing dedicated motion-capture hardware. The resulting animation can then be inspected and refined in a 3D application.

The project’s code is freely available, but this does not make the complete workflow cost-free. Users still need suitable computing resources, time to configure the environment, and permission to use the required models and assets. Motion2MixamoRig remains experimental; output quality should be evaluated for each recording and intended use. Project documentation

Contents

  • PART 01 | Tool overview

  • PART 02 | Core features

  • PART 03 | Getting started

  • PART 04 | Output files and practical use

  • LAST | Conclusion


PART 01 | Tool overview

Developed by MaxLiu22, Motion2MixamoRig is an open-source project for transferring human movement from video—or a static pose from a photograph—to a 3D character with an Adobe Mixamo rig.

The workflow consists of three stages.

Input: source material and a character file

The tool requires two types of input:

  • Human reference material: a full-body video of one person, or a full-body photograph.

  • A character file: an FBX file containing a character with a Mixamo rig.

Video is used to recover continuous movement. A photograph is used to recover a static pose.

Processing: motion estimation and retargeting

The video pipeline uses models including GVHMR, together with the SMPL-X body model, to estimate human motion and recover 3D poses.

It then retargets that movement to the Mixamo skeleton and produces a skinned character result.

Because the movement is estimated from video, the output requires inspection. It should not be treated as an exact measurement of the original performance.

Output: character files and previews

The tool exports a .glb character file along with skeleton, character, and comparison previews.

Photo mode produces a static pose. Its rotating preview allows the result to be viewed from different angles; it does not represent a continuous performance generated from a single image.

The project provides a Blender 4.2+ extension and a command-line tool, supporting interface-based operation and scripted processing respectively.


PART 02 | Core features

1. No dedicated motion-capture hardware required

Motion2MixamoRig accepts ordinary single-person video, reducing the equipment needed to experiment with video-based motion capture.

Users who already have a smartphone and a suitable computer can record a performance, generate a character animation, and then assess whether the result merits further refinement.

Source footage should contain only one person, with the entire body visible throughout the recording. Clear footage and adequate lighting help reduce uncertainty in the input, although they do not guarantee accurate recovery of every movement.

2. Retargeting designed for Mixamo rigs

The project is built around the Mixamo skeleton, making it relevant to workflows that already use Mixamo characters.

Users can supply a compatible character FBX and transfer the extracted motion to its rig.

Compatibility depends on the skeleton, not simply the file format. A model that can be exported as FBX is not necessarily suitable for this workflow.

3. Support for video and photo input

The two input types serve different purposes:

  • Video input: recovers continuous movement for character animation.

  • Photo input: recovers a static pose for testing or presentation.

Photo mode also produces still previews and a rotating comparison video for inspecting the retargeted pose.

4. Reusable motion data

After extraction, the tool saves the skeleton data as:

skeleton_motion.npz

The --skeleton parameter allows this data to be applied to another compatible character without repeating motion extraction from the source video.

This reduces redundant computation when testing the same movement on multiple characters. Processing time still depends on the hardware and the remaining generation steps.

5. Environment and asset diagnostics

The project includes a diagnostic command:

m2mr doctor

It checks the required environment and assets, then reports missing items and how to prepare them.

For a first installation, running this check can help identify configuration problems before processing begins.


PART 03 | Getting started

The tool can be used through its Blender extension or the command line. Photo mode is an alternative input option within the same workflow.

Option One: Use the Blender extension

This route suits users who prefer a graphical interface.

  1. Download the extension ZIP for your platform from the project’s Releases page.

  2. In Blender, open Edit → Preferences → Get Extensions and select Install from Disk from the menu.

  3. After installation, press N in the 3D Viewport and open the Motion2MixamoRig panel.

  4. Click Install Runtime to install the runtime environment.

  5. Download and select the required SMPL-X model, then choose a Mixamo character FBX.

  6. Select a single-person action video and click Generate Motion.

This workflow does not require writing code, but the initial setup still involves installing dependencies, downloading models, and preparing assets. Follow the installation instructions and platform requirements for the release you select.

Option Two: Use the command line

This route suits users who need explicit parameter control, motion-data reuse, or integration into a scripted workflow.

Prepare Python 3.11 or later. The following commands use macOS / Linux shell syntax:

git clone https://github.com/MaxLiu22/Motion2MixamoRig.git
cd Motion2MixamoRig

python -m venv .venv
source .venv/bin/activate

pip install --upgrade pip setuptools wheel
pip install "numpy>=1.26"
pip install --no-build-isolation "chumpy==0.70"
pip install -e .

The legacy dependency chumpy needs to be installed with build isolation disabled.

The project also recommends installing ffmpeg:

# macOS
brew install ffmpeg

# Ubuntu
sudo apt install ffmpeg

Next, prepare the required assets:

Asset

Location

Source

SMPL-X body model

assets/body_models/smplx/SMPLX_NEUTRAL.npz

Register and download from SMPL-X

Mixamo character

assets/mixamo/Y_Bot.fbx

Download a compatible character FBX from Mixamo

Action video

assets/video/dance.mp4

A full-body video of one person

Optional pose photo

assets/image/pose.jpg

A full-body photograph of one person

Check the configuration, then run the pipeline:

m2mr doctor
m2mr run

The first run downloads approximately 5GB of inference weights. Allow sufficient disk space and download time.

To specify a video and character:

m2mr run \
  --video assets/video/dance.mp4 \
  --rig assets/mixamo/Y_Bot.fbx

To reuse existing motion with another character:

m2mr run \
  --skeleton outputs/<previous-run-directory>/skeleton_motion.npz \
  --rig assets/mixamo/Vampire.fbx

Replace <previous-run-directory> with the actual output folder name.

When changing characters, include --skeleton to reuse the extracted data. Changing only --rig will repeat the motion-extraction stage.

Option Three: Recover a static pose from a photo

Prepare a photograph containing one person whose entire body is clearly visible, then run:

m2mr run --image assets/image/pose.jpg

You can also specify the target character:

m2mr run \
  --image assets/image/pose.jpg \
  --rig assets/mixamo/Vampire.fbx

Photo mode is suitable for static pose tests and character presentations. Use video input when continuous motion is required.


PART 04 | Output files and practical use

Each run creates a separate output directory:

outputs/<run-time>_<source-name>/
├── run.json
├── skeleton_motion.npz
├── mixamo_rotations.npz
├── mixamo_character.glb
└── videos/ or images/

The main files serve the following purposes:

File

Purpose

run.json

Records inputs, execution details, frame rate, and frame count

skeleton_motion.npz

Stores extracted human skeleton data for later reuse

mixamo_rotations.npz

Stores bone rotations mapped to the Mixamo skeleton

mixamo_character.glb

Stores the skinned character result, including animation for video input

videos/ or images/

Contains previews and comparison files

Video mode: inspect extraction and retargeting

Video input produces the following previews:

File

What it shows

human_skeleton.mp4

Recovered human skeleton motion

mixamo_skeleton.mp4

Retargeted Mixamo skeleton motion

mixamo_character.mp4

The skinned character animation

compare.mp4

A four-panel comparison of the source video, human skeleton, character skeleton, and final character

Start with compare.mp4. Check body orientation, hand and foot placement, and movement continuity before deciding what needs further adjustment.

Photo mode: inspect the static pose

Photo input produces corresponding still previews, together with:

before_after_360_compare.mp4

This file compares the original photograph with the character pose and uses a rotating view to show the 3D result.

Import into a production workflow

In Blender, import the character through:

File → Import → glTF 2.0 (.glb/.gltf)

After importing, use the information in run.json to set the scene frame rate and timeline range so playback matches the generated result.

For Unity, first configure an import workflow that supports glTF / GLB.


LAST | Conclusion

Motion2MixamoRig provides an accessible open-source route from ordinary video footage to 3D character animation.

Independent game developers can use it to test character actions and cutscene performances. Animators can turn their own recordings into preliminary animation material. Developers can explore integrating the pipeline into scripted production tools.

A practical approach is to treat the output as an animation draft that requires inspection and adjustment, then assess its suitability against the project’s requirements.

Open-source code also does not mean that every dependency uses the same license. The project documentation notes that the default SMPL-X terms do not cover general commercial use. Commercial projects therefore need to confirm the applicable terms for models, inference weights, and assets. Licensing notes

For users who want to explore custom character motion without purchasing dedicated capture equipment, the project offers a concrete starting point: prepare a clear single-person recording, complete a generation run, and evaluate the result before proceeding.

Project: Motion2MixamoRig on GitHub