Behavior Tree Tick

조건을 먼저 좁히고 성공한 행동만 실행한다

비헤이비어 트리는 루트에서 시작해 컴포지트가 자식 순서를 정하고, 데코레이터가 실행 허용 여부를 검사한 뒤, 태스크가 실제 행동을 수행합니다. 서비스는 판단에 필요한 블랙보드 값을 주기적으로 갱신합니다.

판단 단위
Selector
성공하는 첫 대안을 선택
Sequence
모든 단계가 성공해야 통과
Task
행동 후 Success 또는 Fail 반환
노드 역할 평가 기준 성공 시 실패 시
Root 비헤이비어 트리의 시작점 첫 컴포지트로 판단을 넘김 트리 실행 상태를 점검
Selector 자식을 우선순위 순서로 검사 첫 성공 행동에서 멈춤 다음 대안을 계속 검사
Sequence 단계를 순서대로 모두 실행 다음 단계로 진행 즉시 실패를 부모에게 반환
Decorator 사정거리, 체력, 쿨다운 조건 확인 붙은 하위 트리 실행 허용 그 행동 전체를 건너뜀
Service 블랙보드 값을 주기적으로 갱신 판단에 최신 값을 제공 오래된 값으로 분기할 위험
Task Move To, Attack, Wait 같은 실제 행동 부모 컴포지트에 Success 반환 부모 컴포지트에 Fail 반환
  1. 01 Root 진입 AI Controller가 트리 틱을 시작합니다.
  2. 02 Service 갱신 TargetActor, Health 같은 블랙보드 값을 새로 씁니다.
  3. 03 Decorator 검사 거리, 시야, 쿨다운 조건으로 실행 가능성을 좁힙니다.
  4. 04 Composite 결정 Selector는 대안을 고르고 Sequence는 절차를 검증합니다.
  5. 05 Task 실행 행동 결과를 Success 또는 Fail로 부모에게 돌려줍니다.
공격 분기

플레이어 감지와 사정거리 데코레이터가 동시에 참일 때만 공격 태스크로 들어갑니다.

순찰 분기

높은 우선순위 행동이 모두 실패하면 Selector가 낮은 우선순위의 순찰 행동을 선택합니다.

실패 지점

Sequence는 중간 조건 하나만 실패해도 나머지 태스크를 실행하지 않으므로, 실패한 노드가 디버그 시작점입니다.