Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opengl 设置md5模型的动画_Opengl_Animation_Graphics_Md5_Models - Fatal编程技术网

Opengl 设置md5模型的动画

Opengl 设置md5模型的动画,opengl,animation,graphics,md5,models,Opengl,Animation,Graphics,Md5,Models,我正试图在我用OpenGL编写的简单引擎中制作一个合适的md5动画。我有一个生物的行走动画。当动画到达终点时,它从起点开始(正如它应该的那样),但是它与起点处于相同的位置(生物向后移动,而不是向前移动)。这个问题有什么简单的解决办法吗。我试图通过GLTRANSTALEF手动移动它,但我就是找不到动画应该重新开始的正确位置 你的生物可能有某种“根”骨,与生物在太空中的位置相对应。“根”骨是生物骨架中不可见的骨头,它与生物一起移动,位于地板上。如果没有“根”骨,“骨盆”骨就可以了 因此,假设动画的最

我正试图在我用OpenGL编写的简单引擎中制作一个合适的md5动画。我有一个生物的行走动画。当动画到达终点时,它从起点开始(正如它应该的那样),但是它与起点处于相同的位置(生物向后移动,而不是向前移动)。这个问题有什么简单的解决办法吗。我试图通过GLTRANSTALEF手动移动它,但我就是找不到动画应该重新开始的正确位置

你的生物可能有某种“根”骨,与生物在太空中的位置相对应。“根”骨是生物骨架中不可见的骨头,它与生物一起移动,位于地板上。如果没有“根”骨,“骨盆”骨就可以了


因此,假设动画的最后一帧具有相同的姿势(但位置不同),在最后一帧获取该骨骼的位置(相对于骨骼层次的根),在第一帧减去同一骨骼的位置,将获得下一个动画循环的动画偏移

它成功了,但我仍然有一个小问题。在设置正确位置之前,有一个帧渲染了几毫秒。“我不知道如何处理它。”PawełJastrzębski:你应该搜索能够渲染md5动画和网格的开源工具——也许你遗漏了什么。我的意思是,如果你使用的模型是从实际的游戏,它应该包含所有必要的信息,使其在游戏中正确移动。但是,如果您自己导出了它,那么可能一开始就没有正确设置,并且缺少必要的信息。我从另一个示例下载了模型,它们的行为方式相同,尽管我正在使用的模型在另一个示例中的行为正常。@PawełJastrzębski:看,我自己还没有使用md5(我使用了几种自定义格式、x文件等)。如果我对md5的假设是正确的,那么我发布的解决方案应该是可行的。如果有一个开源的例子可以使用同一个模型,那么你应该把这个例子拆开,看看他们是怎么做的,然后把它和你自己的代码进行比较。如果我是你,我会这么做。你是对的,但在这种情况下,这并不容易。这很难解释,不过还是要谢谢你。