目錄
效果
步驟
一、瞄準時拉近攝像機位置
二、瞄準偏移
三、向指定方向射擊
四、連發
效果
步驟
一、瞄準時拉近攝像機位置
打開角色藍圖,在事件圖表中添加如下節點,當進入射擊狀態時設置目標臂長度為300,從而拉近視角。
但是這樣切換視角距離有些生硬,我們可以通過時間軸節點來做個過渡
兩個時間曲線均從(0,0)到(0.2,1)
此時效果如下,可以看到在切換射擊狀態時,視角會逐漸拉近或拉遠
二、瞄準偏移
為了解決角色只能朝左右射擊無法上下射擊的問題,我們需要在鼠標上下移動視角的時候將槍口也進行上下移動。
1. 在“AnimStarterPack”資源包中找到一個名為“Aim_Space_Hip”動畫序列
可以看到該動畫序列是角色上下左右端槍的姿勢
2. 通過IK重定向器將該動畫序列重定向給我們的角色
此時我們就擁有了適配角色骨骼的動畫序列
下面我們需要對這個動畫進行拆解,分別拆解成角色向上、下、左、右瞄準的動畫。
復制3份動畫序列“Aim_Space_Hip”,這里分別命名為“Aim_Space_Hip_Center”、“Aim_Space_Hip_CenterDown”、“Aim_Space_Hip_CenterUp”,分別表示角色向正前方、正下方和正上方端槍的動畫序列。
3. 打開動畫序列“Aim_Space_Hip_Center”。將時間軸指針移動到第4幀,然后移除第5幀之后的所有幀(包括第5幀)
可以看到此時該動畫序列就只有4幀
同樣的方法,我們可以像這樣制作角色向正下方、正上方端槍的動畫序列。但是這里我們再使用另一種方法來創建角色向正下方、正上方端槍的動畫序列。
4. 再次打開動畫序列“Aim_Space_Hip”,將指針移至第10幀,可以看到此時角色向正上方端槍,然后點擊“創建資產-》創建動畫-》當前姿勢”
可以看到創建的動畫就只有一幀,就是角色向正上方端槍的動畫
同樣的方法,在“Aim_Space_Hip”中的第20幀找到角色向正下方端槍的動畫,然后創建動畫序列“Aim_Space_Hip_CenterDown”
同樣的方法再創建角色向左中、左上、左下、右中、右上、右下端槍的動畫序列
5. 選中這9個動畫序列,然后鼠標右鍵點擊“通過屬性矩陣進行批量編輯”
選中這9個動畫序列,然后將“Additive動畫類型”設置為“網格體空間”
6. 打開角色的動畫藍圖
創建一個瞄準偏移混合空間
這里命名為“AimOffset2D_Rifle”
打開“AimOffset2D_Rifle”,水平、垂直坐標的名稱和范圍
將9個動畫序列放置在相應的位置上
像混合空間一樣,此時我們修改預覽點的坐標位置,就可以看到角色不同的端槍姿勢
?7. 再次選中這9個動畫序列,然后鼠標右鍵點擊“通過屬性矩陣進行批量編輯”
“基礎姿勢”為“選擇的動畫幀”
“基礎姿勢動畫”設置為角色端槍待機的動畫“Idle_Rifle_Hip”
8. 再次回到瞄準偏移“AimOffset2D_Rifle”中會發現預覽姿勢不太對勁
因此我們需要將“預覽基礎姿勢”設置為角色端槍待機的動畫序列“Idle_Rifle_Hip”,此時預覽姿勢就正常了。
9. 在動畫藍圖的動畫圖表中,雙擊進入狀態“IdleRifle”
將瞄準偏移作為該狀態的輸出姿勢
可以看到瞄準偏移還需兩個輸入值,因此我們在動畫藍圖中創建兩個浮點類型變量,分別命名為“Yaw”和“Pitch”
然后將這兩個變量值輸入到瞄準偏移中
為了驗證是否有效,我們可以修改Pitch的默認值為30
此時運動游戲,可以看到角色在進入射擊狀態后,槍口向上偏移了一些
雙擊進入狀態“RunRifle”
添加如下節點
此時我們在動畫預覽編輯器中修改“Yaw”和“Pitch”的值可以看到角色向著指定的方向端槍
若增加角色移動速度也可以看到同樣的效果
三、向指定方向射擊
打開角色藍圖在事件圖表中添加如下節點,用鼠標指向遠方的方向減去角色自身的方向就可以得出動畫藍圖中變量“Yaw”和“Pitch”的值
然后我們需要在進入射擊狀態時顯示鼠標,因此刪除如下節點
此時運行可以看到角色端槍的方向會隨著鼠標的移動而移動
我們將鼠標瞄準的場景位置提升為一個變量,用于表示射擊目標的位置
之前我們子彈發射的方向只是角色向前的方向
現在我們可以通過變量“AimTarget”來設置子彈發射的方向
此時我們就實現了鼠標指哪打哪的效果(并不是精確射擊)
四、連發
當我們按下鼠標左鍵準備發射子彈前添加一個時間軸
設置時間軸為循環
這樣當我們按下鼠標左鍵后,就會一直發射子彈了。如果感覺子彈發射的頻率太高,我們可以添加一個延遲
此時我們按住鼠標組件不動就可以連發了