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.npzThe --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 doctorIt 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.
Download the extension ZIP for your platform from the project’s Releases page.
In Blender, open
Edit → Preferences → Get Extensionsand selectInstall from Diskfrom the menu.After installation, press
Nin the 3D Viewport and open theMotion2MixamoRigpanel.Click
Install Runtimeto install the runtime environment.Download and select the required SMPL-X model, then choose a Mixamo character FBX.
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 |
| Register and download from SMPL-X |
Mixamo character |
| Download a compatible character FBX from Mixamo |
Action video |
| A full-body video of one person |
Optional pose photo |
| 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.jpgYou 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 |
|---|---|
| Records inputs, execution details, frame rate, and frame count |
| Stores extracted human skeleton data for later reuse |
| Stores bone rotations mapped to the Mixamo skeleton |
| Stores the skinned character result, including animation for video input |
| Contains previews and comparison files |
Video mode: inspect extraction and retargeting
Video input produces the following previews:
File | What it shows |
|---|---|
| Recovered human skeleton motion |
| Retargeted Mixamo skeleton motion |
| The skinned character animation |
| 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
ings


