This repository contains an example script to convert from a SMPL model to a bvh file.
The left side of the figure shows the SMPL grand truth and the right side shows the bvh data.
If you want to convert AMASS to bvh, please refer to my another repo.
This code is MIT licensed, but SMPL requires a separate license.
Please see SMPL official website.
You need to download SMPL models in ./data/smpl/smpl/.
You need to download smplx too.
To install from PyPi simply run:
pip install smplx[all]
After downloads all requirements, you can use smpl2bvh like this:
python smpl2bvh.py --gender MALE --poses ${PATH_TO_Y0UR_INPUT} --fps 60 --output ${PATH_TO_SAVE} --mirrorposes is an .npz file or .pkl file.
.npz file must contain rotations and trans as keys.
rotations value is an np.array consisting of [fnum, 24, 3] and trans value is the root transition consisting of [fnum, 3]
(fnum means frame number).
.pkl file must contain smpl_poses and smpl_scaling and smpl_trans as keys.
smpl_poses value is an np.array consisting of [fnum, 72] and smpl_scaling value is the scaling parameter. smpl_trans value is the root transition consisting of [fnum, 3].
The format of pkl file is the same as AIST++ dataset.
If you check --mirror as an argument, the mirrored motion is also saved.
After processing, you can find bvh file as --output.
For more information, please refer to smpl2bvh.py.
bvh.py and quat.py are based on Motion Matching.