1: 狀態(tài)轉(zhuǎn)換 :是在規(guī)定時間,或者某一條件下:從一個動作過渡到另一個動作,在兩個不同的動作過渡用這個會比較有好的過渡效果。
2. BlendTree 混合樹: 一般混合兩個相似的動作,它們可以通過控制權(quán)重來決定混合程度。
混合樹創(chuàng)建步驟:1.右擊出現(xiàn)creat state -> from blend Tree.

2.雙擊新建的混合樹:

3.右擊添加兩個addMotion

4.創(chuàng)建兩個Motion:設(shè)置Blend Type 為1D ( 只有一個參數(shù),用于控制狀態(tài)之間的切換 )右上角的Parameter參數(shù) 為 Speed .然后通過設(shè)置speed在Unity 腳本中設(shè)置混合的權(quán)重:因為主角上升下落會導(dǎo)致主角上升下落動作融合切換,所以可以通過把主角的正負速度設(shè)置為Speed 這個參數(shù)的值;代碼如下
//這個插值可以使在主角踩在蹦床的時候要 向上彈跳的時候(沖力)(速度比較大)但是一下子動作速度從負到正(比較大的速度)的融合異常。
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具有方向性的動畫片段,同一方向上最好不要有多個動畫片段
2 . 2D Freeform Directional :主要用于控制具有方向性的動畫片段,同一方向上允許有多個動畫片段,(0,0)位置上必須有一個動畫片段
3. 2D Freeform Cartesian : 不一定具有方向性的動畫片段.
下面:創(chuàng)建蹦床的九個動作:把blendTree 設(shè)置2D笛卡爾坐標系(上面第三種):給它們設(shè)置兩個參數(shù):分別為Horizontal ,Height,然后通過設(shè)置混合樹對應(yīng)參數(shù)的坐標。這樣在蹦床上就可以通過主角碰到蹦床的時候根據(jù)蹦床要給予主角向上的力度大小歸一化大小來判斷蹦床深度混合程度以及主角踩在蹦床位置歸一化比例大小來判斷主角左中右動畫的融合程度。
設(shè)置代碼類似上面。

新聞熱點
疑難解答