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.
しかし、この警告について私が読んだことが真実であれば、実際には問題を引き起こさないはずです...)