bvh file

Its world space coordinate axes: (right hand)

 

The coordinate system in the .bvh file format is a method for describing human skeleton and motion, which is based on tree structures and Euler angles. Specifically, it includes the following aspects:

  • Bone structure: The HIERARCHY section in the .bvh file defines the hierarchical relationship of bones. Each node (JOINT or ROOT) represents a joint or an end point (End Site), and each node has an offset relative to the parent node ( OFFSET), and some degrees of freedom (CHANNELS), indicating along which axes the node can be rotated or translated.
  • Coordinate system: The coordinate system in the .bvh file is a right-handed coordinate system, that is, the x axis is right, the y axis is upward, and the z axis is forward. Each node has its own local coordinate system whose origin is the node's position and whose orientation is determined by the node's rotation angle. The local coordinate system of each node can start from the root node and apply the rotation and translation of the parent node to the child nodes in sequence to obtain its transformation matrix relative to the world coordinate system (that is, the local coordinate system of the root node).
  • Motion data: The MOTION part of the .bvh file records the motion data of each frame, each line represents a time point, and each number represents a value of a degree of freedom. The values ​​are in the order defined in the HIERARCHY section, usually translation first, then rotation, first z-axis, then x-axis, then y-axis. These values ​​are relative to the local coordinate system of the parent node, not the world coordinate system. The unit of rotation angle is degree (°), and the unit of translation distance is length unit (usually centimeter or meter).

If you want to know more details about the coordinate system of the .bvh file format, you can refer to the following pages 1 2 3 .

1. The BVH file format was developed by Biovision to store motion capture data. It contains two parts: bone hierarchy information and motion data.

2. The BVH file is divided into two parts: header and data. The head starts with the "HIERARCHY" keyword, which defines the bone hierarchy. The data section starts with the "MOTION" keyword and contains the actual motion data.

3. The head section recursively defines the bone hierarchy. Each joint contains offset, channel number and channel type information. The offset defines the position of the joint relative to the parent joint, and the channel defines the degrees of freedom of the joint.

4. Each line in the data section contains data for all joints for a time sample. The data order is the same as the order defined by the channel.

5. When analyzing motion data, calculate the local transformation matrix of each joint according to the hierarchical information, and then multiply it with its parent joint matrix in turn to obtain the final transformation matrix in the world coordinate system.

6. BVH uses the YXZ Euler angle rotation order. The rotation matrix of the three axes of XYZ can be calculated separately and then multiplied, or the complete rotation matrix can be calculated directly.

7. The BVH file uses a right-handed coordinate system with the Y axis up. Generally speaking, BVH is a relatively complete file format for expressing skeletal animation. It is very important to understand its file structure and analysis method to process such data. 

Documentation: 

Biovision BVH

おすすめ

転載: blog.csdn.net/u010087338/article/details/131966759