알아두면 좋은 것들(언리얼 관련 여러 잡다한 정보)

BTTaskNode 와 BTTaskNode_BlackboardBase

Turtle_Jun 2025. 9. 16. 20:29

NPC 동작 구현을 위해 Task 노드를 구현하는데 BTTaskNode와 BTTask_BlakcboardBase의 차이를 알아보도록 한다.

 

BTTaskNode 와 BlackboardBase는 값을 읽어오고 설정하는데 크게 차이를 확인 할 수 있다.

 

- BTTaskNode

UBlackboardComponent* BB = OwnerComp.GetBlackboardComponent();

BB->SetValueAsEnum(FName("CurrentState"), (uint8)ENPCState::Dancing);

이런 식으로 블랙보드를 가져와 블랙 보드 의 값을 Get이나 Set을 사용하여 설정할 수 있는데 이때 중요한것은 위에 코드에서 명시한 "CurrentState" 라는 블랙보드 키값이 반드시 에디터에 있는 블랙보드에 있는 키값 이름과 타입이 일치하여야한다. 

 

- BTTaskNode BlackboardBase

BlackboarBase는 BTTaskNode를 상속받는 클래스로 아래처럼 블랙보드 키를 생성한 블랙보드 키로 선택할 수 있는데 

이 선택된 키값을 위에 코드처럼 GetSelectedBlackboardKey() 값으로 얻어올 수 있다.