如何围绕给定轴旋转 bvh 运动?

How do I rotate bvh motion around a given axis?

我正在努力解决如何获取 bvh 文件格式中定义的旋转矢量并更改它们以围绕轴旋转骨架(对于所有帧)。

This suggests that "the values of the BVH [are] in the order ... for a good reason." Which is supported by blenders import_bvh.py 功能。

最初,我认为我可以改变根旋转。结果是电枢的面向方向确实围绕给定轴旋转,但围绕其中一个轴的旋转导致不真实的运动。最好通过观看以下内容来理解:

然后我尝试更改周围的所有旋转矢量(通过简单地对旋转矢量应用旋转),这变得非常混乱。

今天,我决定写一个小回购来改变 bvh 文件。

您可以看到 here 我只是对旋转向量应用旋转...我知道这是错误的,但我不知道该怎么做。我在想给定关节的旋转不需要改变幅度,只需改变它们发生的轴。

我最终旋转了根的旋转 ( 欧拉 ) 向量和位置向量以获得我想要的。为了获得每个帧的正确旋转 ( euler ) 向量,我将根旋转 ( euler ) 向量转换为旋转矩阵,对矩阵应用旋转,然后将其转换回旋转 ( euler ) 向量。

参考this来理解旋转矢量的意思

如果我的问题令人困惑,我深表歉意。写的时候很迷茫