UE4 腳部IK Foot Placement 的實現


首先是思路

Foot Placement 其實就是通過IK動畫調整骨骼把遊戲角色的雙腳固定在地面上,確保角色在斜坡或者凹凸的地形上時可以正確的將腳放

置在其表面上 :

在這裏插入圖片描述


文檔鏈接 : https://docs.unrealengine.com/en-US/Engine/Animation/IKSetups/index.html
你可以在 Content Examples 項目裏找到上面文檔裏的例子


虛幻的一篇官方文檔介紹了一些關於 Foot IK 的內容,不過並不是 “step-by-step” 的教程,只是一個概述,思路很簡單,就是通過射線斷角色雙腳到地面的距離計算出一個 偏移量(offset) ,然後根據這個 偏移量 來移動骨骼 調整雙腳上下的位置來貼近地面. 但是你只能通過關閉物理碰撞或是隻檢測射線來看到效果,而且如果角色雙腳到地面的距離大於最大距離的時候(骨骼的長度)整個角色就會顯得非常不自然,所以我們還需要控制整個身體偏移讓人物的腳可以到達地面,而且通過移動整個身體我們也不需要擔心碰撞的問題了.


在這裏插入圖片描述
在這裏插入圖片描述
下面是用藍圖實現的具體過程.


實現


  • Setup Animation Blueprint

    我們首先設置動畫藍圖,

    Two Bone Ik 節點控制兩個腳部骨骼的偏移:

    在這裏插入圖片描述

    Transomform Bone 節點來控制身體( root bone )的偏移:

    在這裏插入圖片描述
    設置完成後可以自行調整查看效果,之後在角色藍圖裏計算出 偏移量 後給再這三個 Offset 賦值.


  • 定義 Tracing Function ( Foot Trace )

    illustration
    紅色線段的長度是我們要求的值,Trace DistanceTrace HitTrace End 都是已知的.

    藍圖實現:
    在這裏插入圖片描述
    這裏的 ActorLocation 就是 CapsuleComponent 的中心點的位置,從 CapsuleComponent 的中心向下發射一條射線,長度是 CapsuleHalfHeight + TraceDistance,然後求出 Out Hit Trace End ( Trace End ) 與Out Hit Location ( Trace Hit ) 的距離再減去 TraceDistance 後我們就得到了需要return的 Foot Offset.


  • 計算 Hips Offset

    藍圖:
    在這裏插入圖片描述
    Hip Offset 的值爲兩個 Foot Offset 中最小的一個,不過不能大於0 ( min ~ 0 ).

  • Character Blueprint 賦值

    角色藍圖:
    在這裏插入圖片描述
    計算出 偏移量 後給傳遞給動畫藍圖.

Done.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章