【发布时间】:2014-03-21 17:59:07
【问题描述】:
我正在 Libgdx 中开发桌面/Android 应用程序,我想导入我在 Blender 中完成的动画。我已经从 Blender 中导出了 .obj 文件并成功地将它导入到 libgdx 中,所以现在我启动了应用程序,我可以看到模型但它没有移动。我应该怎么做才能让它根据关键帧移动?先感谢您!这是我的代码:
public void create () {
modelBatch = new ModelBatch();
environment = new Environment();
environment.set(new ColorAttribute(ColorAttribute.AmbientLight, 0.4f, 0.4f, 0.4f, 1f));
environment.add(new DirectionalLight().set(0.50f, 0.8f, 0.8f, -1f, -0.8f, -0.2f));
cam = new PerspectiveCamera(67, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
cam.position.set(20f, 20f, 20f);
cam.lookAt(0,0,0);
cam.near = 0.1f;
cam.far = 300f;
cam.update();
camController = new CameraInputController(cam);
Gdx.input.setInputProcessor(camController);
assets = new AssetManager();
assets.load("mod1.obj", Model.class);
loading = true;
}
private void doneLoading() {
Model mod1_model = assets.get("mod1.obj", Model.class);
ModelInstance mod1_instance= new ModelInstance(mod1_model);
mod1_instance.transform.setToTranslation(10f, 0, -10f);
instances.add(mod1_instance);
loading = false;
}
@Override
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);
modelBatch.begin(cam);
modelBatch.render(instances, environment);
modelBatch.end();
}
【问题讨论】:
-
不要使用 .obj 文件(obj 不支持动画)。而是使用 fbx-conv。另见:blog.xoppa.com/loading-models-using-libgdx