用過Unity開發的工程師們一定對Mecanim的方便快捷印象深刻,用過之后再也不想回到刀耕火種的時代了。
目前在做egret項目,首先就動手做了一個仿制Mecanim的FSM編輯器。工具做得越早,受益越多。
倉庫地址:https://github.com/wonderyue/Animator,歡迎star和fork。
簡要說明:
State:狀態。成員變量中包含Transition數組。
Transition:狀態跳轉。成員變量包含from(初始狀態)和to(跳轉狀態),以及condition數組。
Condition:跳轉條件。成員變量包含Parameter,和logic(因Parameter而異,如number型邏輯包括">","<","=","≠"),value(如bool型value可為true或false)
Parameter:參數。成員變量包含類型(bool,number,trigger,complete,其中complete相當於Mecanim中的exitTime,代表跳轉條件為動畫播放結束)
示例:

導出json文件格式:
大概就是下面這樣事兒的。為了方便理解,只與編輯器有關的字段我沒有給出,如果是用在動畫以外的情景使用狀態機,animation字段也可以忽視。
1 { 2 "state": [ 3 { 4 "state": "idle", 5 "transition": [ 6 { 7 "condition": [ 8 { 9 "value": 1, 10 "logic": 0, 11 "id": "run", 12 "type": 1 13 } 14 ], 15 "nextState": "run" 16 } 17 ], 18 "default": true, 19 "animation": "idle_animation" 20 }, 21 { 22 "state": "run", 23 "transition": [ 24 { 25 "condition": [ 26 { 27 "value": 0, 28 "logic": 0, 29 "id": "run", 30 "type": 1 31 } 32 ], 33 "nextState": "idle" 34 } 35 ], 36 "animation": "run_animation" 37 } 38 ] 39 }
后續再給出demo和針對egret的dragonBones的一些便捷用法,這篇先到這里吧:)
