블랙보드
블랙보드는 인공지능의 판단에 사용하는 데이터 집합을 의미합니다. NPC의 의사 결정은 블랙보드에 있는 데이터를 기반으로 진행됩니다.
비헤이비어 트리
블랙보드 데이터에 기반해 설계한 비헤이비어 트리의 정보를 저장한 애셋입니다. 언리얼 에디터에서는 비헤이비어 트리를 시각화해 저장할 수 있는도록 편집기능을 제공합니다.
비헤이비어 트리 노드의 종류
비헤이비어 트리의 노드는 루트(Root), 컴포짓(Composite), 태스크(Task), 데코레이터(Decorator), 서비스(Service). 총 5 가지의 종류가 존재합니다.
루트(Root)
비헤이비어 트리의 시작을 나타내는 노드이며, 한 개의 노드만 연결할 수 있습니다. 디테일 패널에서 이 비헤이비어 트리에서 사용할 블랙보드 애셋을 설정할 수 있습니다.
컴포짓(Composite)
해당 분기가 실행되는 규칙을 정의하는 노드입니다.
데코레이터 노드를 추가하여 블랙보드의 값을 기반으로 특정 컴포짓의 실행 여부를 경정하거나, 서비스 노드를 추가하여 해당 컴포짓에 속한 태스크들이 실행되는 동안 반복적인 작업을 실행합니다.
컴포짓 노드에는 셀렉터(Selector), 시퀸스(Sequence), 심플 페러렐(SimpleParallel). 총 3 가지의 종류가 존재합니다.
셀렉터(Selector)
자손 노드를 왼쪽에서 오른쪽 순서로 실행하며, 현재 실행 중인 자손노드가 실패하면 그다음 노드를 실행합니다. 만일, 어떤 자손이 성공하게 되면 그 이후 다른 자손은 실행되지 않습니다. 하나라도 자손이 성공하면 그 셀렉터도 성공한 것이 되며, 모든 자손이 실패하면 그 셀렉터도 실패한 것입니다.
시퀸스(Sequence)
왼쪽에서 오른쪽으로 자손 노드를 실행하며, 현재 실행 중인 노드가 성공하면 그다음 노드를 실행하며, 만일 실패하면 그 이후 다른 자손의 실행을 중지합니다. 자손이 실패하면 그 시퀸스도 실패한 것이며, 모든 자손이 성공해야 그 시퀸스가 성공한 것으로 처리됩니다.
심플 페러렐(Simple Parallel)
전체 노드 트리와 동시에 하나의 태스크를 실행할 수 있습니다. 디테일 패널의 Finish Mode 설정을 통해 메인 테스크가 끝나면 바로 백그라운드 트리를 중단(Immediate)할지, 백그라운드 트리가 끝나는 것을 기다릴지(Delayed) 설정합니다.
태스크(Task)
보라색 노드이며 AI의 행동이나 블랙보드의 값의 조정같은 작업을 하는 노드입니다. 태스크는 독립적으로 실행될 수없고 반드시 컴포짓 노드를 거쳐 실행돼야합니다.
데코레이터(Decorator)
파란색 노드이며 블랙보드의 값을 기반으로 특정 컴포짓의 실행 여부를 결정하는 노드입니다.
서비스(Service)
초록색 노드이며 독립적으로 동작하지 않고 컴포짓 노드에 부착되는 노드입니다. 해당 컴포짓에 속한 태스크들이 실행되는 동안 반복적인 작업을 실행하는 데 적합합니다.
'Unreal Engine > AI' 카테고리의 다른 글
[Unreal Engine 4 AI] Stimulus 구조체 (0) | 2021.12.09 |
---|---|
[Unreal Engine 4 AI] 비헤이비어 트리 Decorator 노드 Flow Control (0) | 2021.11.19 |
[Unreal Engine 4 AI] ExecuteTask 함수 (0) | 2021.10.27 |
[Unreal Engine 4 AI] AIController 생성 및 설정 (0) | 2021.10.26 |