This repository provides *Python3* scripts for manipulating and converting BVH motion capture files.
[![Latest version on PyPI](https://img.shields.io/pypi/v/bvhtoolbox.svg)](https://pypi.org/project/bvhtoolbox)
[![Test Python package](https://github.com/OlafHaag/bvh-toolbox/workflows/Test%20Python%20package/badge.svg)](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 `<script_name> -h` (substitute *<script_name>* 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.
Raw data
{
"_id": null,
"home_page": "https://github.com/olafhaag/bvh-toolbox",
"name": "bvhtoolbox",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3",
"maintainer_email": "",
"keywords": "bvh BioVision mocap motion-capture convert animation 3d",
"author": "Olaf Haag",
"author_email": "contact@olafhaag.com",
"download_url": "https://files.pythonhosted.org/packages/12/f3/aa1b966444d940dcf9288096ade111b17902a9b9df6409ee5af781fbdff5/bvhtoolbox-0.1.3.tar.gz",
"platform": "",
"description": "This repository provides *Python3* scripts for manipulating and converting BVH motion capture files.\n\n[![Latest version on PyPI](https://img.shields.io/pypi/v/bvhtoolbox.svg)](https://pypi.org/project/bvhtoolbox)\n[![Test Python package](https://github.com/OlafHaag/bvh-toolbox/workflows/Test%20Python%20package/badge.svg)](https://github.com/OlafHaag/bvh-toolbox/actions?query=workflow%3A%22Test+Python+package%22)\n\n# Installation\n* To install from PyPi: \n`pip install bvhtoolbox`\n* To install from github using development mode: \n`pip install -e git+https://github.com/OlafHaag/bvh-toolbox.git@master#egg=bvhtoolbox`\n* To install latest development version using regular mode (building the package): \n`pip install https://github.com/OlafHaag/bvh-toolbox/archive/master.zip`\n* The installation creates some console scripts you can use.\n\n# Console scripts\n## Manipulate BVH files\n### Rename joints in bvh files\n* Command: **bvhrenamejoints**\n\n### Remove frames from BVH files\n* Command: **bvhremoveframes**\n\n### Offset joint angles in BVH files\n* Command: **bvhoffsetjointangles**\n* 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.\n * The angles must be in the same order as the joint's channels in the BVH hierarchy.\n\n## Convert from or to BVH files\n\n### BVH to Cal3D XSF & XAF\n* Command: **bvh2xsf**\n* Command: **bvh2xaf**\n* Converts BVH files to the [Cal3D](https://github.com/mp3butcher/Cal3D/) XML skeleton (XSF) and animation (XAF) file formats.\n* The XAF files rely on the respective skeleton file.\n* XAF files have been tested to work with skeletons that were exported from 3DS Max and Blender.\n* I use the resulting xaf files in [Worldviz' Vizard](https://www.worldviz.com/vizard), so it's only been tested in this context.\n\n### BVH to Panda3D Egg animation file\n* Command: **bvh2egg**\n* Converts BVH files to the [Panda3D](https://panda3d.org/) animation file egg format.\n\n### BVH to CSV tables\n* Command: **bvh2csv**\n* Converts BVH to comma separated values tables.\n* Ouputs one file for hierarchy, one for joint rotations, and one for joint world positions.\n* Use `--hierarchy` to export the respective CSV file.\n* Using only the `--rotation` or the `--position` flag you can output only one of the transform tables.\n* The `--out` parameter only takes a directory path as an argument.\n* With the `--ends` flag the End Sites are included in the *_pos.csv file.\n\n### CSV tables to BVH\n* Command: **csv2bvh**\n* Takes 3 CSV files (hierarchy, rotation, position) previously exported using *bvh2csv* or created otherwise and builds a bvh file from them.\n\nAll 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.\n\n# How to run the console batch scripts\n* Open terminal.\n* If you've installed the bvhtoolbox into a conda/virtual environment, you have to activate it first.\n* type `<script_name> -h` (substitute *<script_name>* by one of the commands above) to get more information on the usage.\n\n# Notes\nThis package includes 20tabs' bvh module due to a lack of updates for this module on pypi.org.\n\n\n",
"bugtrack_url": null,
"license": "",
"summary": "Python module for reading, manipulating and converting BVH motion capture files.",
"version": "0.1.3",
"project_urls": {
"Bug Reports": "https://github.com/olafhaag/bvh-toolbox/issues",
"Homepage": "https://github.com/olafhaag/bvh-toolbox",
"Source": "https://github.com/olafhaag/bvh-toolbox/"
},
"split_keywords": [
"bvh",
"biovision",
"mocap",
"motion-capture",
"convert",
"animation",
"3d"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "1dce1319ba7a998d991f36320dddf6c8a4d82ddd0dafc4b1c896951c1c44c6dd",
"md5": "d6116aecf574cf9b45bb2229419c6408",
"sha256": "a9e61dcb45c62ac36d08c93a63add2dbef0c74a8644420f619f6471b825f1829"
},
"downloads": -1,
"filename": "bvhtoolbox-0.1.3-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "d6116aecf574cf9b45bb2229419c6408",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=3",
"size": 51698,
"upload_time": "2020-11-18T09:30:47",
"upload_time_iso_8601": "2020-11-18T09:30:47.304478Z",
"url": "https://files.pythonhosted.org/packages/1d/ce/1319ba7a998d991f36320dddf6c8a4d82ddd0dafc4b1c896951c1c44c6dd/bvhtoolbox-0.1.3-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "12f3aa1b966444d940dcf9288096ade111b17902a9b9df6409ee5af781fbdff5",
"md5": "efc0a8047ee26394913b2d92772595c5",
"sha256": "2d9dcae87cd6bfa28c89463450de84497e612682ca0697ea088fc7f2ef0f937f"
},
"downloads": -1,
"filename": "bvhtoolbox-0.1.3.tar.gz",
"has_sig": false,
"md5_digest": "efc0a8047ee26394913b2d92772595c5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3",
"size": 112366,
"upload_time": "2020-11-18T09:30:48",
"upload_time_iso_8601": "2020-11-18T09:30:48.698293Z",
"url": "https://files.pythonhosted.org/packages/12/f3/aa1b966444d940dcf9288096ade111b17902a9b9df6409ee5af781fbdff5/bvhtoolbox-0.1.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2020-11-18 09:30:48",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "olafhaag",
"github_project": "bvh-toolbox",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"tox": true,
"lcname": "bvhtoolbox"
}