Unity

Behavior Tree 개념 / 적용해 보기

(ꐦ •᷄ࡇ•᷅) 2025. 1. 24. 14:10

Behavior Tree는 시스템의 의사 결정 및 행동 관리를 구조화하고 계층화된 방식으로 표현하는 모델이다.

복잡한 행동을 논리적으로 설계하고, 확장성을 제공하는 데 유용하다.


구조

Behavior Tree는 트리 형태의 계층 구조로 이루어져 있으며, 트리의 각 노드는 특정 의사 결정 또는 행동 수행을 나타낸다.

 

1. Root Node

  • 트리의 최상위 노드이며, 행동의 시작점이다.

2. Composite Node

  • 여러 하위 노드를 포함하며, 트리의 흐름을 제어한다.
  • 예로 Selector, Sequence가 있다.

3. Decorator Node

  • 특정 조건을 추가하거나 노드의 결과를 수정한다.
  • 조건 충족 시에만 실행 등

 

LeafNode, Action Node

4. Leaf Node (Action Node)

  • 실제로 행동을 수행하거나 조건을 평가한다.
  • 행동: 캐릭터의 공격, 이동 등
  • 조건: 플레이어와의 거리가 5m 이내인지? 확인

핵심 노드 유형

Selector

1. Selector (Composite Node)

  • 여러 하위 노드 중 하나라도 성공하면 성공으로 간주
  • 왼쪽에서 오른쪽으로 노드를 탐색하며, 첫번째 성공 노드를 선택.
  • 용도: 여러 대체 행동 중 하나를 실행.
Selector:
- 방어 가능? → 방어 실행
- 플레이어 근접? → 회피
- 기본 행동 실행

 

Sequence

2. Sequence (Composite Node)

  • 여러 하위 노드를 순차적으로 실행하며, 모든 노드가 성공해야 성공으로 간주
  • 왼쪽에서 오른쪽으로 노드를 탐색하며, 하나라도 실패하면 즉시 실패로 간주
  • 용도: 순차적인 행동을 설계
Sequence:
- 플레이어와의 거리 확인 (조건).
- 이동 경로 설정 (행동).
- 접근 실행 (행동).

 

3. Decorator

  • 하위 노드의 실행 결과를 평가하거나 조건을 추가
  • 용도: 조건부 행동 설계
플레이어가 공격 중일 때만 방어 행동 실행

 

4. Leaf

  • 트리의 끝에 위치하며, 실제 행동 또는 조건 검사를 수행
행동: "캐릭터가 근접 공격을 실행."
조건: "체력이 50% 미만인가?"

Behavior Tree의 작동 방식

  • 트리는 루트 노드에서 시작해 왼쪽에서 오른쪽으로 탐색한다.
  • 각 노드는 Success, Failure, Running 중 하나의 결과를 반환한다.
  • 트리는 결과를 상위 노드에 전달하며, 최종적으로 루트 노드에서 결과가 도출된다.
  • DFS

 


적용

참고

블로그