Back
Featured image of post About BVH

About BVH

When I was going to animate 3d joints to different characters to visualize some motions, I found that most of methods use bvh/fbx format. Not sure about the possibility so I check on the structure of bvh.

.bvh Structure

A BVH (Bounding Volume Hierarchy) is a tree structure on a set of geometric objects. It is widely used in animation.(Blender etc.) And the file contains ASCII text. There has 2 parts in total: ROOT, MOTION.

HIERARCHY

HIERARCHY is the HEAD keyword of .bvh file. Here is the BVH skeletal structure:

structure

ROOT

The first part of a BVH file identifies the Hips joint as the ROOT, which is to say it has no parent-joint. Below the ROOT section in the structure are JOINT sections, each containing information that specifies the location of the skeletal joint relative to its parent-joint. The relative location specifications for a parent-joint and its child-joint makes it possible to work out the length of the bone between the two joints. Where a joint has no child-joint, it is linked to an End Site section. The CHANNELS are for processing the time-framed sequence of translation and/or rotational co-ordinates provided in the second part of the BVH file.

root

MOTION

It is followed by information specifying, first, the number of FRAMES; second, the sampling rate per second after the keyword FRAME TIME; and third, a number of lines corresponding to the number of FRAMES, each line providing the tranlation and/or rotation co-ordinates to be processed according to the CHANNELS specifications in the first part of the file.

motion-file


Can 3d joint coordinates convert to BVH?

Possible. But BVH requires joint angles, not (only) 3-D keypoints, so it’s not trivially possible. I found a method: video2bvh, which realized it. Not sure about the quality but worth a try.

Licensed under CC BY-NC-SA 4.0