本教程採用圖文教程+影片教程的多元化形式,我會為不同的知識點選擇適當的表達方式。教程內容將同步免費釋出於開發遊戲的老王(知乎|CSDN)的專欄《玩轉UE4/UE5動畫系統》。教程中使用的資源及工程將以開源專案的形式更新到GitHub:玩轉UE4上。
工程檔案: 玩轉UE4(GitHub)
0。 效果演示
文章目錄
1。 傳統實現方法
傳統的目標偏移主要是基於混合空間或目標偏移空間實現的,缺點就是需要準備相應的動畫資源,還有就是目標偏移的方向角度以及幅度侷限性都比較大,控制起來也不太直觀。
2。 Control Rig實現方法
2。1 原理
使用Control Rig實現,僅需要一個基礎的Pose資源就可以了。
本文是以射擊動畫為例,如果是其它動畫可以參考原理使用合適的骨骼。
射擊動畫的目標偏移主要是在脊椎上三根骨骼(spine_01,spine_02,spine_03)的扭轉作用下產生的。
注意:為了讓整個肢體平滑過渡,這三根骨骼扭轉的幅度由下到上依次增大。
使用Control Rig中的Aim節點讓骨頭朝向目標位置(目標位置所在空間為骨骼空間即root空間)。
關鍵引數是扭轉的第一軸向(Primary Axis)和第二軸向(Secondary Axis)以及目標型別Kind
2。2 Control Rig繫結
可以先新增一個AimCtrl控制器,並按照下面的測試連線實驗一下繫結效果。
測試連線
測試完繫結效果,可以把AimCtrl替換成實際實際位置,這裡的AimLocation就是目標在世界空間的位置座標,傳遞進入Control Rig以後首先要使用From World節點將它轉換到骨骼空間。
2。3 動畫藍圖
在動畫藍圖或者角色藍圖中獲取目標位置傳遞給Control Rig就可以了。
2。4 範圍限制
使用Control Rig實現目標偏移需要注意目標範圍的限制以防止骨骼出現不合理的扭曲。
範圍限制的方式很多而且要結合具體專案需求實現,範例專案中使用的方式比較偷懶也簡單粗暴(僅供參考):使用了一個射線檢測目標區域是否在角色前方。
綠色區域(Trigger Box)為目標範圍。
3。 小結
最近老王在挖掘Control Rig,逐漸感覺有了Control Rig以前一些零散的“傳統手藝”都有了更加靈活簡單且統一的實現方案,這對虛幻引擎的初學者也算是一個大大的福音了。
參考
UE4Tuts For You的油管教程。