iT邦幫忙

2025 iThome 鐵人賽

DAY 6
0
Software Development

30 天用 Unreal Engine 5 C++ 開發遊戲系列 第 6

# Day 6|加入 Root Motion 閃避動畫

  • 分享至 

  • xImage
  •  

延續昨天的 Dodge 功能,今天要為角色加上 閃避動畫,並利用 Root Motion 直接控制角色位移,省去額外調整速度與位移的麻煩。

StartDodge() 裡我額外加了一行:

GetWorldTimerManager().ClearTimer(DodgeTimerHandle);

這樣可以避免 Timer 重複設定造成衝突。

這裡我使用的是 UE5.6 Template 內建的 AM_Dash Animation Montage
如果要改成自己的閃避動畫,需要先在 Animation Sequence 中勾選 Enable Root Motion,再轉成 Montage 來使用。

https://ithelp.ithome.com.tw/upload/images/20250920/20171036ptxTB4DRFs.png

噢!還有我在 Do Dodge 加了 Input 來使用動畫的長度作為閃避持續時間:

void AiThome30daysCharacter::DoDodge(UAnimMontage* AnimMontage, float DurationOffset)
{
	DodgeDuration = AnimMontage->GetPlayLength() + DurationOffset;

在 .h 也要做修改

virtual void DoDodge(UAnimMontage* AnimMontage, float DurationOffset);

下面是就是簡單的接起來
如果 bIsDodging 等於 true,做一次播放動畫並覆蓋目前的動作動畫。
如果 bIsDodging 等於 false,重製 Do Once。

https://ithelp.ithome.com.tw/upload/images/20250920/20171036Fshazk8fVx.png

完成後角色就能順暢地播放閃避動畫,並透過 Root Motion 自然帶動角色移動。


上一篇
# Day 5|閃避功能製作
下一篇
# Day 7|實作目標鎖定系統(Target Lock System)
系列文
30 天用 Unreal Engine 5 C++ 開發遊戲7
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言