fbx模型动画的播放和控制的基本方法

1、AnimationMixer是用于播放场景中特定对象上的动画的播放器。当场景中的多个对象独立动画时,每个对象可以使用一个AnimationMixer;

2、AnimationClip是一组可重用的关键帧轨迹,它们代表动画。

3、AnimationActions计划存储在AnimationClips中的动画的性能 ,下面介绍其相关属性:

(1)、clipWhenFinished :布尔值

 如果clipWhenFinished设置为true,则动画将自动 在最后一帧暂停。
 如果clampWhenFinished设置为false,则在操作的最后一个循环完成时,enable将自动切换为false,这样该操作就不会有           进 一步的影响。

(2)、loop : Number

 循环模式(可以使用setLoop更改)。默认值为 THREE.LoopRepeat(重复次数不限)
必须为以下常量之一:
THREE.LoopOnce-播放剪辑一次,
THREE.LoopRepeat-播放具有选择的重复次数剪辑,每次从末尾跳将剪辑直接播放到其开​​头
THREE.LoopPingPong-以选定的重复次数播放剪辑,并交替向前和向后播放。

(3)、paused : Boolean         

在此操作过程中,执行的AnimationClip的重复次数。可以通过setLoop设置。默认值为Infinity。
如果将循环模式设置为 THREE.LoopOnce,则设置此数字无效。

4、下面通过代码的方式来体现动画的播放:

Viewer.mixerOff = new THREE.AnimationMixer( Viewer.curtainGroup.children[0] );

actionOff = Viewer.mixerOff.clipAction( Viewer.curtainGroup.children[0].animations[0] );

actionOff.setLoop(THREE.LoopOnce);

actionOff.play();

5、动画的事件监听

Viewer.mixerOff.addEventListener( 'loop', function( e ) { …} ); // 监听事件循环播放的次数

Viewer.mixerOff.addEventListener( 'finished', function( e ) { …} ); // 监听动画是否播放完成

你可能感兴趣的:(技术)