Class: ModelAnimation

ModelAnimation

new ModelAnimation()

通过调用 ModelAnimationCollection#add 创建动画。不要直接调用构造函数。

从glTF资源派生的活动动画。活动动画是指当前正在播放或由于被添加到模型的 ModelAnimationCollection 而计划播放的动画。活动动画是动画的一个实例; 例如,同一个glTF动画可以有多个活动动画,每个都有不同的开始时间。

See:

Members

如果已定义,它将用于计算本地动画时间而不是场景时间。

Default Value:
undefined

readonly delaynumber

ModelAnimation#startTime 到开始播放的延迟(以秒为单位)。

Default Value:
undefined

readonly loopModelAnimationLoop

确定动画是否循环以及如何循环。

Default Value:
ModelAnimationLoop.NONE

readonly multipliernumber

大于 1.0 的值会增加动画相对于场景时钟速度的播放速度; 小于 1.0 的值会降低速度。值为 1.0 时, 动画以映射到场景时钟速度的glTF动画速度播放。 例如,如果场景以2倍实时播放,即使 multiplier1.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
duration number

动画的原始持续时间(以秒为单位)。

seconds number

从动画开始后的秒数(场景时间)。

Returns:
Type Description
number 返回本地动画时间。
Examples
// 使用实时时间进行模型动画(假设animateWhilePaused设置为true)
function animationTime(duration) {
    return Date.now() / 1000 / duration;
}
// 偏移动画的相位,使其从周期的一半开始。
function animationTime(duration, seconds) {
    return seconds / duration + 0.5;
}