게임프로그래밍/실습2

[실습2] 56. 행동트리 커스텀 서비스 만들기

우승자는메이 2024. 12. 28. 20:13
1. 서비스란?

역할

서비스는 행동 트리 내에서 주기적으로 실행되어 AI의 상태를 업데이트하거나 논리를 평가합니다.
백그라운드 작업처럼 작동하며, 게임플레이 상황에 맞는 데이터를 실시간으로 갱신합니다.

특징

  • 주기적 업데이트: 특정 간격으로 실행되며, 행동 트리에서 동작 중인 노드에 대한 정보를 갱신하거나 논리를 평가.
  • 연결된 노드와 상호작용: 서비스가 연결된 노드의 동작에 영향을 미침.
  • 블랙보드 업데이트: 서비스가 데이터를 계산하여 블랙보드 값을 갱신.


2. 커스텀 서비스 클래스 만들기

 

서비스 클래스를 만들어 행동트리 내에서 AI의 상태를 업데이트 해보자.

 

서비스 클래스는 C++가 아닌 블루프린트 클래스로 만들 것을 권장(사실상 강제)하고 있다.

 

 

 

 

서비스 클래스는 위와 같이 생겼는데 디테일 패널에서 노드 네임과 설명을 설정할 수 있다.

 

행동트리 클래스로 가서 서비스를 추가하려고 하면 새로 생성한 블루프린트 클래스가 보인다.

 

 

 

이렇게 노드 이름과 내용이 추가되는데 보는 것처럼  한글로 설정해도 아무런 문제가 없는 것을 볼 수 있다.

여기서는 설명만 한글로 했는데 노드 이름을 한글로 해도 정상 작동한다.

 

이제 이것을 구현하는 방법을 알아보자. 다시 서비스 클래스로 들어간다.

 

Receive Tick AI 함수를 오버라이드 한다.

 

 

그러면 이렇게 이벤트 그래프가 나오는 것을 볼 수 있다.

 

다음에는 이것을 실제로 활용하는 법을 알아보도록 하겠다.