LibGDX错误地为具有骨骼约束的模型设置动画

时间:2014-08-26 00:56:37

标签: animation libgdx blender fbx

我已将动画Blender模型加载到LibGDX中,但它无法正确显示。很难确切地说出发生了什么。只是猜测,我的模型的部分似乎在世界空间和当地空间中旋转。

以下是GIF动画,了解它应该如何显示以及它在LibGDX中的显示方式:

正确的搅拌机版本: Correct Blender version

不正确的LibGDX版本: Incorrect LibGDX version

我真的不知道从哪里开始解决这个问题。我正在使用几种不同的骨骼约束,我认为这可能是原因。 LibGDX,fbx-conv,甚至.fbx文件格式是否仅支持某些blender约束。

以下是我的LibGDX代码的相关部分,以防我做错了什么:

动画设置代码:

Model model = assetManager.get("pump.g3db", Model.class);
instance = new ModelInstance(model);
instances.add( instance );

// Run all animations on a loop
for( Animation animation : instance.animations ) {
    AnimationController controller = new AnimationController( instance );
    controller.setAnimation( animation.id, -1 );
    animationControllers.add( controller );
}

渲染循环代码:

Iterator<AnimationController> acIteratore = animationControllers.iterator();
while ( acIteratore.hasNext() ){
    AnimationController ac = acIteratore.next();
    ac.update( Gdx.graphics.getDeltaTime() );
}

这是.blend文件,如果有人想查看骨架和约束: http://www.pasteall.org/blend/31195

任何人都有任何想法如何解决这个问题,或者至少是什么原因?

1 个答案:

答案 0 :(得分:0)

我的问题是由我在Blender的FBX导出器上的设置引起的。要解决此问题,请关闭以下两个设置:

  • NLA Strips
  • All Actions

可在此页面的“烘焙动画”下找到有关这些设置的说明:http://code.blender.org/index.php/2014/06/supporting-game-developers-with-blender-2-71/

以下是以红色标出要关闭的设置的屏幕截图: Bad settings

此答案仅与Blender 2.71或更高版本(可能)相关