-1

我正在将 3d 坐标序列转换为 bvh 文件。我使用第一帧(不是 T 姿势)制作了 HIERARCHY,我想使用其余的帧来制作 MOTION 部分。

我不知道 bvh 格式中使用的欧拉角的确切含义。例如,当有如下图所示的两个向量 v1 和 v2

在此处输入图像描述

v1 = (X1, Y1, Z1) v2 = (X2, Y2, Z2)

这两个向量的长度相同,并且从 v1 旋转到 v2。

如何在 2 个向量之间获得旋转(bvh 格式的欧拉角)?

4

1 回答 1

0

我不知道这是否回答了 BVH 格式中欧拉角的“含义”,但在 BVH 中,给定帧中骨骼的欧拉角表示骨骼从基本位置旋转,而不是从前一帧旋转。基本位置是在 HIERARCHY 中定义的偏移量。您应该查看Meredith 和 Maddock解释的运动捕捉文件格式,他们对 BVH 文件格式进行了更深入的讨论。

要找到将向量 v1 旋转到向量 v2 的旋转矩阵,您可以使用 Jur van den Berg 的答案中提供的方程然后,您可以使用Shoemake 算法恢复欧拉角,注意旋转顺序会改变方程。但是如果你的骨骼的基本位置不在 v1 上,你需要从它的基本位置而不是从 v1 计算旋转。

于 2020-08-21T12:56:26.317 回答