目錄
前言
效果
步驟
一、坐騎的父類
二、將角色附加到坐騎
三、添加坐姿
四、騎上坐騎
五、從坐騎上下來
前言
在上一篇(【UE5.1 角色練習】11-坐騎——Part1(控制大象移動))基礎上繼續實現角色騎上坐騎的功能。
效果
步驟
一、坐騎的父類
1. 新建一個父類為角色的藍圖類
這里命名為“BP_RideCharacter”,表示所有坐騎的父類
2. 打開上一篇制作的大象藍圖“Character_Elephant”
在類設置中設置父類為剛才創建的藍圖“BP_RideCharacter”
3. 打開“BP_RideCharacter”,添加一個盒體碰撞組件
設置一下盒體范圍。當角色進入該范圍內時就可以觸發騎上坐騎的操作
4. 在角色藍圖中新建一個變量“Ride”,變量類型為“BP_RideCharacter”的對象引用
5. 在“BP_RideCharacter”的事件圖標中添加如下節點。表示當角色靠近坐騎后就擁有了坐騎的引用
二、將角色附加到坐騎
1. 在項目設置中添加一個操作映射
2. 在角色藍圖中添加如下節點,表示按下T鍵來操控坐騎
但是光操作坐騎還不行,我還需要將角色放到坐騎的背上。
3. 打開大象的骨骼
添加一個插槽,用于標注角色在坐騎上的位置
這里命名插槽為“socket_seat”,然后設置該插槽的位置
4. 在角色藍圖中,繼續完善角色控制坐騎的邏輯,我們可以通過“將Actor附加到組件”節點來將角色放置到坐騎上
此時運行效果如下
三、添加坐姿
1. 首先準備角色坐在坐騎上的動畫
調整一下骨骼的旋轉
點擊“+關鍵幀”
同樣的,我們可以復制一份動畫序列,將角色的腿部間距調下,以適應背比較窄的坐騎
旋轉好骨骼之后也需要點擊“+關鍵幀”
在編輯曲線中,將上一個動畫序列中的關鍵幀刪除
創建一個混合空間1D,用于調整角色騎行動畫中兩腿之間的間距
將兩腿窄間距的動畫放在左邊,寬的放右邊
此時可以看到,我們通過預覽不同的腿間距值,就可以看到相應的動畫姿勢
四、騎上坐騎
打開角色動畫藍圖,添加一個布爾類型的變量和一個浮點類型變量,命名為“IsRiding”和“RidwWidth”,分別表示角色是否正在騎行和騎行時的腿間距
“RidwWidth”的值范圍為0~100
在動畫圖表中添加騎行狀態
雙擊進入“Ride”狀態,添加如下節點,用變量“RideWidth”控制混合空間的腿間距
編輯一下過渡規則
在角色藍圖中添加如下節點,在角色坐上坐騎后設置動畫藍圖中的“IsRiding”和“RidwWidth”變量
此時當角色坐上坐騎后就是坐姿狀態
五、從坐騎上下來
在坐騎父類中添加如下節點,實現從坐騎上下來的功能
最終效果如下