FSM이란 무엇일까?

박승우·2024년 4월 30일
0

자 열 다섯번째 키워드인 'FSM'을 알아 볼것이다.

이번 키워드는 게임분야에서 잘 나오는 개념이므로 유니티와 같이 알아볼 것이다.

FSM이 뭐에요?

FSM은 Finite State Machine의 약자로 유한상태머신을 뜻한다.
컴퓨터 과학 및 전기 및 컴퓨터 공학 분야에서 사용되는 수학적 모델이다. FSM은 상태(state), 이벤트(event), 전이(transition), 동작(action)으로 구성된다.

각 구성요소를 예를 들어서 설명해보겠다.

1. 상태 (State)

FSM은 여러 상태로 나뉜다. 각 상태는 시스템이 있을 수 있는 조건이나 모드를 나타낸다.
- 대기상태 : 몬스터가 아무런 행동을 취하지 않고 대기하고 있는 상태
- 추격상태 : 플레이어가 일정범위 내에 있을때 몬스터가 플레이어를 추격하는 상태
- 공격상태 : 몬스터가 플레이어를 공격하는 상태
- 피격상태 : 몬스터가 플레이어로부터 피격을 받아 일시적으로 무력화되는 상태

2. 이벤트 (Event)

이벤트는 시스템에서 발생하는 외부 또는 내부 동작을 나타낸다. 이벤트는 보통 상태 전이를 유발한다.
- 플레이어 감지 : 몬스터가 플레이어를 감지했을 때 발생하는 이벤트
- 추격 시작 : 플레이어를 발견한 후 추격을 시작할 때 발생하는 이벤트
- 피격 : 몬스터가 플레이어로 부터 피격을 받았을 때 발생하는 이벤트
- 공격 완료 : 몬스터가 공격을 완료하고 대기상태로 돌아가야 할 때 발생하는 이벤트

3. 전이 (Transition)

전이는 상태 사이의 변화를 나타낸다. 이벤트가 발생하면 FSM은 현재 상태에서 다른 상태로 전환한다.
- 대기 상태에서 추격 상태로의 전이: 플레이어 감지 이벤트 발생 시 대기 상태에서 추격 상태로 전환
- 추격 상태에서 공격 상태로의 전이: 일정 범위 내에서 플레이어를 추격 중인 상태에서 플레이어와 충돌하면 공격 상태로 전환
- 공격 상태에서 피격 상태로의 전이: 몬스터가 피격을 받으면 공격 상태에서 피격 상태로 전환
- 피격 상태에서 대기 상태로의 전이: 피격 상태에서 일정 시간이 지난 후 대기 상태로 전환

4. 동작 (Action)

전이가 발생할 때 실행되는 동작 또는 행동을 나타낸다.
- 추격 동작: 추격 상태에서는 몬스터가 플레이어를 향해 이동
- 공격 동작: 공격 상태에서는 몬스터가 플레이어에 대해 공격을 시도
- 피격 동작: 피격 상태에서는 몬스터가 일시적으로 무력화되어 움직이지 않음

이렇게 설계를 하여 몬스터나 플레이어의 상호작용을 만들 수 있다.

결론 - 느낀 점

현재 프로젝트 진행중에 몬스터를 구현하고 있는데 마침 좋은 키워드를 공부하여
위와 같은 설계를 진행했다.

코드로 구현하여 잘 돌아가는 것 까지 해야 내 지식이 되므로 이 기반을 토대로
공부하여 코드로 옮겨야 겠다.

profile
게임을 좋아하는 사람 입니다!

0개의 댓글