1: 狀態轉換 :是在規定時間,或者某一條件下:從一個動作過渡到另一個動作,在兩個不同的動作過渡用這個會比較有好的過渡效果。
2. BlendTree 混合樹: 一般混合兩個相似的動作,它們可以通過控制權重來決定混合程度。
混合樹創建步驟:1.右擊出現creat state -> from blend Tree.
2.雙擊新建的混合樹:
3.右擊添加兩個addMotion
4.創建兩個Motion:設置Blend Type 為1D ( 只有一個參數,用于控制狀態之間的切換 )右上角的Parameter參數 為 Speed .然后通過設置speed在Unity 腳本中設置混合的權重:因為主角上升下落會導致主角上升下落動作融合切換,所以可以通過把主角的正負速度設置為Speed 這個參數的值;代碼如下
//這個插值可以使在主角踩在蹦床的時候要 向上彈跳的時候(沖力)(速度比較大)但是一下子動作速度從負到正(比較大的速度)的融合異常。
float _speed = Mathf.Lerp(qiqiAnimator.GetFloat("Speed"), qiqiRigidbody.velocity.y, Time.deltaTime * 5); player.SetFloat("Speed", _speed);
5.speed參數的設置在左上角parameter上設置。
6. blendTree Type
1. 2D Simple Directional具有方向性的動畫片段,同一方向上最好不要有多個動畫片段
2 . 2D Freeform Directional :主要用于控制具有方向性的動畫片段,同一方向上允許有多個動畫片段,(0,0)位置上必須有一個動畫片段
3. 2D Freeform Cartesian : 不一定具有方向性的動畫片段.
下面:創建蹦床的九個動作:把blendTree 設置2D笛卡爾坐標系(上面第三種):給它們設置兩個參數:分別為Horizontal ,Height,然后通過設置混合樹對應參數的坐標。這樣在蹦床上就可以通過主角碰到蹦床的時候根據蹦床要給予主角向上的力度大小歸一化大小來判斷蹦床深度混合程度以及主角踩在蹦床位置歸一化比例大小來判斷主角左中右動畫的融合程度。
設置代碼類似上面。
新聞熱點
疑難解答