AnimationMixer.clipAction()
方法创建一个 AnimationAction
,用来播放指定的动画片段 (AnimationClip
)。
AnimationMixer.clipAction( clip, optionalRoot )
clip
(AnimationClip
):必需,要播放的动画片段。optionalRoot
(Object3D
):可选,用于确定动画的起始点。如果未提供,则使用 clip
中定义的动画起始点。返回新创建的 AnimationAction
。
const mixer = new THREE.AnimationMixer( character );
const clip = THREE.AnimationClip.findByName( animations, 'dance' );
const action = mixer.clipAction( clip, character );
action.play();
AnimationMixer
可以控制多个 AnimationAction
。clipAction
方法创建的 AnimationAction
可能不会立即开始播放。必须调用 play()
方法才能开始播放动画。AnimationAction
的参数可以通过对象字面量传递,例如 { loop: THREE.LoopRepeat, timeScale: 0.5 }
。halt()
方法停止动画并重置到初始状态,通过 stop()
方法停止动画但不重置,通过 reset()
方法重置动画,以及通过 setEffectiveWeight()
方法设置动画权重。mixer
实例可以在每一帧 update()
中进行更新。可以通过 time
和 delta
参数指定时间的进度和时间流逝量。例如:mixer.update( clock.getDelta() );
。