主要内容:裝備武器,攻擊,敵人攻擊,受傷,敵人受傷
事先下載下傳好武器模型、動畫等,注意的是,模型貼圖、對應骨骼等可能要重新設定,材質的各項參數要重新拖入紋理連線,動畫要全部重定向
一、添加武器
1、建立插槽
打開人物骨骼界面
若武器放在背上可切換,可在骨骼spine_03處加插槽,這裡再加三個插槽,用來裝弓、錘、箭袋
2、擺對背後武器的位置
播放動畫序列拔武器,這時可以暫停,暫停後把武器位置調整到正确位置
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIwczX0xiRGZkRGZ0Xy9GbvNGL2EzXlpXazxCbahVYtljRaVnRygFbW12YvJ1MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL2MTOwETNxQTM2IjNwEjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
沒貼圖是因為下載下傳導入的材質失效了,重新進入材質編輯,拖入紋理,重新連線可生效,這裡省略
可以看紋理的檔案名字确定是法線、基礎顔色等等參數
3、在人物藍圖中添加2個靜态網格體,分别為錘、箭袋,1個骨骼網格體,弓(因為模型為骨骼網格體)
4、建立函數
将武器放到自身網格體
寫上插槽名字
設定位置與插槽處一緻
設定好後
二、基本操作與移動動畫
在混合空間中添加好站、走、跑,在動畫藍圖中使用
(記得将speed設為變量并使用)
滑鼠移動視角、移動輸入等可參考标準小白人藍圖
調節選擇z軸倍率,可調節小白人轉身的速度
将摩擦力設為0,制動降速行走降低(這裡改為512),可以使角色行走停下時有個慣性似的,更加平滑
三、拔出、收回武器和弓
這裡做的是:攻擊時拔出來,一段時間不攻擊收回去;
而不是按鍵切換武器
1、拔出武器隻需要上半身,而動畫下半身也會動,是以想辦法隻用上半身
将拔出武器、收回武器的動畫建立為蒙太奇動畫(動畫藍圖那記得加插槽)
在蒙太奇動畫中添加插槽:上半身,并将動畫設為上半身
在動畫藍圖中,添加關于蒙太奇的骨骼分層
需先将姿勢存為緩存(友善多次調用)
使用骨骼分層節點,使用上半身蒙太奇的插槽,在骨骼分層處添加成員,成員裡骨骼名稱命名為spine_01,剛好是上、下半身的界(去骨骼看節點名稱)
在人物藍圖中使用蒙太奇動畫
注!記得打開網格體空間旋轉混合mesh space rotation,否則會出現偏移(比如拔武器時小人一直 左右亂晃)
注意!!!要取消原動畫(建立蒙太奇動畫前)的根據根運動(rootmotion),否則拔出武器時人物不能移動且會滑步
2、使拔出來的武器真正在手中
在左右手添加插槽(右手主武器,左手拿弓)
主要思路是播放蒙太奇動畫與元件attach元件的結合,自行調整延遲等,使武器拿出來和放回去的時機剛好
添加個bool判斷是否為弓,以後用,主要用到節點選擇(要選擇啥就從啥裡拖出select)
拿出如下:
收回類似
3、攻擊動畫
攻擊動畫都采用rootmotion動畫(即要打開根運動,上面有些動畫則不能打開)
将選好的幾個(連擊)攻擊動畫建立為蒙太奇動畫(根據情況選上半身還是全身)
思路為:按下滑鼠左鍵後,拿出武器并攻擊,然後繼續按左鍵發動後面的連擊,一段時間不按左鍵的話就收回武器
注意的點:
建立變量ID來決定按下左鍵後播放哪個蒙太奇動畫,按一次id若不為最大動作的編号,則id++,否則設為0
添加變量 能攻擊? 在出招時前部分時間不能攻擊,在每一個蒙太奇動畫增加動畫通知,在動畫藍圖中編寫:收到通知後将"能攻擊"設為true。可在一招未完接下一招,形成連擊
右鍵拿出武器,在能攻擊的時候才能拿出武器,即不能攻擊的時候是不能的
能攻擊的時候才能拿出武器或者放回武器
新增變量是否裝備武器,若裝備了,則按左鍵不再觸發拿出武器,直接攻擊,不然為先拿出武器再攻擊
設定可再觸發延遲,如圖,若3秒内沒再受到觸發,執行放回武器
不能一直執行拿和收同一件武器
總之一堆麻煩事,目前自己隻能慢慢調,最終結果:
還是有一些小bug,比如拔出武器不進行攻擊的話,就不會自動收回武器,不過無傷大雅,以後可以優化或者直接改變更換武器的方式
4、讓武器拔出後,站立姿勢改變
content建立枚舉變量,添加需要的幾種姿勢
在人物藍圖中,進行各種操作時,改變枚舉的姿勢標明
在動畫藍圖中使用專門的混合姿勢節點,将指定的值提升為變量
令該變量等于人物那的枚舉變量
完成
bug:人物在變成錘子的站立或弓的站立時,腳會陷入地下,可能得使用IK?(收藏欄)
5、8個方向的移動動畫(例如按s人物會往後倒退,而不會轉身向後走)
使用混合空間(非2D)
先将豎軸命名為direction,範圍改為-180~180(平時向前走時角度為0,按住w和d時,角度為45)
把8方向的動畫全部拖入(走有8個方向,跑有8個方向等等)
打開使用控制器所需的旋轉,關閉将旋轉朝向運動(可以僅在持弓時設定,拉完弓設定回去,而以後拉弓可以再弄一個拉弓的八方向動畫)
接下來計算direction的值,在動畫藍圖中計算(speed也是那裡計算),用到“計算方向”節點
在動畫藍圖中使用混合空間,連上direction的值
四、拉弓
需要為弓建立一個動畫藍圖,添加狀态機,平常-》平常到拉弓-》拉弓中-》拉弓到平常-》平常
添加一個pull的值,在動畫藍圖中将人物處pull傳到動畫藍圖中,按鍵拉弓時,改變pull的值
若弓拉開的速度不比對手的速度,可以改變弓動畫藍圖中的rate
五、射箭
節點“從類生成actor”生成箭,然後添加到手上插槽裡
箭需要是一個actor,可以用彈射元件,但彈射元件的話,一生成箭就會飛出去,是以這裡不用元件,用一個添加沖力(記得修改沖力方向)的事件
射出去時,将箭的actor脫離
四、攻擊使ai受傷死亡
可用多球體碰撞判斷
可用藍圖接口和重疊
受傷播放動畫
死亡可設定模拟實體,添加沖力
參考視訊:
【新手向】虛幻4ARPG教程-重置版-第一集-資源導入及簡單地形(UE4執行個體)_哔哩哔哩_bilibili