BVH(BioVision Hierarchy)是BioVision 等设备对人体运动进行捕获后产生文件格式的文件扩展名,是一种通用的人体特征动画文件格式。文件包含角色的骨骼和肢体关节旋转数据。
动画被分为 蒙皮 和 骨骼动作
BVH文件分为2个主要部分:骨架信息和数据块
骨架信息:按照层级关系,定义了如root leg 等位置和旋转分量,从而形成一个完整的骨架
数据块: 对应上面的骨架各部位标出每帧的数据信息
读取并保存运动数据
骨架层次信息保存了每个节点相对其父节点的位置信息,通过这些数据可以构造出骨架的初始姿态。BVH文件中使用的是右手坐标系,而DirectX中使用的是左手坐标系,在绘制图形的时候,需要将得到的数据坐标系转换成左手坐标系。
骨架中的各个关节节点相对父节点的位置读取并保存好之后,在渲染的时候,从根节点开始,依次求出每个关节在世界坐标中的位置,即可绘制出正确的骨架结构。
读取运动数据,首先从文件中读取运动的总帧数,然后建立动态数组保存运动数据。运动数据的每帧保存的信息是:根节点的平移量(X,Y,Z)+除了site 外所有节点的旋转信息(注意:旋转分量的次序是根据CHANNELS而定,旋转信息使用的是角度值表示的),每帧的旋转角度值,是相对于骨架的初始姿态的。
(世界坐标系是系统的绝对坐标系,在没有建立用户坐标系之前画面上所有点的坐标都是以该坐标系的原点来确定各自的位置的。
摄像机可安放在环境中的任意位置