Javascript 使用三个js时FBX动画无法正常运行
我对一些fbx模型上的动画有问题。例如,如果我有一个持续20秒的动画,模型将保持静止19秒,然后所有更改将在最后一秒左右发生。在其他fbx模型上,动画将正确运行。 我用于运行动画的代码如下所示: loader.load回调是:Javascript 使用三个js时FBX动画无法正常运行,javascript,three.js,fbx,Javascript,Three.js,Fbx,我对一些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.
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();
}
var clock=new THREE.clock();
var混频器=[];
功能(对象){
object.position.set(0,0,0);
object.mixer=new THREE.AnimationMixer(对象);
混合器。推送(对象。混合器);
console.log(对象);
对于(var a=0;a
动画代码是:
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);
}
function animate(){
请求动画帧(动画);
对于(变量i=0;i
有什么想法吗?谢谢 根据经验,我可以告诉您,fbx ascii导出过程(至少对于Autodesk Maya而言)并不总是提供
我在某个地方找到了这个问题的代码,让我找到它,然后将它添加到这个答案中。我遇到了同样的问题。当我从Maya导出动画时,需要一个接一个地排列动画,以便它们不会全部重叠。例如,剪辑1 1 1-10、剪辑2 11-33等。从第1帧开始将所有剪辑放入diff轨迹会导致所有动画彼此重叠,因此这不是一个选项(除非我不知道正确的导出工作流)。所以我想唯一的选择是创建一个函数,在片段的开始帧开始动画。你知道怎么做吗?我打算亲自试一试,但不知道你是否有手边的脚本。谢谢希望您已经找到答案-最初没有找到您的帖子。根据您的最终目标,您可以通过使用animation.startAt()将某些剪辑延迟开始播放,从而为要开始播放的剪辑设置不同的偏移量,或者您可以尝试分别启动每个剪辑,在上一个剪辑的结尾处使用类似以下事件触发它们:mixer.addEventListener('finished',function(e){…});有关这些方面的详细信息,请参见: