September 4, 2009
BVH (Biovision) motion data is evil and I for one hate it! I wish when they had come up with the hierarchy, rotation order and transform methods they have firstly in world space, treated rotations as vectors and treated parenting as loosely as possible.
All you want for an animation format is a position of the joint, its direction and its spin – all in vectors with the position being in world space. This way any additional info like parenting can be bolted on without affecting firstly the initial pose or the animation. (as there keyed and set in world space)
The power of this is that, you could just have a set of positions and animation data without any vector info for direction or spin eg.
pos dir spn
[10,10,10] [0,0,0] [0,0,0]
And use it for raw mocap data such as TRC, or Vicom. But also by giving each joint an additional vector value for direction and spin you can use it as an intermediate format to a character rig. Parenting can still exist.
The power of this is that additionally, joints arent tied to the parents local space, and therefore you could store stretching infomation.