混合樹

1: 狀態(tài)轉(zhuǎn)換 :是在規(guī)定時(shí)間,或者某一條件下:從一個(gè)動(dòng)作過渡到另一個(gè)動(dòng)作,在兩個(gè)不同的動(dòng)作過渡用這個(gè)會(huì)比較有好的過渡效果。

2. ? BlendTree 混合樹: 一般混合兩個(gè)相似的動(dòng)作,它們可以通過控制權(quán)重來決定混合程度。

混合樹創(chuàng)建步驟:1.右擊出現(xiàn)creat state -> from blend Tree.


2.雙擊新建的混合樹:

3.右擊添加兩個(gè)addMotion

4.創(chuàng)建兩個(gè)Motion:設(shè)置Blend Type 為1D ( 只有一個(gè)參數(shù),用于控制狀態(tài)之間的切換 )右上角的Parameter參數(shù) 為 Speed .然后通過設(shè)置speed在Unity 腳本中設(shè)置混合的權(quán)重:因?yàn)橹鹘巧仙侣鋾?huì)導(dǎo)致主角上升下落動(dòng)作融合切換,所以可以通過把主角的正負(fù)速度設(shè)置為Speed 這個(gè)參數(shù)的值;代碼如下

//這個(gè)插值可以使在主角踩在蹦床的時(shí)候要 向上彈跳的時(shí)候(沖力)(速度比較大)但是一下子動(dòng)作速度從負(fù)到正(比較大的速度)的融合異常。

float _speed = Mathf.Lerp(qiqiAnimator.GetFloat("Speed"), qiqiRigidbody.velocity.y, Time.deltaTime * 5); ? ? ? player.SetFloat("Speed", _speed);



5.speed參數(shù)的設(shè)置在左上角parameter上設(shè)置。

6. blendTree Type

1. ? 2D Simple Directional具有方向性的動(dòng)畫片段,同一方向上最好不要有多個(gè)動(dòng)畫片段

2 .? 2D Freeform Directional :主要用于控制具有方向性的動(dòng)畫片段,同一方向上允許有多個(gè)動(dòng)畫片段,(0,0)位置上必須有一個(gè)動(dòng)畫片段

3.? 2D Freeform Cartesian : 不一定具有方向性的動(dòng)畫片段.

下面:創(chuàng)建蹦床的九個(gè)動(dòng)作:把blendTree 設(shè)置2D笛卡爾坐標(biāo)系(上面第三種):給它們設(shè)置兩個(gè)參數(shù):分別為Horizontal ,Height,然后通過設(shè)置混合樹對應(yīng)參數(shù)的坐標(biāo)。這樣在蹦床上就可以通過主角碰到蹦床的時(shí)候根據(jù)蹦床要給予主角向上的力度大小歸一化大小來判斷蹦床深度混合程度以及主角踩在蹦床位置歸一化比例大小來判斷主角左中右動(dòng)畫的融合程度。

設(shè)置代碼類似上面。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容