开源可视化有限状态机编辑器

用过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编辑  收藏  举报

导航