728x90
반응형
📕오늘의 공부 주제
행동 트리(Behaviour Tree)
🤔Why?
게임 AI를 구현할 때, 단순한 상태 머신(FSM)만으로는 복잡한 행동 패턴을 관리하기 어려울 때가 있습니다. 이럴 때 사용되는 대표적인 구조가 **Behaviour Tree**입니다. 이번에 개념과 구성 요소를 정리해서, NPC AI나 보스 패턴 설계에 활용하려고 합니다.
📖오늘의 공부 내용
1. 행동 트리란?
- AI의 의사결정을 트리 구조로 표현한 것.
- 각 노드(Node)가 하나의 행동 또는 조건을 나타냄.
- 루트(Root)에서 시작해 조건에 따라 자식 노드를 순차적으로 평가하며 실행.
2. 구성 요소
① 루트 노드 (Root)
- 트리의 시작점.
② 제어 노드(Control Node)
- 자식 노드 실행 흐름을 제어.
- 종류
- Selector (선택자)
- 자식 노드를 순서대로 실행 → 성공 시 멈춤, 실패 시 다음 노드 실행.
- OR 조건에 해당.
- Sequence (시퀀스)
- 자식 노드를 순서대로 실행 → 실패 시 멈춤, 성공 시 다음 노드 실행.
- AND 조건에 해당.
- Parallel (병렬)
- 여러 자식 노드를 동시에 실행.
- Selector (선택자)
③ 리프 노드(Leaf Node)
- Action Node: 실제 행동 수행 (예: 이동, 공격, 대기).
- Condition Node: 조건 평가 (예: 체력 < 50%).
3. 동작 방식 예시
- 루트 노드에서 시작.
- Selector/Sequence 등의 제어 노드에서 조건 판단.
- 조건에 맞는 리프 노드(Action) 실행.
- 실행 결과(Success, Failure, Running)에 따라 다음 흐름 결정.
4. 간단한 예시 (의사코드)
// Sequence: 적이 보이면 쫓아가고, 사거리 안이면 공격
Sequence
Condition(IsEnemyVisible)
Action(MoveToEnemy)
Condition(IsEnemyInRange)
Action(AttackEnemy)
5. 장점
- 모듈화 — 행동을 재사용 가능.
- 확장성 — 새로운 행동 추가가 용이.
- 가독성 — 트리 구조로 시각화 가능.
6. 단점
- 간단한 AI에는 오버엔지니어링이 될 수 있음.
- 트리가 복잡해지면 관리 어려움.
- 상태 저장(메모리 관리) 설계 필요.
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 |
