如果模型有多个动画剪辑,您可以为每个剪辑创建一个新的AnimationAction对象,并使用AnimationMixer对象控制它们的播放。
例如,如果您的模型有两个动画剪辑,您可以按以下方式创建和管理动画:
const mixer = new THREE.AnimationMixer(model)
// 获取第一个动画剪辑并创建新的AnimationAction对象
const clip1 = gltf.animations[0]
const action1 = mixer.clipActon(clip1)
// 获取第二个动画剪辑并创建新的AnimationAction对象
const clip2 = gltf.animation[1]
const action2 = mixer.clipAction(clip2)
// 开始播放第一个动画剪辑
action1.play()
// 在一定时间后停止第一个动画剪辑并播放第二个动画剪辑
setTimeout(function() {
action1.stop();
action2.play();
}, 5000);
在这个例子中,我们首先创建了一个新的AnimationMixer对象,然后获取了模型的第一个和第二个动画剪辑,并为每个剪辑创建了一个新的AnimationAction对象。然后我们使用.play()方法开始播放第一个动画剪辑。
在5秒后,我们使用.stop()方法停止第一个动画剪辑,并使用.play()方法开始播放第二个动画剪辑。
需要注意的是,每个动画剪辑都可以具有不同的播放速度、持续时间和循环方式,因此您需要在创建AnimationAction对象时设置相应的参数,以便正确控制动画的播放。