codecamp

three.js AnimationMixer

动画混合器是用于场景中特定对象的动画的播放器。当场景中的多个对象独立动画时,每个对象都可以使用同一个动画混合器。

在使用手册的“下一步”章节中,“动画系统”一文对three.js动画系统中的不同元素作出了概述

构造器

AnimationMixer( rootObject : Object3D )

rootObject - 混合器播放的动画所属的对象

属性

.time : Number

全局的混合器时间(单位秒; 混合器创建的时刻记作0时刻)

.timeScale : Number

全局时间(mixer time)的比例因子说明: 将混合器的时间比例设为0, 稍后再设置为1,可以暂停/取消暂停由该混合器控制的所有动作。

方法

.clipAction (clip : AnimationClip, optionalRoot : Object3D) : AnimationAction

返回所传入的剪辑参数的AnimationAction, 根对象参数可选,默认值为混合器的默认根对象。第一个参数可以是动画剪辑(AnimationClip)对象或者动画剪辑的名称。如果不存在符合传入的剪辑和根对象这两个参数的动作, 该方法将会创建一个。传入相同的参数多次调用将会返回同一个剪辑实例。

.existingAction (clip : AnimationClip, optionalRoot : Object3D) : AnimationAction

返回传入剪辑的已有AnimationAction, 根对象参数可选,默认值为混合器的默认根对象。第一个参数可以是动画剪辑(AnimationClip)对象或者动画剪辑的名称。

.getRoot () : Object3D

返回混合器的根对象

.stopAllAction () : this

停用混合器上所有预定的动作

.update (deltaTimeInSeconds : Number) : this

推进混合器时间并更新动画通常在渲染循环中完成, 传入按照混合器的时间比例(timeScale)缩放过的clock.getDelta

.setTime (timeInSeconds : Number) : this

设置全局混合器到一个给定的时间,并相应地更新动画。当你需要在一个动画里跳转到一个精确的时间,该函数将是十分有用的。输入的参数将会被混合器的timeScale进行缩放。

.uncacheClip (clip : AnimationClip) : undefined

释放剪辑的所有内存资源

.uncacheRoot (root : Object3D) : undefined

释放根对象的所有内存资源

.uncacheAction (clip : AnimationClip, optionalRoot : Object3D) : undefined

释放动作的所有内存资源

源码

src/animation/AnimationMixer.js


three.js AnimationClip
three.js AnimationObjectGroup
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

参考

核心 / BufferAttributes

渲染器 / WebXR

开发者参考

WebGL渲染器

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }