다른 비헤이비어 트리 시스템에서는 조건식이라고도 알려진 데코레이터(Decorator) 는 컴포짓(Composite) 또는 태스크(Task) 노드에 어태치되며, 트리에 있는 분기 또는 단일 노드를 실행할 수 있는지 여부를 정의합니다.
Blackboard
블랙보드(Blackboard) 노드는 특정 블랙보드 키(Blackboard Key) 에 값이 설정되어 있는지 확인합니다.
| 프로퍼티 |
설명 |
| 관찰자 노티파이(Notify Observer) |
| |
|
| On Result Change |
조건이 변경될 때만 재평가합니다. |
| On Value Change |
관찰된 블랙보드 키가 변경될 때만 재평가합니다. |
|
| 관찰자 중단(Observer Aborts) |
| |
|
| None |
아무것도 중단하지 않습니다. |
| Self |
자신 및 이 노드 아래에서 실행 중인 모든 서브트리를 중단합니다. |
| Lower Priority |
이 노드의 오른쪽에 있는 모든 노드를 중단합니다. |
| Both |
자신, 이 노드 아래에서 실행 중인 모든 서브트리, 이 노드의 오른쪽에 있는 모든 노드를 중단합니다. |
|
| 블랙보드 키(Blackboard Key) |
|
| 키 쿼리(Key Query) |
| |
|
| Is Set |
값이 설정되었는지 여부입니다. |
| Is Not Set |
값이 설정되지 않았는지 여부입니다. |
|
| 노드 이름(Node Name) |
비헤이비어 트리 그래프에 표시되는 노드 이름입니다. |
Check Gameplay Tag 조건
| 프로퍼티 |
설명 |
| 확인할 액터(Actor to Check) |
확인할 액터에 대한 레퍼런스를 포함하는 블랙보드 키입니다. |
| 일치시킬 태그(Tags to Match) |
데코레이터가 게임플레이 태그 프로퍼티에 나열된 아무(Any) 태그 혹은 모든(All) 태그와 일치해야 합니다. |
| 게임플레이 태그(Gameplay Tags) |
게임플레이 태그 에디터를 로드하여 이 데코레이터에서 사용되어야 하는 태그를 선택합니다. |
| 역 조건(Inverse Condition) |
데코레이터의 결과를 반전시켜 false는 true, true는 false가 되게 할지 여부입니다. |
| 노드 이름(Node Name) |
비헤이비어 트리 그래프에 표시되는 노드 이름입니다. |
Compare BBEntries
Compare BBEntries (Compare Blackboard entries) 노드는 두 블랙보드 키(Blackboard Key) 값을 비교하여 결과가 같은지 다른지에 따라 노드의 실행을 차단하거나 허용합니다.
| 프로퍼티 |
설명 |
| 관찰자 중단(Observer Aborts) |
| |
|
| None |
아무것도 중단하지 않습니다. |
| Self |
자신 및 이 노드 아래에서 실행 중인 모든 서브트리를 중단합니다. |
| Lower Priority |
이 노드의 오른쪽에 있는 모든 노드를 중단합니다. |
| Both |
자신, 이 노드 아래에서 실행 중인 모든 서브트리, 이 노드의 오른쪽에 있는 모든 노드를 중단합니다. |
|
| 연산자(Operator) |
| |
|
| Is Equal To |
두 키가 서로 같은지 여부입니다. |
| Is Not Equal To |
두 키가 서로 다른지 여부입니다. |
|
| 블랙보드 키 A(Blackboard Key A) |
비교에 사용되는 첫 번째 키입니다. |
| 블랙보드 키 B(Blackboard Key B) |
비교에 사용되는 두 번째 키입니다. |
| 노드 이름(Node Name) |
비헤이비어 트리 그래프에 표시되는 노드 이름입니다. |
Composite
컴포짓(Composite) 데코레이터 노드를 사용하면 블루프린트보다 간단하면서 내장형 노드보다는 고급인 로직을 설정할 수 있습니다. 노드에 컴포짓 데코레이터를 추가한 후 컴포짓 데코레이터를 더블클릭하면 컴포짓 그래프가 표시됩니다. 이 그래프 영역에서 우클릭하여 데코레이터 노드를 독립형 노드로 추가하고 AND , OR , NOT 노드로 서로 연결하면 고급 로직을 만들 수 있습니다.
이미지를 클릭하면 최대 크기로 볼 수 있습니다.
| 프로퍼티 |
설명 |
| 컴포짓 이름(Composite Name) |
비헤이비어 트리 그래프에 표시되는 노드 이름입니다. |
| 연산 표시(Show Operations) |
노드에 일반 텍스트로 연산을 나열합니다. |
컴포짓 데코레이터를 이러한 방식으로 사용하면 메모리와 퍼포먼스에 영향이 갑니다. C++로 데코레이터를 생성하면 동일한 커스텀 비헤이비어를 보다 효율적으로 작동하게 할 수 있습니다.
Conditional Loop
키 쿼리(Key Query) 조건이 충족되는 한 이 데코레이터는 어태치된 노드를 루프시킵니다.
| 프로퍼티 |
설명 |
| 블랙보드 키(Blackboard Key) |
|
| 키 쿼리(Key Query) |
| |
|
| Is Set |
값이 설정되었는지 여부입니다. |
| Is Not Set |
값이 설정되지 않았는지 여부입니다. |
|
| 노드 이름(Node Name) |
비헤이비어 트리 그래프에 표시되는 노드 이름입니다. |
Cone Check
Cone Check 데코레이터는 세 가지 벡터 키를 취합니다. 첫 번째 키는 원뿔이 시작될 위치를, 두 번째 키는 원뿔이 가리키는 방향을 정의하며, 세 번째 키는 이 위치가 원뿔 내부에 있는지 여부를 확인합니다. 원뿔의 각도는 원뿔 반각(Cone Half Angle) 프로퍼티로 정의합니다.
| 프로퍼티 |
설명 |
| 관찰자 중단(Observer Aborts) |
| |
|
| None |
아무것도 중단하지 않습니다. |
| Self |
자신 및 이 노드 아래에서 실행 중인 모든 서브트리를 중단합니다. |
| Lower Priority |
이 노드의 오른쪽에 있는 모든 노드를 중단합니다. |
| Both |
자신, 이 노드 아래에서 실행 중인 모든 서브트리, 이 노드의 오른쪽에 있는 모든 노드를 중단합니다. |
|
| 원뿔 반각(Cone Half Angle) |
원뿔의 반각입니다. 예를 들어 원뿔이 90도가 되려면 이 값은 45도여야 합니다. |
| 원뿔 원점(Cone Origin) |
원뿔이 시작되는 위치(꼭짓점)입니다. |
| 원뿔 방향(Cone Direction) |
원뿔의 밑면이 향하는 방향입니다. |
| 관찰됨(Observed) |
원뿔 내에 있는지 확인 중인 위치 또는 액터입니다. |
| 역 조건(Inverse Condition) |
데코레이터의 결과를 반전시켜 false는 true, true는 false가 되게 할지 여부입니다.
|
| 노드 이름(Node Name) |
비헤이비어 트리 그래프에 표시되는 노드 이름입니다. |
Cooldown
Cooldown 노드는 쿨다운 시간이 만료될 때까지 노드나 분기의 실행을 잠급니다.
| 프로퍼티 |
설명 |
| 관찰자 중단(Observer Aborts) |
| |
|
| None |
아무것도 중단하지 않습니다. |
| Self |
자신 및 이 노드 아래에서 실행 중인 모든 서브트리를 중단합니다. |
| Lower Priority |
이 노드의 오른쪽에 있는 모든 노드를 중단합니다. |
| Both |
자신, 이 노드 아래에서 실행 중인 모든 서브트리, 이 노드의 오른쪽에 있는 모든 노드를 중단합니다. |
|
| 쿨 다운 시간(Cooldown time) |
Cooldown 데코레이터가 이 노드의 실행을 잠그는 시간(초 단위)입니다. |
| 노드 이름(Node Name) |
비헤이비어 트리 그래프에 표시되는 노드 이름입니다. |
커스텀 데코레이터
새 데코레이터(New Decorator) 버튼을 클릭하면 직접 만든 커스텀 블루프린트 로직 및/또는 파라미터로 새로운 데코레이터 를 생성할 수 있습니다.
커스텀 로직에는 다음 파라미터 또한 포함됩니다.
| 프로퍼티 |
설명 |
| 관찰자 중단(Observer Aborts) |
| |
|
| None |
아무것도 중단하지 않습니다. |
| Self |
자신 및 이 노드 아래에서 실행 중인 모든 서브트리를 중단합니다. |
| Lower Priority |
이 노드의 오른쪽에 있는 모든 노드를 중단합니다. |
| Both |
자신, 이 노드 아래에서 실행 중인 모든 서브트리, 이 노드의 오른쪽에 있는 모든 노드를 중단합니다. |
|
| 프로퍼티 디테일 표시(Show Property Details) |
노드 프로퍼티의 세부 정보를 표시합니다. |
| 노드 이름(Node Name) |
비헤이비어 트리 그래프에 표시되는 노드 이름입니다. |
| 역 조건(Inverse Condition) |
데코레이터의 결과를 반전시켜 false는 true, true는 false가 되게 할지 여부입니다.
|
Does Path Exist
Does Path Exist 노드는 블랙보드 키 A와 블랙보드 키 B로 경로를 만들 수 있는지 여부를 확인합니다.
| 프로퍼티 |
설명 |
| 관찰자 중단(Observer Aborts) |
| |
|
| None |
아무것도 중단하지 않습니다. |
| Self |
자신 및 이 노드 아래에서 실행 중인 모든 서브트리를 중단합니다. |
| Lower Priority |
이 노드의 오른쪽에 있는 모든 노드를 중단합니다. |
| Both |
자신, 이 노드 아래에서 실행 중인 모든 서브트리, 이 노드의 오른쪽에 있는 모든 노드를 중단합니다. |
|
| 블랙보드 키 A(Blackboard Key A) |
경로의 첫 번째 위치입니다. |
| 블랙보드 키 B(Blackboard Key B) |
경로의 두 번째 위치입니다. |
| 경로 쿼리 타입(Path Query Type) |
| |
|
| NavMesh Raycast 2D |
아주 빠름 |
| Hierarchical Query |
빠름 |
| Regular Path Finding |
느림 |
|
| 역 조건(Inverse Condition) |
데코레이터의 결과를 반전시켜 false는 true, true는 false가 되게 할지 여부입니다.
|
| 필터 클래스(Filter Class) |
사용할 내비게이션 데이터입니다. None 으로 설정하면 디폴트 내비게이션 데이터를 사용합니다. |
| 노드 이름(Node Name) |
비헤이비어 트리 그래프에 표시되는 노드 이름입니다. |
Force Success
Force Success 데코레이터는 노드 결과를 성공으로 변경합니다.
| 프로퍼티 |
설명 |
| 노드 이름(Node Name) |
비헤이비어 트리 그래프에 표시되는 노드 이름입니다. |
Is At Location
Is At Location 데코레이터 노드는 AI가 제어하는 폰이 특정 위치에 있는지 확인합니다.
| 프로퍼티 |
설명 |
| 허용 가능 반경(Acceptable Radius) |
위치에 있는 것으로 인정되는 거리의 한계치입니다. |
| 파라미터화된 허용 반경(Parametrized Acceptable Radius) |
파라미터 기반의 허용 가능 반경(난수 등)입니다. |
| 지오메트릭 거리 타입(Geometric Distance Type) |
경로 탐색 기반 테스트 를 비활성화했다면 이 옵션으로 거리 타입을 3D, 2D 또는 Z 값으로 설정합니다. |
| 내비 에이전트 목표 위치 사용(Use Nav Agent Goal Location) |
액터로 이동하는 중이고 그 액터가 내비 에이전트(Nav Agent)인 경우, 액터의 내비 에이전트 목표 위치로 이동합니다.
|
| 경로 탐색 기반 테스트(Path Finding Based Test) |
활성화하면 경로를 따라가는 동안 수행하는 테스트에서 일관된 결과가 나옵니다. 비활성화하면 거리 타입(Distance Type) 에서 환경설정한 대로 지오메트릭 거리(Geometric Distance) 를 사용합니다. |
| 역 조건(Inverse Condition) |
데코레이터의 결과를 반전시켜 false는 true, true는 false가 되게 할지 여부입니다.
|
| 블랙보드 키(Blackboard Key) |
테스트할 블랙보드 키 값입니다. |
| 노드 이름(Node Name) |
사용자 정의된 노드 이름입니다. |
Is BBEntry Of Class
Is BBEntry Of Class 데코레이터 노드는 지정된 블랙보드 키가 특정 클래스에 속하는지 확인합니다.
| 프로퍼티 |
설명 |
| 관찰자 중단(Observer Aborts) |
| |
|
| None |
아무것도 중단하지 않습니다. |
| Self |
자신 및 이 노드 아래에서 실행 중인 모든 서브트리를 중단합니다. |
| Lower Priority |
이 노드의 오른쪽에 있는 모든 노드를 중단합니다. |
| Both |
자신, 이 노드 아래에서 실행 중인 모든 서브트리, 이 노드의 오른쪽에 있는 모든 노드를 중단합니다. |
|
| 테스트 클래스(Test Class) |
블랙보드 키 프로퍼티의 오브젝트 클래스에 대해 테스트할 클래스 타입입니다. |
| 블랙보드 키(Blackboard Key) |
테스트할 블랙보드 키입니다. |
| 노드 이름(Node Name) |
비헤이비어 트리 그래프에 표시되는 노드 이름입니다. |
Keep in Cone
Keep in Cone 데코레이터 노드의 조건은 관찰된 위치가 여전히 원뿔 내에 있는지에 따라 정해집니다. 원뿔의 방향은 노드에 처음으로 연관성이 생길 때 계산됩니다.
| 프로퍼티 |
설명 |
| 관찰자 중단(Observer Aborts) |
| |
|
| None |
아무것도 중단하지 않습니다. |
| Self |
자신 및 이 노드 아래에서 실행 중인 모든 서브트리를 중단합니다. |
| Lower Priority |
이 노드의 오른쪽에 있는 모든 노드를 중단합니다. |
| Both |
자신, 이 노드 아래에서 실행 중인 모든 서브트리, 이 노드의 오른쪽에 있는 모든 노드를 중단합니다. |
|
| 원뿔 반각(Cone Half Angle) |
원뿔의 반각입니다. 예를 들어 원뿔이 90도가 되려면 이 값은 45도여야 합니다. |
| 원뿔 원점(Cone Origin) |
원뿔이 시작되는 위치(꼭짓점)입니다. |
| 관찰됨(Observed) |
원뿔 내에 유지할 위치 또는 액터입니다. |
| 노드 이름(Node Name) |
비헤이비어 트리 그래프에 표시되는 노드 이름입니다. |
Loop
Loop 데코레이터는 노드 또는 분기를 일정 횟수만큼 또는 무한히 루프합니다.
| 프로퍼티 |
설명 |
| 루프 수(Num Loops) |
실행할 루프 횟수입니다. |
| 무한 루프(Infinite Loop) |
루프를 무한히 실행할지 여부입니다. |
| 무한 루프 타임아웃 시간(Infinite Loop Timeout Time) |
무한 루프(Infinite Loop) 가 활성화된 경우의 타임아웃 값입니다. 값이 음수라면 루프는 종료되지 않습니다. |
| 노드 이름(Node Name) |
비헤이비어 트리 그래프에 표시되는 노드 이름입니다. |
Set Tag Cooldown
Set Tag Cooldown 노드는 게임플레이 태그(Gameplay Tag)에 쿨다운 대기시간을 설정합니다.
| 프로퍼티 |
설명 |
| 쿨다운 태그(Cooldown Tag) |
쿨다운에 사용되는 게임플레이 태그입니다. |
| 쿨다운 대기시간(Cooldown Duration) |
쿨다운의 길이입니다. 단위는 초입니다. |
| 기존 대기시간에 추가(Add to Existing Duration) |
지정된 게임플레이 태그에 기존 쿨다운이 있다면 더 추가할지 여부입니다. |
| 노드 이름(Node Name) |
비헤이비어 트리 그래프에 표시되는 노드 이름입니다. |
Tag Cooldown
게임플레이 태그의 쿨다운 타이머가 만료되었는지에 따라 조건이 정해지는 데코레이터 노드입니다.
| 프로퍼티 |
설명 |
| 관찰자 중단(Observer Aborts) |
| |
|
| None |
아무것도 중단하지 않습니다. |
| Self |
자신 및 이 노드 아래에서 실행 중인 모든 서브트리를 중단합니다. |
| Lower Priority |
이 노드의 오른쪽에 있는 모든 노드를 중단합니다. |
| Both |
자신, 이 노드 아래에서 실행 중인 모든 서브트리, 이 노드의 오른쪽에 있는 모든 노드를 중단합니다. |
|
| 쿨다운 태그(Cooldown Tag) |
쿨다운에 사용되는 게임플레이 태그입니다. |
| 쿨다운 대기시간(Cooldown Duration) |
쿨다운의 길이입니다. 단위는 초입니다. |
| 기존 대기시간에 추가(Add to Existing Duration) |
지정된 게임플레이 태그에 기존 쿨다운이 있다면 더 추가할지 여부입니다. |
| 비활성화 시 쿨다운 추가/설정(Adds/Sets Cooldown on Deactivation) |
데코레이터가 비활성화될 때 쿨다운 태그의 값을 더하거나 설정할지 여부입니다. |
| 노드 이름(Node Name) |
비헤이비어 트리 그래프에 표시되는 노드 이름입니다. |
Time Limit
시간 제한(Time Limit) 데코레이터는 분기 또는 노드가 일정 시간 내에 완료되지 않으면 중단되고 실패하게 합니다. 이 타이머는 노드가 포커스를 받을 때마다 초기화됩니다.
| 프로퍼티 |
설명 |
| 관찰자 중단(Observer Aborts) |
| |
|
| None |
아무것도 중단하지 않습니다. |
| Self |
자신 및 이 노드 아래에서 실행 중인 모든 서브트리를 중단합니다. |
| Lower Priority |
이 노드의 오른쪽에 있는 모든 노드를 중단합니다. |
| Both |
자신, 이 노드 아래에서 실행 중인 모든 서브트리, 이 노드의 오른쪽에 있는 모든 노드를 중단합니다. |
|
| 시간 제한(Time Limit) |
노드가 실패하기까지 주어지는 제한 시간입니다. 단위는 초입니다. |
| 노드 이름(Node Name) |
비헤이비어 트리 그래프에 표시되는 노드 이름입니다. |