Animation Groups
Synchronize multiple animations:
// Create an animation group
const animationGroup = new BABYLON.AnimationGroup("myGroup");
// Add animations to the group
animationGroup.addTargetedAnimation(animation, box);
// Create and add rotation animation
const rotationAnimation = new BABYLON.Animation(
"rotationAnimation",
"rotation.y",
30,
BABYLON.Animation.ANIMATIONTYPE_FLOAT,
BABYLON.Animation.ANIMATIONLOOPMODE_CYCLE
);
const rotationKeys = [];
rotationKeys.push({ frame: 0, value: 0 });
rotationKeys.push({ frame: 60, value: Math.PI * 2 });
rotationAnimation.setKeys(rotationKeys);
animationGroup.addTargetedAnimation(rotationAnimation, box);
// Control the animation group
animationGroup.play(true); // true = loop
// animationGroup.pause();
// animationGroup.stop();
// animationGroup.reset();
// Adjust speed
animationGroup.speedRatio = 0.5; // Half speed
// Animation group events
animationGroup.onAnimationEndObservable.add(() => {
console.log("Animation group completed");
});