內(nèi)容是看B站看到的一個(gè)極客學(xué)院的教學(xué)視頻,想寫(xiě)下來(lái)幫助自己記憶和方便查閱们豌,如果想了解更多請(qǐng)進(jìn)入B站搜索:【極客學(xué)院】Unity3D工程師 初級(jí)+中級(jí)+高級(jí)+資深工程師
動(dòng)畫(huà)分層主要使用Animator的Layers來(lái)實(shí)現(xiàn)
每一層的動(dòng)畫(huà)都有獨(dú)立的空間宵睦,動(dòng)畫(huà)設(shè)置好后可以同時(shí)播放记罚,下面的層可以有更高的優(yōu)先級(jí)。
每一個(gè)層里都有一個(gè)設(shè)置按鈕壳嚎,可以設(shè)置當(dāng)前動(dòng)畫(huà)桐智,比如weight動(dòng)畫(huà)的權(quán)重,如果每層都設(shè)置為一樣的數(shù)烟馅,那么同時(shí)觸發(fā)時(shí)下面的層優(yōu)先播放说庭。
那么如何實(shí)現(xiàn)動(dòng)畫(huà)的分離,比如跑動(dòng)的時(shí)候手部可以招手焙糟,或者做一些其他的動(dòng)作口渔。這要使用Mask來(lái)實(shí)現(xiàn),Asset窗口創(chuàng)建常見(jiàn)一個(gè)Avatar Mask穿撮,設(shè)置如下:
這樣設(shè)置的一個(gè)mask可以只播放這層的手部動(dòng)畫(huà)缺脉,我們是人形動(dòng)畫(huà),如果不是人形或者是需要精細(xì)的調(diào)整悦穿,可以使用Transform來(lái)做具體的調(diào)整攻礼,這里我們簡(jiǎn)單的設(shè)置成只要手部的動(dòng)畫(huà)。把這個(gè)mask賦值給我們新建的Layers栗柒。
設(shè)置好后礁扮,就可以實(shí)現(xiàn)在播放Base Layer動(dòng)畫(huà)的時(shí)候播放New Layer層的動(dòng)畫(huà)。
多層動(dòng)畫(huà)的設(shè)置
主要是設(shè)置Layers的設(shè)置窗口
Weight 是動(dòng)畫(huà)的權(quán)重瞬沦,為1可以完全播放太伊,為其他的值的時(shí)候是與上一層混合播放的。
Mask 設(shè)置動(dòng)畫(huà)的遮罩逛钻。
Blending 有兩種模式Override和Additive僚焦,覆蓋和添加,選擇Additive的時(shí)候可以和Weight來(lái)配合實(shí)現(xiàn)動(dòng)畫(huà)的混合播放效果曙痘。
IK Pass 是否啟用反向動(dòng)力學(xué)芳悲,我們前面說(shuō)的兩種腳本中都有與IK有關(guān)的回調(diào)函數(shù)立肘,勾選這個(gè)之后才可以正常使用那些函數(shù)。
Sync 勾選上后可以復(fù)制一個(gè)Layers名扛,如下:
我們復(fù)制了Source Layer谅年,他們兩個(gè)完全一樣,可以更改這層動(dòng)畫(huà)的內(nèi)容肮韧,比如把左手的動(dòng)畫(huà)鏡像成右手的融蹂。這兩個(gè)層的動(dòng)畫(huà)同時(shí)播放的時(shí)候假如,動(dòng)畫(huà)時(shí)間不一樣可以使用Timing來(lái)控制動(dòng)畫(huà)匹配哪個(gè)層的動(dòng)畫(huà)時(shí)間惹苗。勾選上Timing后就會(huì)將另一層的動(dòng)畫(huà)加快或者放慢來(lái)適應(yīng)本層的動(dòng)畫(huà)殿较。Weight也會(huì)影響效果,如果Weight等于0那么不會(huì)有任何效果桩蓉。
這些屬性都可以通過(guò)Animator類(lèi)的函數(shù)在腳本里面控制淋纲,比如Weight的值等。