Python 要从blender导出以在ogl中查看的正确骨骼数据?
编辑(原文如下): 因此,我提出了以下代码。我可以导出网格、骨骼结构和动画。我可以为一个简单的骨架设置动画。但由于某些原因,如果我为多个骨骼设置动画,则会出现问题,手臂将在错误的轴上移动 我的cpp代码如下: 我的python导出代码如下: 有人能告诉我我做错了什么吗?我想这可能和搅拌机里的骨头卷有关。我看过很多关于这方面的帖子 谢谢 (原职:) 我已经在这个问题上工作了一段时间,但仍然无法找出我缺少了什么,所以我希望有人能帮助我:3 对,我的应用程序中有如下代码:Python 要从blender导出以在ogl中查看的正确骨骼数据?,python,math,animation,blender,blender-2.50,Python,Math,Animation,Blender,Blender 2.50,编辑(原文如下): 因此,我提出了以下代码。我可以导出网格、骨骼结构和动画。我可以为一个简单的骨架设置动画。但由于某些原因,如果我为多个骨骼设置动画,则会出现问题,手臂将在错误的轴上移动 我的cpp代码如下: 我的python导出代码如下: 有人能告诉我我做错了什么吗?我想这可能和搅拌机里的骨头卷有关。我看过很多关于这方面的帖子 谢谢 (原职:) 我已经在这个问题上工作了一段时间,但仍然无法找出我缺少了什么,所以我希望有人能帮助我:3 对,我的应用程序中有如下代码: class bone {
class bone {
bone * child;
Eigen::Matrix4f local_bind_pose; // this i read from a file
Eigen::Matrix4f final_skinning_matrix; // i then transform each vertex by this matrix
// temporary variables
Eigen::Matrix4f inv_bind_pose;
Eigen::Matrix4f world_bind_pose;
}
即,一个简单的骨骼层次结构
我相信我可以通过以下方法计算出inv\u bind\u姿势
:
world_bind_pose = bone.parent.world_bind_pose * local_bind_pose
inv_bind_pose = world_bind_pose.inverse()
我知道,bind_pose
必须与父骨骼相关
我知道搅拌机是z=up,我用的是y=up
但我无法从blender导出此信息。我使用的是2.56.3版
矩阵的旋转部分是否为骨。矩阵\u局部
?翻译部分是否为bone.tail()-bone.head()
骨卷怎么样?这似乎确实影响了结果
一些参考资料:
非常感谢你 这看起来很复杂。我想你可以很容易地改变矩阵变换的应用顺序。试着从一个非常简单的系统开始,在这个系统中,你可以把一切都记在脑子里。是的,我认为这就是问题所在。我试图把这简化到最低限度。也许我会在没有皮肤代码的情况下看看它。。。谢谢你的回复。:)在blender>2.6中,您可以使用bpy\u extras.io\u utils.axis\u转换(请参阅:blender.org/documentation/blender\u python\u api\u 2\u 66a\u release/…)转换为openGL空间。