Massive GreatSword AnimSet 大劍動作教學

這段教學將為遊戲角色增加攻擊的動作:

首先加上攻擊與防禦的動作,將動畫控制器 Player Animator Controller 套用到遊戲角色。

開啟剛建立的 Player Animator Controller 動畫控制器。

加入 Idle01 待機動作,按 Play 測試遊戲。角色或動作的設定若不正確,將會出現游泳般的姿勢。

接著點擊左上方 Parameters 切換到參數,按 + 增加參數。

Float 浮點,可用於移動或轉彎等需要細微控制動作的情況。

Int 整數

Bool 布林,只有 True 與 False 狀態。用於設定是否有拿武器的情況。

Trigger 可用於觸發非持續性的動作,例如攻擊、跳躍、補血…等情況。

增加 Attack (Trigger) 參數,稍後用於觸發攻擊動作。

增加 Defense (Trigger) 參數,稍後用於觸發防禦動作。

 

加入攻擊與防禦的動作。

製作待機到攻擊的動作轉換,選取 Idle 待機狀態,按滑鼠右鍵選擇 Make Transition …

… 然後再點擊 Attack 攻擊動作,此時出現的箭頭就是 Idle > Attack 動作的轉換。

當 Attack 攻擊動作結束後,需要回到 Idle 待機動作,否則遊戲角色將會重複著攻擊動作。

 

接著製作待機到防禦的轉換,並且讓 Defense 防禦動作結束後回到 Idle 待機動作。

 

先選取從 Idle 待機到 Attack 攻擊動作之間的箭頭,在 Inspector 設定條件… ,取消。

因為玩家輸入攻擊指令,角色不等候待機動作結束,必須立刻轉換到攻擊動作!

 

再選取從 Idle 待機到 Defense 防禦動作之間的箭頭,在 Inspector 設定條件… ,取消。

這是因為玩家輸入防禦指令時,不能等候待機動作結束,角色必須立刻從待機轉換到防禦動作!

 

測試遊戲,按下滑鼠左鍵做出攻擊動作、按下滑鼠右鍵則做出防禦動作。

 

修正攻擊動作後,角色位置又回到原點的問題,選取每個動作的 FBX 檔案,在 Inspector 的 Root Transform Position (XZ) 取消勾選 Bake Into Pose 然後再按下 Apply 按鈕,注意此操作無法選取多個 FBX 檔案執行,需要逐一操作。

 

使用動畫事件加入攻擊的音效。

選取剛才新增的 Animation Event 透過 Inspector 設定動畫事件的名稱,例如 Attack 攻擊。

注意!此名稱將會對應下面製作的玩家控制腳本,執行 Attack() 方法,在設定時間播放音效。

 

製作控制玩家角色的 PlayerController.cs 腳本,此階段先加入攻擊的程式碼: