Decorator
Blackboard의 값을 기반으로 특정 Composite Task의 수행 분기를
결정하는 부분으로 조건문, 조건식의 개념이다
Decorator 주의점
Decorator을 사용할 때는 Notify Observer와 Observer aborts 설정에 따라
결과가 달라질 수 있음을 유의해야 한다
Notify Observer
Notify Observer를 On Value Change로 설정하는 경우에는
해당 키 값의 변경이 감지되면, Notify Observer가 발생한다
Notify Observer를 On Result Change로 설정하는 경우에는
조건식의 결과가 변경되는 경우에 Notify Observer가 발생한다
예를 들어, x > 1.0f라는 조건식을 가정하에는
x가 0.8f에서 0.9f가 되면 On Value Change만 발생한다
x가 1.0f에서 1.1f가 되면 On Value Change와 On Result Change가 둘 다 발생한다
Observer aborts
Observer aborts를 None으로 설정하면,
해당 Composite Task의 모든 자식 Task들이 마무리될 때까지 중단되지 않는다
즉, 아무것도 중단 안된다는 것이다
Observer aborts를 Self로 설정하면,
해당 Composite Task의 자식 Task들의 수행을 즉시 중단한다
Observer aborts를 Lower Priority로 설정하면,
자신의 우측 노드들을 모두 중단한다
Observer aborts를 Both로 설정하면,
Self + Lower Priority의 개념으로
하위 서브트리와 오른쪽 모든 노드를 중단한다
Key Query와 Blackboard Key
Key Query와 Blackboard Key를 통해 조건문을 만들 수 있다
Blackboard Key를 통해 변수를 설정하고
해당 변수의 조건을 Is Set, Is Not Set으로 설정이 가능하다
'게임 엔진 > [코드조선] 언리얼' 카테고리의 다른 글
언리얼 Game Data - ActorComponent (0) | 2024.05.17 |
---|---|
언리얼 Game Data - GameInstance (0) | 2024.05.17 |
언리얼 AI - Blackboard Key (0) | 2024.05.16 |
언리얼 AI - Behavior Tree, Blackboard (0) | 2024.05.16 |
언리얼 AI - AIController (0) | 2024.05.16 |