1.首先是你要确保模型中是有动画的
2.在加载模型后获取动画混合器并对设置动画的物体进行播放
javascript
loadModel() {
// 加载3D模型
const loader = new GLTFLoader();
loader.load('/models/donghua.glb', (gltf) => {
this.model = gltf.scene
this.scene.add(this.model);
// 获取动画混合器
const animations = gltf.animations;
if (animations && animations.length) {
this.mixer = new THREE.AnimationMixer(gltf.scene);
for (let i = 0; i < animations.length; i++) {
const action = this.mixer.clipAction(animations[i]);
action.play();
}
}
}, (xhr) => {
console.log(xhr, 'xhr');
}, (err) => {
console.log(err, 'err');
});
}
3.关键的一步在动画的函数中去实时更新模型动画update函数中的值越小转动越快
javascript
animate() {
this.controls.update()
this.renderer.render(this.scene, this.camera)
requestAnimationFrame(this.animate)
// 更新动画
if (this.mixer) {
this.mixer.update(0.05);
}
}
就愉快的转起来了