• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

StateMachine 가독성

24.06.27 03:38 작성 조회수 63

0

코드 상에서 일일이 Transition을 만들고 하다 보니 가독성이 딸리는 느낌이더라구요 그래서 그런데 혹시 강의 뒤에 StateMachine의 가독성을 높이기 위한 방법이 나오나요?

답변 1

답변을 작성해보세요.

0

수강해주셔서 감사합니다.

뒷 부분부터는 FSM을 Skill에 적용하는 내용만 있고 FSM Code 자체를 더 건드리는 내용은 없습니다.


FSM 같은 경우 Node와 Transition이 많아질수록 보기에 복잡해지는건 필연적이구요, 전이 조건들을 통합하거나 Node들을 통합해서 자체적으로 최적화하는 방법이 있습니다. 그나마 Skill처럼 시스템화 되는 곳에서는 한번 설정하고나면 이후 크게 건드릴 일이 많지 않아서 좀 나은 편입니다. 특히 Skill 같은 경우는 Node가 많지도 않고 Transition이 한 방향으로 흐르기 때문에 그 복잡도가 덜한편이구요.

가시성을 높히고 싶으시면 FSM용 Node Editor를 구현하거나 Asset Store에서 Node Editor를 제공하는 FSM Asset을 구매하셔서 강의의 내용대로 FSM을 구성하시면 되는데, 확실히 말씀드릴 수 있는건 Node Editor는 어느 Node가 어느 Node에 연결되는지만 명확히 보일 뿐 가독성 올려주진 않습니다.

저 같은 경우 조건 구성의 불편함 때문에 Node Editor보다는 강의에서처럼 Code로 FSM을 구성하는걸 선호하구요, AI나 복잡한 Player 동작 Logic의 구성이 필요한 경우 BT에 FSM을 섞는 형태로 사용합니다. 예를 들면, AI의 동작을 BT로 제어하다가 Skill을 사용하는 상황이 오면 대기(Wait)하여 FSM(Skill과 관련된 동작)동작 완료를 기다린 뒤, FSM 동작 완료가 되면 다시 BT를 진행하는 식으로요. 상황에 따라서는 FSM 상태에 따라 BT의 동작 제어를 할 수도 있구요.

해당 내용은 GDC에서도 소개됐으니 한번 보시면 좋으실겁니다.
https://www.youtube.com/watch?v=Qq_xX1JCreI
(강연자가 저랑 다른 방식 BT와 FSM을 혼합합니다.)

감사합니다.

채널톡 아이콘