libGDX:3d动画无效

时间:2013-09-23 12:24:44

标签: java animation 3d libgdx

我使用Blender和fbxconv创建了一个.g3db动画文件。现在,我的libGDX项目源代码如下所示:

public class test implements ApplicationListener {
// ...
 public ModelInstance fred
 public AnimationController animationController;

 public void create () {
    modelBatch = new ModelBatch();
    // ... 

    assets = new AssetManager();
    assets.load("data/fred.g3db", Model.class);
    loading = true;
 }

 private void doneLoading() {
    Model fredData = assets.get("data/fred.g3db", Model.class);

    fred = new ModelInstance(fredData);
    animationController = new AnimationController(fred);
    animationController.animate(fred.animations.get(0).id, -1, 1f, null, 0.2f);

    loading = false;
 }

 public void render () {
    if (loading && assets.update())
        doneLoading();
    camController.update();

    Gdx.gl.glViewport(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
    Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);

    if(!loading) {
    animationController.update(10);
        modelBatch.begin(cam);
        modelBatch.render(fred,lights);
        modelBatch.end();
    }
 }

// [...] 
}

当我打开这个游戏时,模型显示完美,但根本没有动画。我对libGDX游戏编程比较陌生,所以我不知道哪里可能出错了。有什么想法吗?

(我不知道这是否与任何事情有关,但是当我使用fbxconv转换fbx文件时,我收到了几个警告,所有这些都是这样的:

WARNING: Node XXX uses RrSs mode, transformation might be incorrect.

但如果我读到的有关此警告的内容是真的,那么实际上不应该导致任何问题......)

2 个答案:

答案 0 :(得分:6)

您是否启用了OpenGL ES2.0?另请查看:https://github.com/libgdx/libgdx/wiki/3D-animations-and-skinning。您应该为animationController.update()提供delta值。如果您使用blender创建FBX文件,则可以安全地忽略RrSs警告。

答案 1 :(得分:0)

引自here

  

不要将fbx文件拖放到fbx-conv上,它在大多数情况下都不起作用。