Mixamo 動畫 + 曲線位移 (Timeline + Curve)

可以透過這個網站下載動畫

並使用 https://terribilisstudio.fr/?section=MC#closearrow-up-right 將動畫轉換成 Unreal 可以使用的格式

曲線位移 (Timeline + Curve)

在這邊遇到一個問題是 Mixamo 的動畫是不包含根運動

所以在使用有位移的動畫時 角色會做完動畫後移回原點

如果啟用根運動則會導致角色在原地作動畫不移動

所以利用 曲線位移功能添加移動

第一步:創建曲線資源 (Curve Float)

曲線決定了位移的「節奏感」(是先快後慢,還是勻速)。

  1. 在 Content Browser 點擊右鍵 -> Miscellaneous -> Curve。

  2. 選擇 CurveFloat,命名為 C_BackDash

  3. 雙擊打開,新增兩個關鍵幀:

    • 點 A:時間 (Time) = 0.0, 數值 (Value) = 0.0

    • 點 B:時間 (Time) = 0.5 (假設動畫長度為 0.5 秒), 數值 (Value) = -300.0 (代表向後移動 300 單位)。

  4. 調整斜率:選中這兩個點,按右鍵選擇 Auto。這會產生一條 S 型曲線,讓位移有啟動感和煞車感,視覺上更自然。


第二步:在藍圖中設置 Timeline

回到你的角色藍圖(Character Blueprint),在觸發後跳的地點編寫邏輯:

  1. 添加 Timeline:右鍵搜尋 Add Timeline,命名為 BackDashTimeline

  2. 配置 Timeline:

    • 雙擊打開 Timeline,點擊左上角的 f+ 按鈕。

    • 在 External Curve 欄位選入剛才建立的 C_BackDash

    • 將 Length 設定為與動畫一致的長度(例如 0.5)。

  3. 連接節點:

    • Play from Start:連接到你的 Play Montage 執行線。

    • Update (關鍵點):這是 Timeline 運作的核心,它每一幀都會執行一次。


第三步:計算並套用位移 (核心邏輯)

你需要把曲線輸出的「數值」轉換成「世界座標空間的移動」。

  1. 從 Timeline 的輸出(剛才建立的曲線名稱)拉出一條線。

  2. 使用 Add Actor World Offset 節點:

    • Target:連接 Self

    • Delta Location:

      • 獲取角色的前方向量:Get Actor Forward Vector

      • 將向量乘以曲線輸出的數值(使用 Vector * Float 節點)。

      • 這會得到一個指向角色後方的向量。

    • Sweep (重要):一定要勾選! 勾選後,如果你後跳撞到牆壁,角色會停下來而不會穿進牆裡。

    • Teleport:不勾選(除非你不想要物理模擬)。

最後完成是這個樣子

一直接收 update 去調整位置 解決動畫不能移動的問題

Last updated