BufferGeometry
Object3D
Raycaster
Camera
CubeCamera
PerspectiveCamera
OrthographicCamera
StereoCamera
Clock
Curve
CurvePath
Path
Shape
ShapePath
ArrowHelper
AxesHelper
BoxHelper
Box3Helper
CameraHelper
DirectionalLightHelper
GridHelper
PolarGridHelper
HemisphereLightHelper
PlaneHelper
PointLightHelper
SkeletonHelper
SpotLightHelper
Light
PointLight
RectAreaLight
SpotLight
DirectionalLight
HemisphereLight
LightShadow
PointLightShadow
AnimationLoader
AudioLoader
BufferGeometryLoader
CompressedTextureLoader
CubeTextureLoader
DataTextureLoader
FileLoader
ImageBitmapLoader
ImageLoader
Loader
LoaderUtils
MaterialLoader
ObjectLoader
TextureLoader
LoadingManager
Material
Box2
Box3
Color
Cylindrical
Euler
Frustum
Interpolant
Line3
MathUtils
Matrix3
Matrix4
Plane
Quaternion
AnimationAction
AnimationClip
AnimationMixer
AnimationObjectGroup
AnimationUtils
keyframeTrack
PropertyBinding
PropertyMixer
BooleanKeyframeTrack
QuaternionKeyframeTrack
StringKeyframeTrack
Audio
AudioAnalyser
AudioContext
AudioListener
PositionalAudio

AnimationMixer.clipAction()

描述

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() 中进行更新。可以通过 timedelta 参数指定时间的进度和时间流逝量。例如:mixer.update( clock.getDelta() );

参考资料