我一直试图从bvh文件中获取运动数据并将其应用到我的3d模型中。我研究了bvh文件格式,并解析了它的数据并将数据写入文本文件,让我们给出新的扩展名( .motion)为文本文件。一切都很好,但是当我尝试将.motion数据应用到我的3d模型的关节时出现问题。
我还验证了旋转数据是否应用于正确的关节
所以除了休息姿势外,一切都很完美。有没有其他方法来克服这个休息位置差异。我可以使用矩阵乘法来解决这个问题吗?
答案 0 :(得分:1)
回答我自己的问题。我编写了python脚本,为每个帧写入了骨骼的全局旋转,我只是将旋转应用到其他骨架(具有不同的静止姿势),现在动画可以很容易地独立复制休息姿势。
pose.bone[boneIndex].matrix.decompose()[1] //global rotation of bone in Quaternion
如果我们将一个电枢的全局旋转应用到另一个电枢,则两个电枢的其余姿势不必相同。但是如果我们尝试将骨骼的局部(相对)旋转应用于其他电枢,那么这两个骨架应该有相同的休息姿势。