new ModelAnimation()
ModelAnimationCollection#add 创建动画。不要直接调用构造函数。
从glTF资源派生的活动动画。活动动画是指当前正在播放或由于被添加到模型的
ModelAnimationCollection 而计划播放的动画。活动动画是动画的一个实例;
例如,同一个glTF动画可以有多个活动动画,每个都有不同的开始时间。
Members
-
animationTimeModelAnimation.AnimationTimeCallback
-
如果已定义,它将用于计算本地动画时间而不是场景时间。
- Default Value: undefined
readonly delaynumber
从 ModelAnimation#startTime 到开始播放的延迟(以秒为单位)。
- Default Value: undefined
readonly loopModelAnimationLoop
确定动画是否循环以及如何循环。
- Default Value:
ModelAnimationLoop.NONEreadonly multipliernumber
大于 1.0 的值会增加动画相对于场景时钟速度的播放速度;
小于 1.0 的值会降低速度。值为 1.0 时,
动画以映射到场景时钟速度的glTF动画速度播放。
例如,如果场景以2倍实时播放,即使 multiplier 为 1.0,
一个两秒的glTF动画也将在一秒钟内播放完毕。
- Default Value: 1.0
readonly namestring
标识模型中此动画的名称(如果存在)。
removeOnStopboolean
当为 true 时,动画在停止播放后被移除。
这比不移除稍微更高效,但如果时间倒流,动画将不会再次播放。
- Default Value: false
readonly reverseboolean
当为 true 时,动画反向播放。
- Default Value: false
startEvent
此动画开始时触发的事件。这可以用于,例如,当动画开始时播放声音或启动粒子系统。
此事件在场景渲染后的帧结束时触发。
- Default Value: new Event()
Example
animation.start.addEventListener(function(model, animation) {
console.log(`Animation started: ${animation.name}`);
});
readonly startTimeJulianDate
开始播放此动画的场景时间。当为 undefined 时,动画在下一帧开始。
- Default Value: undefined
stopEvent
此动画停止时触发的事件。这可以用于,例如,当动画停止时播放声音或启动粒子系统。
此事件在场景渲染后的帧结束时触发。
- Default Value: new Event()
Example
animation.stop.addEventListener(function(model, animation) {
console.log(`Animation stopped: ${animation.name}`);
});
readonly stopTimeJulianDate
停止播放此动画的场景时间。当为 undefined 时,
动画播放其完整持续时间,并可能根据 ModelAnimation#loop 重复播放。
- Default Value: undefined
updateEvent
此动画在每一帧更新时触发的事件。动画的当前时间(相对于glTF动画时间跨度) 会传递给事件,这允许例如,在相对于正在播放的动画的特定时间开始新的动画。
此事件在场景渲染后的帧结束时触发。
- Default Value: new Event()
Example
animation.update.addEventListener(function(model, animation, time) {
console.log(`Animation updated: ${animation.name}. glTF animation time: ${time}`);
});
Type Definitions
-
AnimationTimeCallback(duration, seconds){number}
-
用于计算ModelAnimation的本地动画时间的函数。
Name Type Description durationnumber 动画的原始持续时间(以秒为单位)。
secondsnumber 从动画开始后的秒数(场景时间)。
Returns:
Type Description number 返回本地动画时间。 Examples
// 使用实时时间进行模型动画(假设animateWhilePaused设置为true) function animationTime(duration) { return Date.now() / 1000 / duration; }// 偏移动画的相位,使其从周期的一半开始。 function animationTime(duration, seconds) { return seconds / duration + 0.5; }