N.B.: This toolbox is not maintained anymore. You can switch to Pose2Sim_Blender to get access to similar tools (and more).
Maya Mocap is a collection of open-source tools for Motion Capture in Maya.
Tested on Maya 2018 (python 2) and on Maya 2022 (python 3). Not tested on Linux nor MacOS yet.
-
First you need to install python packages in Maya. Open a command prompt (Windows -> cmd).
Type the following (replace<YEAR>
with your version):"C:\Program Files\Autodesk\Maya<YEAR>\bin\mayapy" -m pip install opencv-python pandas c3d numpy anytree toml
If it does not work, check there.
-
Clone the repository or just download the python pieces of code you need.
-
Open file at
<PATH_TO_DOCUMENTS_FOLDER>\maya\<YEAR>\maya.env
. Create it if it does't exist.
Type the following (replace what's in capital letters):MAYA_SHELF_PATH = <PATH_TO_MAYA_MOCAP>\shelves PYTHONPATH = <PATH_TO_MAYA_MOCAP>\scripts MAYA_PLUG_IN_PATH = <PATH_TO_MAYA_MOCAP>\plug-ins
You may also need to add this PYTHONPATH to your environment variables.
Windows -> Environment Variables -> New -> Name: PYTHONPATH, Value: <PATH_TO_MAYA_MOCAP>\scripts
That's it! After opening Maya, you should get a new shelf with new tools ready to be used.
maya_camToolbox.py
is a toolbox for various operations on cameras in Maya.
Lets you:
- set cameras in scene from chosen specs.
- or set cameras from calibration file (.toml).
- save a calibration file from cameras in scene.
- film image sequences from the cameras in scene.
- display image sequences in scene.
- reproject selected objects on image camera planes.
- display 3D path of selected objects (due to a bug in Maya 2018, works only for "all frames" in this version).
maya_objs.py
lets you:
- Displays a sequence of OBJ files in an "objStreamNode" (uses plug-in
objStreamNode
). - These OBJ don't need to be coherent in time (e.g. vertex number, etc).
- Assign textures to the meshes.
...Coming soon...
maya_osim.py
lets you:
- Import an .osim model.
- Animate it with .mot inverse kinematics.
maya_trc.py
lets you:
- Import trc files.
- Choose if you only want to display the markers, or also to construct the skeleton.
- In case you want the skeleton (and it's not Openpose body_25b), please refer to the section SKELETON DEFINITION.
maya_c3d.py
lets you:
- First convert c3d to trc files using
c3d2trc.py
. - Then import resulting trc files.
- Choose if you only want to display the markers, or also to construct the skeleton.
- In case you want the skeleton (and it's not Openpose body_25b), please refer to SKELETON DEFINITION in trc import.
⚠️ Beware that it only allows you to retrieve 3D points, you won't get analog data with this code.
Jeroen Hoolmans wrote an awesome free BVH (BioVision Hierarchy) importer.
It is slightly adapted here to be made compatibly with python 3 (Maya 2022 and above).
Instructions for importing FBX files can be found at this address.
c3d2trc.py
lets you:
- Convert c3d binary files to trc format.
- Usage: Open a command line in your cloned repository.
Typepython c3d2trc -i '<your_c3d_file>
orpython c3d2trc.py -i <your_c3d_file> -o <your_trc_file>
. ⚠️ Beware that it only allows you to retrieve 3D points, you won't get analog data with this code.**
This repository is meant to get more tools in the future. Please feel free to add your suggestions and/or code! Among others, I'd like to add:
- An Xsens importer.
- An Opensim importer (.osim model, and .mot inverse kinematics).
This library is open source for research purposes, and I want to improve it! So let me know (create a new GitHub issue or pull request, email us, etc.) if you:
- Find/fix any bug or know how to improve anything.
- Want to add/show some cool functionality/demo/project regarding motion capture in Maya. We would love to integrate your project to this repository!
David Pagnon (maintainer), contact@david-pagnon.com
Lionel Reveret, lionel.reveret@inria.fr
If you find our work useful in your research, please cite it.
The code found on this repository is free to use, edit, and redistribute under the BSD-3 licensing terms.