서비스(Services) 는 컴포짓(Composite) 또는 태스크(Task) 노드에 어태치되며, 분기가 실행 중인 동안 정의된 빈도로 실행됩니다. 보통 블랙보드의 확인과 업데이트에 사용됩니다. 이 노드는 다른 비헤이비어 트리 시스템에서 전통적인 병렬(Parallel) 노드를 대체합니다.
Default Focus
Default Focus 는 AI 컨트롤러(AI Controller)의 포커스를 설정하여 블루프린트 및 코드의 액터에 액세스하는 바로가기를 생성합니다. AI 컨트롤러의 포커스를 액터로 설정하면 블랙보드 키에 액세스하지 않고 AI 컨트롤러에서 직접 액세스할 수 있습니다.
| 프로퍼티 | 설명 |
|---|---|
| 블랙보드 키(Blackboard Key) | AI 컨트롤러가 GetFocusActor 로 빠르게 참조할 액터 키(베이스 클래스가 액터로 설정된 오브젝트 키)를 가져옵니다. |
| 노드 이름(Node Name) | 비헤이비어 트리 그래프에 표시되는 노드 이름입니다. |
Run EQS
Run EQS 서비스 노드로는 지정된 간격으로 인바이런먼트 쿼리 시스템(Environmental Query System, EQS) 템플릿을 정기적으로 실행하고 지정된 블랙보드 키를 업데이트할 수 있습니다.
| 프로퍼티 | 설명 | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| 쿼리 템플릿(Query Template) | 실행할 EQS 에셋입니다. | ||||||||||
| 쿼리 환경설정(Query Config) | 쿼리에 포함할 추가 파라미터입니다. | ||||||||||
| EQS 쿼리 블랙보드 키(EQSQuery Blackboard Key) | 지정된 EQS 쿼리 템플릿을 사용하지 않고 EQS 쿼리 템플릿이 저장되는 블랙보드 키를 사용하는 옵션입니다. | ||||||||||
| 실행 모드(Run Mode) |
|
||||||||||
| 실패 시 BB 업데이트(Update BBOn Fail) | EQS 쿼리가 실패할 때 블랙보드를 업데이트합니다. | ||||||||||
| 블랙보드 키(Blackboard Key) | 서비스가 결과를 작성할 블랙보드 키입니다. FVector나 액터일 수 있습니다. | ||||||||||
| 간격(Interval) | 서비스의 후속 틱 사이에 걸리는 시간을 정의합니다. | ||||||||||
| 랜덤 편차(Random Deviation) | 서비스의 간격 값에 랜덤 범위 값을 추가합니다. | ||||||||||
| 검색 시작 시 틱 호출(Call Tick on Search Start) | 태스크 검색이 이 노드를 검색하기 시작하면 틱 이벤트를 호출합니다. 검색 시작(Search Start) 도 호출됩니다. | ||||||||||
| 활성화할 때마다 타이머 재시작(Restart Timer on Each Activation) | 설정하면 노드가 활성화될 때 다음 틱 시간이 설정된 간격 값으로 항상 리셋됩니다. | ||||||||||
| 노드 이름(Node Name) | 비헤이비어 트리 그래프에 표시되는 노드 이름입니다. |
커스텀 서비스
툴바에서 새 서비스(New Service) 버튼을 클릭하면 블루프린트 로직 및/또는 파라미터를 포함하는 서비스 를 생성할 수 있습니다.
블루프린트 서비스는 C++ 서비스에 비해 퍼포먼스가 떨어집니다. 최적화가 중요하다면 네이티브 서비스를 사용하는 것이 좋습니다.
서비스를 생성할 때 다음 프로퍼티 또한 사용할 수 있습니다.
| 프로퍼티 | 설명 |
|---|---|
| 프로퍼티 디테일 표시(Show Property Details) | 활성화하면 프로퍼티의 세부 정보를 표시합니다. |
| 이벤트 디테일 표시(Show Event Details) | 활성화하면 구현된 이벤트의 세부 정보를 표시합니다. |
| 노드 이름(Node Name) | 비헤이비어 트리 그래프에 표시되는 노드 이름입니다. |
| 간격(Interval) | 서비스의 후속 틱 사이에 걸리는 시간을 정의합니다. |
| 랜덤 편차(Random Deviation) | 서비스의 간격 값에 랜덤 범위 값을 추가합니다. |
| 검색 시작 시 틱 호출(Call Tick on Search Start) | 태스크 검색이 이 노드를 검색하기 시작하면 틱 이벤트를 호출합니다. 검색 시작(Search Start) 도 호출됩니다. |
| 활성화할 때마다 타이머 재시작(Restart Timer on Each Activation) | 설정하면 노드가 활성화될 때 다음 틱 시간이 설정된 간격 값으로 항상 리셋됩니다. |