0

我已经从这里的教程https://www.youtube.com/watch?v=8n_v1aJmLmc复制了用于加载动画(从 mixamo 跳舞 twerk)到现有 fbx 模型(来自 mixamo 的 Douglas)的代码,但它不起作用,因为SimonDev 使用 118 版的 three.js,而我使用的是 128 版。

const loader = new FBXLoader();
//load model
loader.setPath('../models/characters/');
loader.load('Douglas.fbx', (fbx) => {
    //scale the model down
    fbx.scale.setScalar(0.0115);
/*
  fbx.traverse(c => {
    c.castShadow = true;
  });
  
*/
  //animate character
  const anim = new FBXLoader();
  anim.setPath('../models/characters/animations/');
  anim.load('Twerk.fbx', (anim) => {

    this.walkMixer = new THREE.AnimationMixer(anim);

    //creates animation action
    const walk = this.walkMixer.clipAction(anim.animations[0]);
    walk.play();
  });

 this.object.add(fbx);
});

这是我的更新功能

//animation
        if (this.walkMixer) {
            this.walkMixer.update(this.clock.getDelta());
        }

以前,当它与动画和 gltf 是相同的模型时,动画可以工作,但我试图将模型和动画分开,以便我可以从 mixamo 应用不同的动画。我的代码根本不加载动画,他只是站在 T 形姿势。我不知道从 mixamo 加载单独动画到当前 fbx 模型的当前代码是什么。我想知道如何,因为我想在同一个模型上加载和播放多个动画。

4

1 回答 1

0

我设法把它整理出来->这是由于我多次导入了 three.js

于 2021-05-28T01:26:03.363 回答