开源可视化有限状态机编辑器
用过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的一些便捷用法,这篇先到这里吧:)
posted on 2015-04-19 22:01 wonderday 阅读(3563) 评论(0) 编辑 收藏 举报