状态流程图与有限状态机

状态图 (State Machine) ,是类似於本文章要介绍的主轴: 有限状态机 (Finite-State Automation),有限的意思是有限个数的状态以及有限个状态之间转移动作的行为,有限状态机也常被用於数学模型。

这个看似很专业的名词,可以拿出 Unity 的动画状态机来形容,在做角色动画的时候,会使用这样的状态机去设定角色目前要播放哪一组动画。

比方说 Unity 2D 游戏有提供一组 Unity Chan! 免费素材,上面有这个角色的不同状态。

https://ithelp.ithome.com.tw/upload/images/20210918/20092753mTskQKtpmM.png

以变数的角度来说,现在有一组 目前状态 变数,目前状态变数,决定下方状态机图应该处於哪个位置。

https://ithelp.ithome.com.tw/upload/images/20210918/20092753tHJ79QCb3h.png

如果现在状态是 闲置 (Idle),角色就会一直播放闲置的动画,如果正在 跑步 (Running),就会播放跑步动画,如果从高处平台 下降 (Airbone),就会播放相应的动画。

箭头的意思,是现在状态会如何转移出去,比方说空降後键盘不动了,就会往闲置的动画播放,如果空降後还是继续跑步,就会转到 Running 跑步 动画去。

使用状态图来表示的话,绘图就会有事件进入点,请参考下图。

https://ithelp.ithome.com.tw/upload/images/20210918/20092753hCC1EXbyn0.png

初始进入点 是整个状态的入口; 任何状态也可能是进入点,不过这里的任何状态,表示的是如果 目前状态变数 被切换到 濒死动画,那整个动画的顺序就会改为从上面继续做。

离开,不在循环的状态机之中,如果被切换到这个状态,就会直接结束整个状态机周期。

状态机的连线也可以使用 function 名称附注在此状态可以执行哪些 Funtion 以切换。

https://ithelp.ithome.com.tw/upload/images/20210918/20092753xIBYzsrCZH.png

Remark

有限状态机的运算不一定是封闭的,封闭性可延伸阅读确定有限状态机 (deterministic finite automation)。

References:
[1] https://zh.codeprj.com/blog/5782c51.html
[2] https://goodlucknetlife.com/unitychan-sword-attack/
[3] https://docs.unity3d.com/420/Documentation/Manual/MecanimAnimationSystem.html
[4] https://terryjryeh.blogspot.com/2019/03/uml-statechart-diagrams-10.html
[5] https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-state-machine-diagram/


<<:  [想试试看JavaScript ] 为什麽需要这麽多种注册事件处理的方式

>>:  Day 05:是说,这个选项可以接什麽东西?autocomplete 与 auto-pair

[Day 04] Sass - 简介

这篇文章简单介绍一下Sass~ Sass 是什麽 ? Sass是一种CSS预处理器语言(CSS pr...

Gulp bower(1) DAY85

bower??? 什麽是 bower?? https://bower.io/ bower 为前端套...

Day 18: 人工智慧在音乐领域的应用 (AI作曲-基因演算法二)

今天我们开始详细的介绍作曲是如何与基因演算法做结合 首先我们先快速复习一下基因演算法的流程: (1)...

Day23. Blue Prism防疫期间少点接触多点安心 -BP自动登入系统

以前人与人之间的接触希望越来越亲密, 但现在面临疫情肆虐的全球, 很多非接触可以达成的运用越来越热门...

安装套件

今天要介绍的是在Chrome和VS Code中所安装的套件 在chrome中安装Vue.js dev...