我已经从这里的教程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 模型的当前代码是什么。我想知道如何,因为我想在同一个模型上加载和播放多个动画。