게임 개발 로그

폭파전: 플레이어 Behaviour Tree 설계 본문

게임 개발/프로젝트

폭파전: 플레이어 Behaviour Tree 설계

03:00am 2025. 1. 3. 18:31

1. 행동 트리 설계

 

 

2. 행동 정리

2-1. 죽음/그로기 상태

  • 가장 높은 우선순위를 갖는 상태다. 체력 조건을 검사하여 0보다 작거나 같다면 죽음 상태와 그로기 상태 중 한 가지를 고른다. 만약 첫 번째 죽음이라면 그로기 상태고, 그 이상의 죽음을 맞이했다면 Death 상태로 간다.
  • 그로기 상태에서는 이동을 하거나 가만히 있을 수 있다. Groggy(이동) 상태/Groggy 상태 둘 중 한 가지 상태를 선택하게 된다.

 

2-2. 문 상호작용 상태

  • 문과 충돌되어 있으며, F 키를 누르고 있을 때 진행되는 상태다. 맵 중 샛길(지름길)을 열기 위해 문과 상호작용하는 상태다.

 

2-3. 빠르게 뛰기 상태

  • Q를 눌렀을 때 빠르게 뛸 수 있다. 이동키와 함께 조작해야 한다. 빠르게 뛸 때 스태미나가 필요하다. 빠르게 달리기 중에 스태미나가 감소하며, 그 외 상태에서 회복된다.

 

2-4. 걷기 상태

  • Left Shift 를 누르고 있을 때 걸을 수 있다. 이동키와 함께 조작해야 한다. 걷기 상태에서는 발걸음 소리가 나지 않는다.

 

2-5. 폭탄 설치/해체

  • E가 눌렸을 때 폭탄을 설치하거나 해체할 수 있다. 만약 공격 팀 플레이어라면 남은 폭탄 개수가 있는지를 검사하여, 폭탄이 남아있을 때 폭탄을 설치할 수 있다. 만약 수비 팀 플레이어라면 내 주변의 폭탄이 있고, 그 폭탄과 Collided 상태라면 해체를 할 수 있다.

 

2-5. 동시에 가능한 액션

  1. 마우스 이동
    • 마우스 방향에 따라 캐릭터가 회전한다.
  2. 이동
    • W, A, S, D 키를 눌러 캐릭터를 이동시킬 수 있다.
  3. 공격
    • Left Mouse Button을 누르면 총알을 발사할 수 있다. 탄환이 0개보다 많아야만 총알 발사가 가능하다.

 

3. 블랙 보드 내역

  1. hp : float
    • 플레이어의 Hp
  2. inputs : Dictionary<Type, bool>
    • 눌린 키를 검사할 때 사용
  3. curBullets: int
    • 현재 남은 탄환 개수 검사할 때 사용
  4. isGroggy: bool
    • 첫 번째 죽음만 groggy 상태로 행동불능에 빠짐
    • 첫 번째 죽음 이후 isGroggy를 false로 만들어 Death 상태가 되도록 함
  5. stamina: float
    • 빠르게 달리기를 할 수 있는 스태미나
    • 빠르게 달리기를 할 수록 감소되며 그 외 상태 시 회복
  6. bombCount: int
    • 공격 팀 플레이어에게 있는 변수
    • 현재 남아있는 폭탄 개수
    • 1개 이상이어야만 폭탄 설치 가능