用过Unity开发的工程师们一定对Mecanim的方便快捷印象深刻,用过之后再也不想回到刀耕火种的时代了。
目前在做egret项目,首先就动手做了一个仿制Mecanim的FSM编辑器。工具做得越早,受益越多。
简要说明:
State:状态。成员变量中包含Transition数组。
Transition:状态跳转。成员变量包含from(初始状态)和to(跳转状态),以及condition数组。
Condition:跳转条件。成员变量包含Parameter,和logic(因Parameter而异,如number型逻辑包括">","
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的一些便捷用法,这篇先到这里吧:)