Animation 如何在LibGDX中同时运行多个动画

Animation 如何在LibGDX中同时运行多个动画,animation,libgdx,blender,Animation,Libgdx,Blender,我创建了一个混合器模型,它使用带有骨骼约束的电枢来设置模型的动画。将模型导出为.fbx文件并通过fbx conv传递后,我的动画被拆分为多个动画 每个动画最后都有一个类似于“MyObject | MyAnimation”的ID 换句话说,我需要一次运行所有这些子动画来运行我的完整动画 我尝试了几种方法。首先,我尝试为每个动画调用AnimationController.setAnimation(),但这不起作用,因为每次调用当前动画时,它都会取消当前动画 AnimationController.a

我创建了一个混合器模型,它使用带有骨骼约束的电枢来设置模型的动画。将模型导出为
.fbx
文件并通过fbx conv传递后,我的动画被拆分为多个动画

每个动画最后都有一个类似于“MyObject | MyAnimation”的ID

换句话说,我需要一次运行所有这些子动画来运行我的完整动画

我尝试了几种方法。首先,我尝试为每个动画调用
AnimationController.setAnimation()
,但这不起作用,因为每次调用当前动画时,它都会取消当前动画

AnimationController.animate()
方法听起来像是应该做我想做的事情,但我只是得到了与
.setAnimation()相同的结果

以下是我尝试的代码:

instance = new ModelInstance( myModel );
controller = new AnimationController( instance );

for( Animation animation : instance.animations ) {
    controller.animate( animation.id, 0 );
}
这不是
.animate()
的工作原理吗

另外,我不完全确定如何正确使用第二个参数
transitionTime
。这可能是问题所在吗?

正如Xoppa所指出的,报告中说:


如果要将多个动画应用于同一个ModelInstance,可以使用多个AnimationController,只要它们不相互干扰(不影响相同的节点)


示例:

ModelInstance myInstance = new ModelInstance( myModel );

AnimationController controllerOne = new AnimationController( myInstance );
AnimationController controllerTwo = new AnimationController( myInstance );

controllerOne.setAnimation( "FirstAnimationId", -1 );
controllerTwo.setAnimation( "SecondAnimationId", -1 );
然后在渲染循环中,您还需要在所有
AnimationController
s上调用
.update(delta)

controllerOne.update( Gdx.graphics.getDeltaTime() );
controllerTwo.update( Gdx.graphics.getDeltaTime() );

“如果要将多个动画应用于同一个ModelInstance,可以使用多个AnimationController,只要它们不相互干扰(不影响相同的节点)。”谢谢,这是可行的。我不知道我怎么会错过在维基上读到的。