我已将动画Blender模型加载到LibGDX中,但它无法正确显示。很难确切地说出发生了什么。只是猜测,我的模型的部分似乎在世界空间和当地空间中旋转。
以下是GIF动画,了解它应该如何显示以及它在LibGDX中的显示方式:
正确的搅拌机版本:
不正确的LibGDX版本:
我真的不知道从哪里开始解决这个问题。我正在使用几种不同的骨骼约束,我认为这可能是原因。 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
任何人都有任何想法如何解决这个问题,或者至少是什么原因?
答案 0 :(得分:0)
我的问题是由我在Blender的FBX导出器上的设置引起的。要解决此问题,请关闭以下两个设置:
NLA Strips
All Actions
可在此页面的“烘焙动画”下找到有关这些设置的说明:http://code.blender.org/index.php/2014/06/supporting-game-developers-with-blender-2-71/
以下是以红色标出要关闭的设置的屏幕截图:
此答案仅与Blender 2.71或更高版本(可能)相关