在Blender中,我的动画总长度为250ms。
但是当我将正在播放的动画播放到
mixer.time = 100/1000;
它只播放动画的一部分。
mixer = new THREE.AnimationMixer(cube);
gltf.animations.forEach((clip) => {
mixer.clipAction(clip).play();
});
});
...
function seekAnimationTime(animMixer, timeInSeconds){
animMixer.time=0;
for(var i=0;i<animMixer._actions.length;i++){
animMixer._actions[i].time=0;
}
animMixer.update(timeInSeconds)
}
如何使动画以搅拌器单位运行到某个“帧”或时间?
任何帮助表示赞赏。
答案 0 :(得分:1)
使用
var duration = 0;
...
mixer = new THREE.AnimationMixer(cube);
gltf.animations.forEach((clip) => {
duration = clip.duration;
mixer.clipAction(clip).play();
});
...
if(mixer!=null){
var tar = 50; // percentage you want to play to
var mul = duration*(tar/100)
seekAnimationTime(mixer,elapsed*mul);//elapsed is a time scale running from 0 to 1
}