728x90
반응형

📕오늘의 공부 주제



행동 트리(Behaviour Tree)

🤔Why?



게임 AI를 구현할 때, 단순한 상태 머신(FSM)만으로는 복잡한 행동 패턴을 관리하기 어려울 때가 있습니다. 이럴 때 사용되는 대표적인 구조가 **Behaviour Tree**입니다. 이번에 개념과 구성 요소를 정리해서, NPC AI나 보스 패턴 설계에 활용하려고 합니다.

📖오늘의 공부 내용



1. 행동 트리란?

  • AI의 의사결정을 트리 구조로 표현한 것.
  • 각 노드(Node)가 하나의 행동 또는 조건을 나타냄.
  • 루트(Root)에서 시작해 조건에 따라 자식 노드를 순차적으로 평가하며 실행.

2. 구성 요소

① 루트 노드 (Root)

  • 트리의 시작점.

② 제어 노드(Control Node)

  • 자식 노드 실행 흐름을 제어.
  • 종류
    • Selector (선택자)
      • 자식 노드를 순서대로 실행 → 성공 시 멈춤, 실패 시 다음 노드 실행.
      • OR 조건에 해당.
    • Sequence (시퀀스)
      • 자식 노드를 순서대로 실행 → 실패 시 멈춤, 성공 시 다음 노드 실행.
      • AND 조건에 해당.
    • Parallel (병렬)
      • 여러 자식 노드를 동시에 실행.

③ 리프 노드(Leaf Node)

  • Action Node: 실제 행동 수행 (예: 이동, 공격, 대기).
  • Condition Node: 조건 평가 (예: 체력 < 50%).

3. 동작 방식 예시

  1. 루트 노드에서 시작.
  2. Selector/Sequence 등의 제어 노드에서 조건 판단.
  3. 조건에 맞는 리프 노드(Action) 실행.
  4. 실행 결과(Success, Failure, Running)에 따라 다음 흐름 결정.

4. 간단한 예시 (의사코드)

// Sequence: 적이 보이면 쫓아가고, 사거리 안이면 공격
Sequence
    Condition(IsEnemyVisible)
    Action(MoveToEnemy)
    Condition(IsEnemyInRange)
    Action(AttackEnemy)

5. 장점

  1. 모듈화 — 행동을 재사용 가능.
  2. 확장성 — 새로운 행동 추가가 용이.
  3. 가독성 — 트리 구조로 시각화 가능.

6. 단점

  1. 간단한 AI에는 오버엔지니어링이 될 수 있음.
  2. 트리가 복잡해지면 관리 어려움.
  3. 상태 저장(메모리 관리) 설계 필요.

7. 결론

Behaviour Tree는 조건 분기 + 모듈화된 행동을 조합해 복잡한 AI를 직관적으로 설계할 수 있는 구조입니다.
FSM보다 유연하고 확장성이 높아, 최근 많은 게임 AI에서 널리 사용되고 있습니다.

728x90
반응형

'프로그래밍 공부 > TIL' 카테고리의 다른 글

2025-08-12 TIL  (2) 2025.08.12
2025-08-11 TIL  (0) 2025.08.11
2025-08-08 TIL  (0) 2025.08.08
2025-08-07 TIL  (0) 2025.08.07
2025-08-06 TIL  (0) 2025.08.06