[Unreal]#18_Custom Behavior Tree Task

2022. 10. 5. 22:43· 게임개발/Unreal C++
목차
  1.  
  2. [Unreal]#18_Custom Behavior Tree Task 

 

[Unreal]#18_Custom Behavior Tree Task 

Unreal 개발 중 "Behavior Tree Task"에 대해 알아보겠습니다.

"Simple Shooter Game"의 AI Player 개발 내용입니다.

 

 


 

BTTask_Shoot

1. BTTask_Shoot

 

2. UBTTask_Shoot.h

// Fill out your copyright notice in the Description page of Project Settings.

#pragma once

#include "CoreMinimal.h"
#include "BehaviorTree/BTTaskNode.h"
#include "BTTask_Shoot.generated.h"

/**
 * 
 */
UCLASS()
class SIMPLESHOOTERNEW_API UBTTask_Shoot : public UBTTaskNode
{
	GENERATED_BODY()
	
public:
	// 1. 생성자
	UBTTask_Shoot();

protected:
	// 2. UBTTaskNode::Execute() 가상 함수 오버라이딩
	virtual EBTNodeResult::Type ExecuteTask(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory) override;

};

 

3. UBTTask_Shoot.cpp

// Fill out your copyright notice in the Description page of Project Settings.


#include "BTTask_Shoot.h"
#include "AIController.h"
#include "ShooterCharacter.h"

UBTTask_Shoot::UBTTask_Shoot()
{
    NodeName = "Shoot";
}

EBTNodeResult::Type UBTTask_Shoot::ExecuteTask(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory)
{
    Super::ExecuteTask(OwnerComp, NodeMemory);

    // 1. AIController 가져오기
    if(OwnerComp.GetAIOwner() == nullptr)
        return EBTNodeResult::Failed;
    
    // 2. APawn -> AShooterCharacter Casting
    AShooterCharacter* Character = Cast<AShooterCharacter>(OwnerComp.GetAIOwner()->GetPawn());
    if(Character == nullptr)
        return EBTNodeResult::Failed;
    else
        Character->Shoot();

    return EBTNodeResult::Succeeded;
}
  1. 생성자 : 노드 네임 설정
  2. GetAIOwner() : AAIController 유형의 AI를 소유하는 AI Controller를 반환합니다.
  3. GetPawn() : AIController의 함수가 아니라, AIController가 상속하는 AController의 함수입니다!
  4. AShooterCharacter::Shoot() : 범위 지정자가 꼭 "public"인지 확인해야 합니다!

 

Behavior Tree

1. BTTask_Shoot 추가

 

2. 테스트

 

 

 

'게임개발 > Unreal C++' 카테고리의 다른 글

[Unreal]#20_Log  (0) 2022.11.02
[Unreal]#19_Custom Behavior Tree Service  (0) 2022.10.05
[Unreal]#17_Behavior Tree  (1) 2022.10.04
[Unreal]#16_Behavior Tree Setting  (0) 2022.10.02
[Unreal]#15_Line Of Sight, Acceptance Radius of AI  (0) 2022.10.02
  1.  
  2. [Unreal]#18_Custom Behavior Tree Task 
'게임개발/Unreal C++' 카테고리의 다른 글
  • [Unreal]#20_Log
  • [Unreal]#19_Custom Behavior Tree Service
  • [Unreal]#17_Behavior Tree
  • [Unreal]#16_Behavior Tree Setting
Hardii2
Hardii2
개발 블로그Hardii2 님의 블로그입니다.
Hardii2
개발 블로그
Hardii2
전체
오늘
어제
  • 분류 전체보기
    • 알고리즘
    • 웹 개발
      • Node.js
      • React
    • 게임개발
      • DirectX12
      • 관련 지식
      • Unreal C++
      • Unreal 블루프린트
    • 언어
      • Effective C++
      • Basic C++
      • 디자인 패턴
      • 자료구조
      • 기술 질문
    • 문제 풀이
      • BOJ 문제 풀이
      • Programmers 문제 풀이
      • geeksForgeeks 문제 풀이
    • 수학
      • 확률과 통계
      • 게임수학
    • 개인프로젝트
    • 그룹프로젝트
      • PM
      • Dev
    • Github

블로그 메뉴

  • 홈
  • 글쓰기

공지사항

인기 글

태그

  • 기술 질문
  • BOJ
  • 최단 경로
  • 정렬
  • dfs
  • 디자인 패턴
  • unreal
  • BFS
  • 그래프
  • Unreal Blueprint
  • DP
  • stl
  • set
  • programmers
  • 개발
  • Effective C++
  • 알고리즘
  • C++
  • 우선순위 큐
  • 트리

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
Hardii2
[Unreal]#18_Custom Behavior Tree Task
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.