three.js AnimationMixer

2023-02-16 17:26 更新

動畫混合器是用于場景中特定對象的動畫的播放器。當場景中的多個對象獨立動畫時,每個對象都可以使用同一個動畫混合器。

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

構(gòu)造器

AnimationMixer( rootObject : Object3D )

rootObject - 混合器播放的動畫所屬的對象

屬性

.time : Number

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

.timeScale : Number

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

方法

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

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

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

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

.getRoot () : Object3D

返回混合器的根對象

.stopAllAction () : this

停用混合器上所有預定的動作

.update (deltaTimeInSeconds : Number) : this

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

.setTime (timeInSeconds : Number) : this

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

.uncacheClip (clip : AnimationClip) : undefined

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

.uncacheRoot (root : Object3D) : undefined

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

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

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

源碼

src/animation/AnimationMixer.js


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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號