Если вам нужны более продвинутые анимации, вы можете загрузить модели с анимацией, например, этот пистолет https://sketchfab.com/models/26adfd631730494ab0fc80c806eada77,, а затем загрузить его с помощью загрузчика GLTF (вы можете найти его в three.js / examples / js / loaders)
var loaderGLTF = new THREE.GLTFLoader();
loaderGLTF.load('gun.gltf', function (gltf) {
gltf.scene.traverse(function (child) {
var animations = gltf.animations;
if (animations && animations.length) {
mixer = new THREE.AnimationMixer(gltf.scene); // mixer is a global variable
animation = mixer.clipAction(animations[0]));
animation.play();
}
});
scene.add(gltf.scene);
}, (xhr) => xhr, (e) => console.error(e));
Только не забудьте обновить микшер в цикле рендеринга, clock = THREE.Clock () в функции init.
if (mixer) mixer.update(clock.getDelta());