State Behaviour Editor
概述
因為在格鬥遊戲中動畫及遊戲遊玩緊密交織在一起,因此對於格鬥遊戲而言,在一個動畫的狀態上必須有刷新準確的控制;這包含動畫移動的狀態、行為以及最後——但絕對不是最不重要的——關聯的命中及傷害框的位置。
可以針對動畫利用Quantum的確定性的本質,方法是使用自訂動畫器並且擴展它。自訂動畫器預設嵌入動畫移動到CustomAnimatorGraphAsset
之中。另一方面附有Main Bounds
、HitBox
及HurtBox
設定的Quantum Animation State Behaviours
對於格鬥範例而言是獨一無二的。
基本設定
在格鬥範例中Unity動畫器的初始設定與自訂動畫器文檔中說明的步驟相同。
注意事項: 請仔細閱讀Addons > Custom Animator
頁面的Known Issues
章節,因為這可能影響有限狀態機的設計與執行方式。
建立新的狀態行為資產
QTASB Container
指令碼用於協助在Unity動畫器控制器中與一個動畫狀態關聯的QuantumAnimatorStateBehaviour
資產的編輯、組織及視覺化。
為了針對QTASB的使用,在Unity中設定一個新的動畫狀態:
- 新增一個
QTASB Container
行為指令碼到您的動畫狀態。
- 在
QTASB Container
中,以持有一個角色的所有狀態的資料夾來鏈接State Asset Directory
欄位。這將建立一個FighterAnimatorStateAsset
,其附有與狀態相同的名稱,並且在QTASB Container
的State Asset
欄位中參照它。
- 在
Behaviours
章節中新章節的底部,拖放具體的FighterBehaviourAsset
執行方式到Add Behaviour
欄位。這些資產將被新增到在狀態資產欄位中參照的FighterAnimatorStateAsset
。或者是,按一下+
符號以新增或建立一個新的FighterAnimatorStateAsset
。注意事項:FighterBehaviourAssets
可以在行為清單中被重新排序。
完成設定後,與這個動畫狀態關聯的FighterBehaviourAsset
及FighterAnimatorStateAsset
,可以在這個視窗中編輯它們全部。
特殊移動
建立一個新的特殊移動,就像設定一個新的動畫狀態及其行為,及嵌入動畫器一樣簡單。
建立新的角色編輯場景
各個角色有它們自己的編輯場景(比如,Orc角色可以在Orc編輯場景中編輯)。
為了建立一個新的角色編輯場景,請跟隨這些步驟:
- 建立一個新的遊戲物件,並且新增角色編輯器行為到它。
- 參照將被編輯的角色的動畫器及自訂動畫器圖表資產。
- (可選的)針對視覺參照來新增角色基礎。
- (可選的)確保針對狀態編輯器及角色基礎遊戲物件的轉換元件是在相同的位置。
注意事項: 為了擦除一個動畫,請確保已經匯入自訂動畫器圖表資產。當開啟一個現有的場景時,可能需要重新鏈接自訂動畫器圖表資產,以在能夠編輯它之前觸發一個重新整理。
建立界限、命中框及傷害框
在設定編輯場景之後,可以針對角色編輯、修改及建立Main Bounds
、HitBoxes
及HurtBoxes
。
- 傷害框(藍色):碰撞命中框時觸發反應。
- 命中框(紅色):針對命中確定碰撞區域。
- 主要邊界(綠色):控制角色如何與其他角色碰撞。
注意事項: 在開始編輯之前,按下「匯入動畫器」按鈕。
傷害框
定義了HurtBox Sets
,而不是針對動畫的每一個單一幀來定義碰撞資料。一個HurtBox Set
是一個框的集合,其在一個特定的幀開始。為了在特定幀調整現有的HurtBoxes
——比如幀10——,在幀10時按下Add Hurt Box Set
。這將從先前的集合來複製傷害框資料,然後允許新增新的或刪除現有的HurtBoxes
到集合。
命中框
為了定義HitBox
資料,被編輯的狀態需要在其行為清單中參照一個QTABAttackStateAsset
。
主要邊界
類似於HurtBoxes
,主要邊界碰撞器可以在幀之間複製,因為它只有在角色模型的姿勢改變時才會準時改變。