FSM vs Behavior Tree(2)
-
[FSM vs Behavior Tree] Part.3 - Behavior Tree 의 개념
Behavior Tree 의 개념 행동 트리 행동트리는 FSM 에서처럼 상태들끼리 의존하는 문제를 해소할 수 있습니다. Tree 구조에서 알 수 있듯, 상태 개념없이 특정 행동에 대한 노드단위 개념을 사용합니다. 이 구조를 쓰는 핵심 목적은 루트노드로부터 DFS (깊이탐색)을 하여 실행 가능한 행동을 찾고, 최종적으로 찾은 행동에 대해 동작(Action)을 수행하기 위함입니다. 매번 DFS 를 수행해야하기 때문에, 성능면에서는 실행시간도 FSM 보다 길고, 노드단위 탐색이다 보니 캐시 미스가 잦아서 좋지 않습니다. 노드의 종류는 크게 다음 세가지가 있습니다. Root : 최상단 노드 Control flow : 하위 트리의 반환 종류에 따라 DFS의 흐름을 제어하기위한 노드 Execution : 최하위 노..
2022.11.03 -
[FSM vs Behavior Tree] Part.1 - FSM 의 개념
FSM 의 개념 FSM (Finite State Machine) 유한 상태머신 우선 상태머신이란 특정 상태에 대한 일정한 동작을 수행하는 기계를 의미합니다. 정해져있는 상태들에 따라 연산을 수행하고 각 상태들은 특정 조건에서 다른 상태들로 전이될 수 있습니다. '특정 상태' 에서 '특정 조건' 일 때 '다른 특정 상태' 로 전환하는지 명시되기때문에, 컨셉이 간단하고 직관적이어서 코드를 봤을 때 누구나 쉽게 이해할 수 있고, 또 쉽게 작성할 수 있기 때문에 일반적으로 생산성이 높습니다. 구조 자체가 GOTO 구문 컨셉과 비슷하기때문에 상태들이 많아지고 구조가 복잡해질 수록 코드가 꼬일 가능성이 높은 단점이 있습니다. 단계별/ 조건별 애니메이션이나 캐스팅과정 등이 각 상태에 들어가야할 경우, Root-Sta..
2022.10.27