A collection of active model animations. Access this using
Model#activeAnimations.
Members
-
animationAdded : Event
-
The event fired when an animation is added to the collection. This can be used, for example, to keep a UI in sync.
-
Default Value:
new Event()Example:
model.activeAnimations.animationAdded.addEventListener(function(model, animation) { console.log('Animation added: ' + animation.name); }); -
animationRemoved : Event
-
The event fired when an animation is removed from the collection. This can be used, for example, to keep a UI in sync.
-
Default Value:
new Event()Example:
model.activeAnimations.animationRemoved.addEventListener(function(model, animation) { console.log('Animation removed: ' + animation.name); }); -
The number of animations in the collection.
Methods
-
add(options) → ModelAnimation
-
Creates and adds an animation with the specified initial properties to the collection.
This raises the
ModelAnimationCollection#animationAddedevent so, for example, a UI can stay in sync.Name Type Description optionsObject Object with the following properties: Name Type Default Description nameString The glTF animation name that identifies the animation. startTimeJulianDate optional The scene time to start playing the animation. When this is undefined, the animation starts at the next frame.delayNumber 0.0optional The delay, in seconds, from startTimeto start playing.stopTimeJulianDate optional The scene time to stop playing the animation. When this is undefined, the animation is played for its full duration.removeOnStopBoolean falseoptional When true, the animation is removed after it stops playing.speedupNumber 1.0optional Values greater than 1.0increase the speed that the animation is played relative to the scene clock speed; values less than1.0decrease the speed.reverseBoolean falseoptional When true, the animation is played in reverse.loopModelAnimationLoop ModelAnimationLoop.NONEoptional Determines if and how the animation is looped. Returns:
The animation that was added to the collection.Throws:
-
DeveloperError : Animations are not loaded. Wait for the
Model#readyPromiseto resolve. -
DeveloperError : options.name must be a valid animation name.
-
DeveloperError : options.speedup must be greater than zero.
Examples:
// Example 1. Add an animation model.activeAnimations.add({ name : 'animation name' });// Example 2. Add an animation and provide all properties and events var startTime = Cesium.JulianDate.now(); var animation = model.activeAnimations.add({ name : 'another animation name', startTime : startTime, delay : 0.0, // Play at startTime (default) stopTime : Cesium.JulianDate.addSeconds(startTime, 4.0, new Cesium.JulianDate()), removeOnStop : false, // Do not remove when animation stops (default) speedup : 2.0, // Play at double speed reverse : true, // Play in reverse loop : Cesium.ModelAnimationLoop.REPEAT // Loop the animation }); animation.start.addEventListener(function(model, animation) { console.log('Animation started: ' + animation.name); }); animation.update.addEventListener(function(model, animation, time) { console.log('Animation updated: ' + animation.name + '. glTF animation time: ' + time); }); animation.stop.addEventListener(function(model, animation) { console.log('Animation stopped: ' + animation.name); }); -
-
addAll(options) → Array.<ModelAnimation>
-
Creates and adds an animation with the specified initial properties to the collection for each animation in the model.
This raises the
ModelAnimationCollection#animationAddedevent for each model so, for example, a UI can stay in sync.Name Type Description optionsObject optional Object with the following properties: Name Type Default Description startTimeJulianDate optional The scene time to start playing the animations. When this is undefined, the animations starts at the next frame.delayNumber 0.0optional The delay, in seconds, from startTimeto start playing.stopTimeJulianDate optional The scene time to stop playing the animations. When this is undefined, the animations are played for its full duration.removeOnStopBoolean falseoptional When true, the animations are removed after they stop playing.speedupNumber 1.0optional Values greater than 1.0increase the speed that the animations play relative to the scene clock speed; values less than1.0decrease the speed.reverseBoolean falseoptional When true, the animations are played in reverse.loopModelAnimationLoop ModelAnimationLoop.NONEoptional Determines if and how the animations are looped. Returns:
An array ofModelAnimationobjects, one for each animation added to the collection. If there are no glTF animations, the array is empty.Throws:
-
DeveloperError : Animations are not loaded. Wait for the
Model#readyPromiseto resolve. -
DeveloperError : options.speedup must be greater than zero.
Example:
model.activeAnimations.addAll({ speedup : 0.5, // Play at half-speed loop : Cesium.ModelAnimationLoop.REPEAT // Loop the animations }); -
-
Determines whether this collection contains a given animation.
Name Type Description animationModelAnimation The animation to check for. Returns:
trueif this collection contains the animation,falseotherwise. -
get(index) → ModelAnimation
-
Returns the animation in the collection at the specified index. Indices are zero-based and increase as animations are added. Removing an animation shifts all animations after it to the left, changing their indices. This function is commonly used to iterate over all the animations in the collection.
Name Type Description indexNumber The zero-based index of the animation. Returns:
The animation at the specified index.Example:
// Output the names of all the animations in the collection. var animations = model.activeAnimations; var length = animations.length; for (var i = 0; i < length; ++i) { console.log(animations.get(i).name); } -
Removes an animation from the collection.
This raises the
ModelAnimationCollection#animationRemovedevent so, for example, a UI can stay in sync.An animation can also be implicitly removed from the collection by setting
ModelAnimation#removeOnStoptotrue. TheModelAnimationCollection#animationRemovedevent is still fired when the animation is removed.Name Type Description animationModelAnimation The animation to remove. Returns:
trueif the animation was removed;falseif the animation was not found in the collection.Example:
var a = model.activeAnimations.add({ name : 'animation name' }); model.activeAnimations.remove(a); // Returns true -
Removes all animations from the collection.
This raises the
ModelAnimationCollection#animationRemovedevent for each animation so, for example, a UI can stay in sync.
