three.js AnimationMixer

2023-02-16 17:26 更新

動(dòng)畫混合器是用于場(chǎng)景中特定對(duì)象的動(dòng)畫的播放器。當(dāng)場(chǎng)景中的多個(gè)對(duì)象獨(dú)立動(dòng)畫時(shí),每個(gè)對(duì)象都可以使用同一個(gè)動(dòng)畫混合器。

在使用手冊(cè)的“下一步”章節(jié)中,“動(dòng)畫系統(tǒng)”一文對(duì)three.js動(dòng)畫系統(tǒng)中的不同元素作出了概述

構(gòu)造器

AnimationMixer( rootObject : Object3D )

rootObject - 混合器播放的動(dòng)畫所屬的對(duì)象

屬性

.time : Number

全局的混合器時(shí)間(單位秒; 混合器創(chuàng)建的時(shí)刻記作0時(shí)刻)

.timeScale : Number

全局時(shí)間(mixer time)的比例因子說明: 將混合器的時(shí)間比例設(shè)為0, 稍后再設(shè)置為1,可以暫停/取消暫停由該混合器控制的所有動(dòng)作。

方法

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

返回所傳入的剪輯參數(shù)的AnimationAction, 根對(duì)象參數(shù)可選,默認(rèn)值為混合器的默認(rèn)根對(duì)象。第一個(gè)參數(shù)可以是動(dòng)畫剪輯(AnimationClip)對(duì)象或者動(dòng)畫剪輯的名稱。如果不存在符合傳入的剪輯和根對(duì)象這兩個(gè)參數(shù)的動(dòng)作, 該方法將會(huì)創(chuàng)建一個(gè)。傳入相同的參數(shù)多次調(diào)用將會(huì)返回同一個(gè)剪輯實(shí)例。

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

返回傳入剪輯的已有AnimationAction, 根對(duì)象參數(shù)可選,默認(rèn)值為混合器的默認(rèn)根對(duì)象。第一個(gè)參數(shù)可以是動(dòng)畫剪輯(AnimationClip)對(duì)象或者動(dòng)畫剪輯的名稱。

.getRoot () : Object3D

返回混合器的根對(duì)象

.stopAllAction () : this

停用混合器上所有預(yù)定的動(dòng)作

.update (deltaTimeInSeconds : Number) : this

推進(jìn)混合器時(shí)間并更新動(dòng)畫通常在渲染循環(huán)中完成, 傳入按照混合器的時(shí)間比例(timeScale)縮放過的clock.getDelta

.setTime (timeInSeconds : Number) : this

設(shè)置全局混合器到一個(gè)給定的時(shí)間,并相應(yīng)地更新動(dòng)畫。當(dāng)你需要在一個(gè)動(dòng)畫里跳轉(zhuǎn)到一個(gè)精確的時(shí)間,該函數(shù)將是十分有用的。輸入的參數(shù)將會(huì)被混合器的timeScale進(jìn)行縮放。

.uncacheClip (clip : AnimationClip) : undefined

釋放剪輯的所有內(nèi)存資源

.uncacheRoot (root : Object3D) : undefined

釋放根對(duì)象的所有內(nèi)存資源

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

釋放動(dòng)作的所有內(nèi)存資源

源碼

src/animation/AnimationMixer.js


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)