fsm(2)
-
[FSM vs Behavior Tree] Part.2 - FSM 의 구현
FSM 의 구현 Part.1 에서 FSM 의 개념에 대해서 보았습니다. 이번에는 FSM 을 구현하기위해 먼저 UML 로 컨셉을 보겠습니다. FSM Concept UML 우선, 핵심부분은 상태머신이 상태 인터페이스에대한 콜렉션을 가지고있고, 현재 상태에 따라 상태의 로직을 수행한다는 것입니다. 해당 컨셉을 좀더 자세히보면, IState 인터페이스는 enum 타입의 명령종류에 대해 열거하고있으며, 실행가능 여부를 따지고(CanExecute) 실행할 수 있습니다(Execute()). Iterating 을 하기위한 MoveNext() 를 가지고있고, 해당 상태가 종료되어야할때 Machine이 중단시킬 수 있도록 Stop() 을 추상화해놓고있습니다. IState 인터페이스는 해당 상태가 Machine입장에서 어떤..
2022.10.28 -
[FSM vs Behavior Tree] Part.1 - FSM 의 개념
FSM 의 개념 FSM (Finite State Machine) 유한 상태머신 우선 상태머신이란 특정 상태에 대한 일정한 동작을 수행하는 기계를 의미합니다. 정해져있는 상태들에 따라 연산을 수행하고 각 상태들은 특정 조건에서 다른 상태들로 전이될 수 있습니다. '특정 상태' 에서 '특정 조건' 일 때 '다른 특정 상태' 로 전환하는지 명시되기때문에, 컨셉이 간단하고 직관적이어서 코드를 봤을 때 누구나 쉽게 이해할 수 있고, 또 쉽게 작성할 수 있기 때문에 일반적으로 생산성이 높습니다. 구조 자체가 GOTO 구문 컨셉과 비슷하기때문에 상태들이 많아지고 구조가 복잡해질 수록 코드가 꼬일 가능성이 높은 단점이 있습니다. 단계별/ 조건별 애니메이션이나 캐스팅과정 등이 각 상태에 들어가야할 경우, Root-Sta..
2022.10.27