1.區(qū)別
animation(老版)單個動畫控制施籍,占用內(nèi)存小一睁,animator(新版)控制多個動畫切換占用內(nèi)存大(狀態(tài)機(jī))
2.Animation
播放:foeach(animationState state in animation)
{
state.speed = 1.0f;
}
animation.Play();
用unity制作:
設(shè)置幾個關(guān)鍵幀素邪,比如1s的時候position.Y為1,10s時候為10,unity會自動將中間的部分插值,簡單的可以設(shè)置物體的position奏篙,rotation润努,scale等关斜,用起來很方便,其實相當(dāng)于序列幀動畫铺浇,只不過unity幫助我們實現(xiàn)了插值痢畜,如果用來做一些稍微復(fù)雜或者需要表現(xiàn)力的動畫會不太好用,多數(shù)應(yīng)用于一些ui界面的動畫鳍侣,簡單的透明度丁稀,位置變動的動畫等
3.Animator
unity新的動畫控制機(jī)制,占用內(nèi)存更大倚聚,也更加靈活
各個狀態(tài)的state线衫,靜止,行走惑折,跑授账,中間用一個條件判斷,完成各個狀態(tài)之間的切換惨驶,從而將各個狀態(tài)連接起來
4.幾種動畫
在實際的游戲中白热,用的最多的是這三種基本的動畫。
在關(guān)鍵幀動畫中粗卜,模型在每個關(guān)鍵幀中都是一個固定的姿勢棘捣,相當(dāng)于一個“快照”,通過在不同的關(guān)鍵幀中進(jìn)行插值平滑計算休建,可以得到一個較為流暢的動畫表現(xiàn)乍恐。關(guān)鍵幀動畫的一個優(yōu)勢是只需要做插值計算,相對于其他的動畫計算量很小测砂,但是劣勢也比較明顯茵烈,基于固定的“快照”進(jìn)行插值計算,表現(xiàn)大大被限制砌些,同時插值如果不夠平滑容易出現(xiàn)尖刺等現(xiàn)象呜投,
同時一個無法忽略的問題就是加匈,對于每幀動畫都需要進(jìn)行內(nèi)存占用,在幀數(shù)較多和頂點數(shù)較多的時候仑荐,這會帶來極大的內(nèi)存占用雕拼。當(dāng)然幀動畫也有其實際的應(yīng)用場景,目前在一些模型的表情動畫中會較多的應(yīng)用到幀動畫粘招,因為其動畫較少啥寇,同時可以用插值實現(xiàn)較為平滑的效果,不需要骨骼動畫洒扎。
關(guān)節(jié)動畫是早期出現(xiàn)的一種動畫辑甜,在這種動畫中,模型整體不是一個Mesh,
而是分為多個Mesh袍冷,通過父子的關(guān)系進(jìn)行組織磷醋,這樣父節(jié)點的Mesh就會帶動子節(jié)點的Mesh進(jìn)行變換,這樣層層的變換關(guān)系胡诗,就可以得到各個子Mesh在不同關(guān)鍵幀中的位置邓线。關(guān)節(jié)動畫相比于關(guān)鍵幀動畫,依賴于各個關(guān)鍵幀的動畫數(shù)據(jù)煌恢,可以實時的計算出各個Mesh的位置骇陈,不再受限于固定的位置,但是由于是分散的各個Mesh症虑,這樣在不同Mesh的結(jié)合處容易出現(xiàn)裂縫。
骨骼動畫是進(jìn)一步的動畫類型归薛,原理構(gòu)成極其簡單谍憔,但是解決問題極其有優(yōu)勢。將模型分為骨骼Bone和蒙皮Mesh兩個部分主籍,其基本的原理可以闡述為:模型的骨骼可分為基本多層父子骨骼习贫,在動畫關(guān)鍵幀數(shù)據(jù)的驅(qū)動下,計算出各個父子骨骼的位置千元,基于骨骼的控制通過頂點混合動態(tài)計算出蒙皮網(wǎng)格的頂點苫昌。在骨骼動畫中,通常包含的是骨骼層次數(shù)據(jù)幸海,網(wǎng)格Mesh數(shù)據(jù)祟身,
骨骼動畫:https://www.cnblogs.com/zblade/p/6986173.html
當(dāng)父節(jié)點骨骼發(fā)生變換的時候,子節(jié)點的骨骼都會做出相應(yīng)的變換物独,從而得到最新的位置袜硫、朝向等信息,骨骼發(fā)生變化挡篓,從而會帶動外在的mesh發(fā)生變化婉陷,所以整體的模型就表現(xiàn)出運動起來
建模時的模型是一個整體的骨骼帚称,有一個整體的骨骼,然后外觀上看實際上取決于mesh網(wǎng)格秽澳,骨骼的數(shù)量一般限制在30以內(nèi)闯睹,mesh無論是網(wǎng)格還是頂點數(shù)量往往都會比較龐大,骨骼動畫的核心原理就是担神,由一個骨骼點驅(qū)動厘托,通過矩陣計算其他所有骨骼點的變換及位置(矩陣),然后通過新的骨骼位置計算新的mesh位置派敷,外觀上顯示為平滑的動畫嫡霞,可以看出 這種方式相比于幀動畫來說更加通用和靈活,也更加平滑捞挥,幀動畫的流暢度很大程度取決于序列幀的數(shù)量浮创,而數(shù)量大往往意味著資源占用太大,
蒙皮計算的過程:頂點在模型坐標(biāo)系中位置 -> 骨骼空間中位置 -> 變換后的骨骼空間中的位置->模型坐標(biāo)系中的位置 -> 世界空間中的位置