BehaviorTree.CPP 내장 데코레이터 목록 (Built-in Decorator List of BehaviorTree.CPP)

BehaviorTree.CPP 내장 데코레이터 목록 (Built-in Decorator List of BehaviorTree.CPP)

1. 개요

BehaviorTree.CPP는 행동 트리 설계에 필요한 다양한 데코레이터를 기본으로 제공한다. 본 절에서는 BehaviorTree.CPP 4.x에서 제공하는 모든 내장 데코레이터의 종합 목록과 각각의 특성을 정리한다.

2. 상태 변환 데코레이터

XML 이름C++ 클래스동작매개변수
InverterInverterNodeSUCCESS↔FAILURE 반전없음
ForceSuccessForceSuccessNode항상 SUCCESS 반환없음
ForceFailureForceFailureNode항상 FAILURE 반환없음

3. 실행 제어 데코레이터

XML 이름C++ 클래스동작매개변수
RepeatRepeatNode지정 횟수 반복num_cycles (int, -1=무한)
RetryNodeRetryNodeFAILURE 시 재시도num_attempts (int)
RunOnceRunOnce최초 1회만 실행then_skip (bool)
KeepRunningUntilFailureKeepRunningUntilFailureFAILURE까지 반복없음

4. 시간 제어 데코레이터

XML 이름C++ 클래스동작매개변수
TimeoutTimeoutNode실행 시간 제한msec (unsigned)
DelayDelayNode실행 전 지연delay_msec (unsigned)

5. 조건부 실행 데코레이터

XML 이름C++ 클래스동작매개변수
SkipUnlessUpdatedSkipUnlessUpdated블랙보드 변경 시에만 실행없음
PreconditionPreconditionNode스크립트 조건 검사if, else

6. 스크립트 기반 데코레이터 (속성)

BehaviorTree.CPP 4.x에서 모든 노드에 적용 가능한 스크립트 속성이다.

속성 이름적용 시점조건 참일 때조건 거짓일 때
_skipIftick 전SKIPPED자식 tick
_failureIftick 전FAILURE자식 tick
_successIftick 전SUCCESS자식 tick
_whiletick 전자식 tickSKIPPED
_onSuccesstick 후스크립트 실행-
_onFailuretick 후-스크립트 실행
_onHaltedhalt 시스크립트 실행-

7. 기타 제어 노드 (데코레이터 유사)

다음 노드들은 엄밀한 의미에서 데코레이터(단일 자식)가 아니나, 조건부 실행 메커니즘을 제공한다.

XML 이름자식 수동작
WhileDoElse3조건에 따라 Do 또는 Else 실행
IfThenElse2~3조건에 따라 분기
SwitchN값에 따라 분기

8. 버전별 차이

기능3.x4.x
기본 데코레이터Inverter, ForceSuccess, ForceFailure, Repeat, Retry, Timeout동일 + RunOnce, Delay, KeepRunningUntilFailure
스크립트 속성미지원_skipIf, _failureIf, _while
SKIPPED 상태미지원지원
SkipUnlessUpdated미지원지원

9. 참고 문헌

  • BehaviorTree.CPP 공식 문서. https://www.behaviortree.dev/
  • BehaviorTree.CPP GitHub. https://github.com/BehaviorTree/BehaviorTree.CPP

버전날짜변경 사항
v0.12026-04-05초안 작성