循环播放相同的动画动作而无需重置位置

时间:2020-05-01 23:15:55

标签: animation three.js

我试图在animationClip的gltf模型上运行步行动画。目的是每当按下向上箭头键时播放步行动画,并在按住该键时保持其运行。为此,只要第一个动画完成,我就播放动画,但是动画只播放一次。它触发完成事件,但是没有动画。

walkAction = mixer.clipAction(walkClip);
walkAction.loop = THREE.LoopOnce;
walkAction.enabled = true;
walkAction.paused = true;
walkAction.clampWhenFinished = true;
walkAction.play();

mixer.addEventListener('finished', restoreAnim);

function restoreAnim(event){
  mixer.removeEventListener('finished', restoreAnim);
  walkAction.play();
}

上面的代码是为了使角色保持移动,但是在第一次之后它会被锁定,但是完成的eventListener仍然会重复触发。

还有其他方法可以做到这一点。我正在使用mixamo中的行走动画,即使使用多个动画并更改了不同的属性,问题仍然存在。

0 个答案:

没有答案