我对一些fbx模型的动画有一个问题。如果我有一个持续20秒的动画,模型将保持19秒不变,然后所有的更改都会在最后一秒钟左右发生。在其他fbx模型上,动画运行正常。用于运行动画的代码如下: loader.load回调是:
var clock = new THREE.Clock();
var mixers = [];
function(object){
object.position.set(0,0,0);
object.mixer = new THREE.AnimationMixer(object);
mixers.push(object.mixer);
console.log(object);
for (var a = 0; a < object.animations.length; a++){
var action = object.mixer.clipAction(object.animations[a]);
action.play();
console.log(action);
}
scene.add(object);
animate();
}动画代码是:
function animate() {
requestAnimationFrame(animate);
for(var i = 0; i < mixers.length; i++){
mixers[i].update(clock.getDelta());
}
render();
stats.update();
}
function render() {
if (mixer) {
mixer.update(clock.getDelta());
}
renderer.render(scene, camera);
}有什么想法吗?谢谢!
发布于 2017-11-12 20:22:09
根据经验,我可以告诉你,fbx ascii出口过程(至少对Autodesk Maya来说)并不总是提供
你最终得到的是--正如你所描述的--在动画片中很多时候什么都没发生。据我所见,它通常是落后在最后,但它肯定也可能是在开始。
您可以手动修复fbx文件,但是添加一个函数来设置第一个框架的开始时间(如果第一个帧是问题,从第二个框架开始)可能会更容易。
我有这方面的代码,让我找到它,然后我会把它加到这个答案中。
https://stackoverflow.com/questions/45811713
复制相似问题