Почему анимация останавливается через секунду после последнего кадра в three.js?

#animation #three.js

Вопрос:

Я-это three.js бегинджер, я хочу запустить анимацию в three.js, Я обнаружил проблему.

1-й gif-анимация в blender, а 2-й gif-анимация в three.js. Почему анимация в three.js остановлен после последнего кадра? Как сделать анимацию плавной?

Ниже приведен код:

 var mixers = [];
var clock = new THREE.Clock();

loader.load('models/gltf/shuilunji0820.glb', function (gltf) {
    gltf.scene.position.y = 90;

    scene.add(gltf.scene);

    render();

    var mixer = new THREE.AnimationMixer(gltf.scene.children[2]);

    mixer.clipAction(gltf.animations[1]).setDuration(2).play();
    mixers.push(mixer);
});

var time;
var animate = function () {
    requestAnimationFrame(animate);

    var delta = clock.getDelta();
    
    // repeat
    for (var i = 0; i < mixers.length; i  ) {
        mixers[i].update(delta);
    }

    renderer.render(scene, camera);
};
animate();
 

рис в блендере

рис в three.js

Комментарии:

1. Вы не возражаете, если я удалю вызов setDuration() ?

2. Я пробовал, но это не сработало. mixer.clipAction(gltf.animations[1]).play();