https://github.com/olafhaag/bvh-toolbox
Scripts for manipulating and converting BVH files.
https://github.com/olafhaag/bvh-toolbox
animation bvh-files cal3d converts-bvh csv panda3d skeleton-joints
Last synced: 9 months ago
JSON representation
Scripts for manipulating and converting BVH files.
- Host: GitHub
- URL: https://github.com/olafhaag/bvh-toolbox
- Owner: OlafHaag
- License: mit
- Created: 2018-08-24T16:02:53.000Z (over 7 years ago)
- Default Branch: main
- Last Pushed: 2023-03-15T00:49:09.000Z (about 3 years ago)
- Last Synced: 2025-06-10T17:57:12.039Z (10 months ago)
- Topics: animation, bvh-files, cal3d, converts-bvh, csv, panda3d, skeleton-joints
- Language: Python
- Size: 2.19 MB
- Stars: 93
- Watchers: 6
- Forks: 17
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
This repository provides *Python3* scripts for manipulating and converting BVH motion capture files.
[](https://pypi.org/project/bvhtoolbox)
[](https://github.com/OlafHaag/bvh-toolbox/actions?query=workflow%3A%22Test+Python+package%22)
# Installation
* To install from PyPi:
`pip install bvhtoolbox`
* To install from github using development mode:
`pip install -e git+https://github.com/OlafHaag/bvh-toolbox.git@master#egg=bvhtoolbox`
* To install latest development version using regular mode (building the package):
`pip install https://github.com/OlafHaag/bvh-toolbox/archive/master.zip`
* The installation creates some console scripts you can use.
# Console scripts
## Manipulate BVH files
### Rename joints in bvh files
* Command: **bvhrenamejoints**
### Remove frames from BVH files
* Command: **bvhremoveframes**
### Offset joint angles in BVH files
* Command: **bvhoffsetjointangles**
* Can be used to additively offset joint angles in the BVH by supplying a csv table containing the mapping of joint names to euler angles.
* The angles must be in the same order as the joint's channels in the BVH hierarchy.
## Convert from or to BVH files
### BVH to Cal3D XSF & XAF
* Command: **bvh2xsf**
* Command: **bvh2xaf**
* Converts BVH files to the [Cal3D](https://github.com/mp3butcher/Cal3D/) XML skeleton (XSF) and animation (XAF) file formats.
* The XAF files rely on the respective skeleton file.
* XAF files have been tested to work with skeletons that were exported from 3DS Max and Blender.
* I use the resulting xaf files in [Worldviz' Vizard](https://www.worldviz.com/vizard), so it's only been tested in this context.
### BVH to Panda3D Egg animation file
* Command: **bvh2egg**
* Converts BVH files to the [Panda3D](https://panda3d.org/) animation file egg format.
### BVH to CSV tables
* Command: **bvh2csv**
* Converts BVH to comma separated values tables.
* Ouputs one file for hierarchy, one for joint rotations, and one for joint world positions.
* Use `--hierarchy` to export the respective CSV file.
* Using only the `--rotation` or the `--position` flag you can output only one of the transform tables.
* The `--out` parameter only takes a directory path as an argument.
* With the `--ends` flag the End Sites are included in the *_pos.csv file.
### CSV tables to BVH
* Command: **csv2bvh**
* Takes 3 CSV files (hierarchy, rotation, position) previously exported using *bvh2csv* or created otherwise and builds a bvh file from them.
All converters have a `--scale` parameter taking a float as an argument. You can use it to convert between units for the position and offset values.
# How to run the console batch scripts
* Open terminal.
* If you've installed the bvhtoolbox into a conda/virtual environment, you have to activate it first.
* type ` -h` (substitute ** by one of the commands above) to get more information on the usage.
# Notes
This package includes 20tabs' bvh module due to a lack of updates for this module on pypi.org.