天天看點

ue4 簡單戰鬥

主要内容:裝備武器,攻擊,敵人攻擊,受傷,敵人受傷

事先下載下傳好武器模型、動畫等,注意的是,模型貼圖、對應骨骼等可能要重新設定,材質的各項參數要重新拖入紋理連線,動畫要全部重定向

一、添加武器

 1、建立插槽

打開人物骨骼界面

若武器放在背上可切換,可在骨骼spine_03處加插槽,這裡再加三個插槽,用來裝弓、錘、箭袋

2、擺對背後武器的位置

播放動畫序列拔武器,這時可以暫停,暫停後把武器位置調整到正确位置

ue4 簡單戰鬥
ue4 簡單戰鬥

沒貼圖是因為下載下傳導入的材質失效了,重新進入材質編輯,拖入紋理,重新連線可生效,這裡省略

可以看紋理的檔案名字确定是法線、基礎顔色等等參數

3、在人物藍圖中添加2個靜态網格體,分别為錘、箭袋,1個骨骼網格體,弓(因為模型為骨骼網格體)

ue4 簡單戰鬥

4、建立函數

ue4 簡單戰鬥

将武器放到自身網格體

寫上插槽名字

設定位置與插槽處一緻

ue4 簡單戰鬥

設定好後

ue4 簡單戰鬥

二、基本操作與移動動畫

在混合空間中添加好站、走、跑,在動畫藍圖中使用

(記得将speed設為變量并使用)

ue4 簡單戰鬥

滑鼠移動視角、移動輸入等可參考标準小白人藍圖

調節選擇z軸倍率,可調節小白人轉身的速度

ue4 簡單戰鬥

将摩擦力設為0,制動降速行走降低(這裡改為512),可以使角色行走停下時有個慣性似的,更加平滑

ue4 簡單戰鬥

三、拔出、收回武器和弓

這裡做的是:攻擊時拔出來,一段時間不攻擊收回去;

而不是按鍵切換武器

1、拔出武器隻需要上半身,而動畫下半身也會動,是以想辦法隻用上半身

将拔出武器、收回武器的動畫建立為蒙太奇動畫(動畫藍圖那記得加插槽)

在蒙太奇動畫中添加插槽:上半身,并将動畫設為上半身

ue4 簡單戰鬥

在動畫藍圖中,添加關于蒙太奇的骨骼分層

需先将姿勢存為緩存(友善多次調用)

使用骨骼分層節點,使用上半身蒙太奇的插槽,在骨骼分層處添加成員,成員裡骨骼名稱命名為spine_01,剛好是上、下半身的界(去骨骼看節點名稱)

ue4 簡單戰鬥
ue4 簡單戰鬥

在人物藍圖中使用蒙太奇動畫

ue4 簡單戰鬥

注!記得打開網格體空間旋轉混合mesh space rotation,否則會出現偏移(比如拔武器時小人一直 左右亂晃)

ue4 簡單戰鬥

注意!!!要取消原動畫(建立蒙太奇動畫前)的根據根運動(rootmotion),否則拔出武器時人物不能移動且會滑步

ue4 簡單戰鬥

2、使拔出來的武器真正在手中

在左右手添加插槽(右手主武器,左手拿弓)

主要思路是播放蒙太奇動畫與元件attach元件的結合,自行調整延遲等,使武器拿出來和放回去的時機剛好

添加個bool判斷是否為弓,以後用,主要用到節點選擇(要選擇啥就從啥裡拖出select)

拿出如下:

ue4 簡單戰鬥

收回類似

3、攻擊動畫

攻擊動畫都采用rootmotion動畫(即要打開根運動,上面有些動畫則不能打開)

将選好的幾個(連擊)攻擊動畫建立為蒙太奇動畫(根據情況選上半身還是全身)

思路為:按下滑鼠左鍵後,拿出武器并攻擊,然後繼續按左鍵發動後面的連擊,一段時間不按左鍵的話就收回武器

注意的點:

建立變量ID來決定按下左鍵後播放哪個蒙太奇動畫,按一次id若不為最大動作的編号,則id++,否則設為0

添加變量 能攻擊? 在出招時前部分時間不能攻擊,在每一個蒙太奇動畫增加動畫通知,在動畫藍圖中編寫:收到通知後将"能攻擊"設為true。可在一招未完接下一招,形成連擊

ue4 簡單戰鬥

右鍵拿出武器,在能攻擊的時候才能拿出武器,即不能攻擊的時候是不能的

能攻擊的時候才能拿出武器或者放回武器

新增變量是否裝備武器,若裝備了,則按左鍵不再觸發拿出武器,直接攻擊,不然為先拿出武器再攻擊

設定可再觸發延遲,如圖,若3秒内沒再受到觸發,執行放回武器

不能一直執行拿和收同一件武器

總之一堆麻煩事,目前自己隻能慢慢調,最終結果:

ue4 簡單戰鬥
ue4 簡單戰鬥
ue4 簡單戰鬥

還是有一些小bug,比如拔出武器不進行攻擊的話,就不會自動收回武器,不過無傷大雅,以後可以優化或者直接改變更換武器的方式

4、讓武器拔出後,站立姿勢改變

content建立枚舉變量,添加需要的幾種姿勢

在人物藍圖中,進行各種操作時,改變枚舉的姿勢標明

在動畫藍圖中使用專門的混合姿勢節點,将指定的值提升為變量

ue4 簡單戰鬥

令該變量等于人物那的枚舉變量

ue4 簡單戰鬥

完成

bug:人物在變成錘子的站立或弓的站立時,腳會陷入地下,可能得使用IK?(收藏欄)

5、8個方向的移動動畫(例如按s人物會往後倒退,而不會轉身向後走)

使用混合空間(非2D)

先将豎軸命名為direction,範圍改為-180~180(平時向前走時角度為0,按住w和d時,角度為45)

把8方向的動畫全部拖入(走有8個方向,跑有8個方向等等)

打開使用控制器所需的旋轉,關閉将旋轉朝向運動(可以僅在持弓時設定,拉完弓設定回去,而以後拉弓可以再弄一個拉弓的八方向動畫)

ue4 簡單戰鬥
ue4 簡單戰鬥

接下來計算direction的值,在動畫藍圖中計算(speed也是那裡計算),用到“計算方向”節點

ue4 簡單戰鬥

在動畫藍圖中使用混合空間,連上direction的值

ue4 簡單戰鬥

四、拉弓

需要為弓建立一個動畫藍圖,添加狀态機,平常-》平常到拉弓-》拉弓中-》拉弓到平常-》平常

添加一個pull的值,在動畫藍圖中将人物處pull傳到動畫藍圖中,按鍵拉弓時,改變pull的值

若弓拉開的速度不比對手的速度,可以改變弓動畫藍圖中的rate

五、射箭

節點“從類生成actor”生成箭,然後添加到手上插槽裡

箭需要是一個actor,可以用彈射元件,但彈射元件的話,一生成箭就會飛出去,是以這裡不用元件,用一個添加沖力(記得修改沖力方向)的事件

射出去時,将箭的actor脫離

四、攻擊使ai受傷死亡

可用多球體碰撞判斷

可用藍圖接口和重疊

受傷播放動畫

死亡可設定模拟實體,添加沖力

參考視訊:

【新手向】虛幻4ARPG教程-重置版-第一集-資源導入及簡單地形(UE4執行個體)_哔哩哔哩_bilibili