Massive GreatSword AnimSet 大劍動作教學

混合樹可讓遊戲開發者透過參數控制角色的動作,並且讓動作與動作之間的轉換更流暢。

接著使用混合樹製作角色的走路、跑步、轉向,並透過 C# 腳本處理玩家輸入操控角色。

先在 Animator 視窗按滑鼠鍵 Create State > From New Blend Tree 建立新的混合樹。

刪除原本的 Idle 待機狀態,此時有一個其他的動作狀態會變成黃色…

選取剛建立的 Blend Tree 混合樹,滑鼠右鍵執行 Set as Layer Default State 設為預設的動作狀態。

此時 Blend Tree 動作狀態將變成黃色…

使用先前相同的步驟,重新製作待機到攻擊動作、待機到防禦動作的轉換與條件。

切換到 Parameters 參數,此時將可看到自動新增的 Blend 參數,若刪除 Blend 參數將出現錯誤!

您可以選擇重新命名,或稍後建立並修改混合樹的參數後,再刪除 Blend 參數,就不會顯示錯誤。

按 + 新增…

新增 Speed (Float) 參數,稍後用於控制移動的速度。

新增 Turn (Float) 參數,稍後用於控制轉向的幅度。

將 Blend Tree 重新命名為 Locomotion 滑鼠游標雙擊,進入混合樹編輯。

 

進入混合樹編輯

 

混合樹的預設是 1D 混合型態,改為 2D Freeform Directional 混合型態,讓玩家角色可以前後移動與左右移動。

接著設定 Parameters = Turn / Speed 然後按 + 增加動作欄位 …

+ Add Motion Field 增加動作欄位。

參考下圖設定每個動作欄位對應的座標位置,可以將紅點當做街機搖桿的概念。

 

開啟 [ MassiveGreatSword_AnimSet > Animations > Humanoid ] 資料夾,找到待機與移動的 RootMotion 動作。

展開 FBX 檔案,將下方的動作拖曳到對應的動作欄位。

指定動作之後,即可在 Animator 視窗看到混合樹連結的動作。

拖曳紅點可以測試角色的移動,然後再增加動作欄位,加入左右移動與 45 度移動的動作。 ★★★

 

修改 PlayerController.cs 腳本,加入控制玩家移動的程式碼:

 

 

 

延伸學習:以下是使用 Rigidbody 控制移動的版本,本教學中不使用僅供參考。