将数据从ogl导出到骨骼混合器视图中?

2024-09-28 05:28:02 发布

您现在位置:Python中文网/ 问答频道 /正文

编辑(原文如下):

所以我想出了下面的代码。我可以导出网格,骨骼结构和动画。我可以制作一个简单骨架的动画。但由于某些原因,如果我设置多个骨骼的动画,就会出现问题,手臂将沿错误的轴移动。在

我的cpp代码在这里:http://kyuu.co.uk/so/main.cpp

我的python导出代码在这里:http://kyuu.co.uk/so/test.py

有人能告诉我我做错了什么吗?我想可能和搅拌机里的骨头卷有关。我看过很多关于这个的帖子。在

谢谢。在

(原帖:)

我已经在这个问题上工作了一段时间了,但仍然无法找出我缺少什么,所以我希望有人能帮助我:3

好的,我的应用程序中有如下代码:

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_bind_pose

^{pr2}$

我知道bind_pose一定是相对于父骨骼的。在

我知道搅拌机是z=up,我用的是y=up。在

但我无法从blender导出这些信息。我使用的是版本2.56.3。在

矩阵的旋转部分是bone.matrix_local?翻译部分是bone.tail() - bone.head()?在

骨卷呢?看来这确实影响了结果。在

一些参考文献:

http://www.gamedev.net/topic/571044-skeletal-animation-bonespace

http://blenderartists.org/forum/showthread.php?209221-calculate-bone-location-rotation-from-fcurve-animation-data

http://www.blender.org/development/release-logs/blender-240/how-armatures-work

http://code.google.com/p/gamekit/source/browse/trunk/Engine/Loaders/Blender/gkSkeletonLoader.cpp?spec=svn482&r=482

非常感谢你!在


Tags: 代码httpbind动画cppmatrixukco
1条回答
网友
1楼 · 发布于 2024-09-28 05:28:02

这看起来很复杂。我想你很容易搞乱矩阵变换的顺序。试着从一个非常简单的系统开始,你可以把所有的东西都记在脑子里。在

相关问题 更多 >

    热门问题