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,只要它们不相互干扰(不影响相同的节点)。”谢谢,这是可行的。我不知道我怎么会错过在维基上读到的。