1.  NPC 캐릭터 클래스 생성 후 메시, 컬라이더,캡슐 설정

 

 

 

2.  NPC 캐릭터 애님인스턴스 클래스  생성 후 설정

 

 

3. AI 컨트롤러 클래스 생성

 

4. 블랙트리, 블랙보드 생성 후 바인딩

  • 위 2개를 C++ 코드를 사용할라면 bulid.cs 에 'AIModule' 모듈을 추가해야한다
  • Task도 사용할 예정이므로 추가
using UnrealBuildTool;

public class KGame : ModuleRules
{
	public KGame(ReadOnlyTargetRules Target) : base(Target)
	{
		PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
	
		PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore","UMG", "NavigationSystem", "AIModule", "GameplayTasks" });
		PrivateDependencyModuleNames.AddRange(new string[] {  });
	}
}

 

 

생성된 블랙트리,보드

 

////h
UCLASS()
class KGAME_API AKAIController : public AAIController
{
	GENERATED_BODY()
public:
	AKAIController();


private:
	UPROPERTY()
		class UBehaviorTree* BTAsset;

	UPROPERTY()
		class UBlackboardData* BDAsset;
};


////cpp
#include "BehaviorTree/BehaviorTree.h"
#include "BehaviorTree/BlackboardData.h"
#include "BehaviorTree/BlackboardComponent.h"

AKAIController::AKAIController()
{
	static ConstructorHelpers::FObjectFinder<UBlackboardData> BDObject(TEXT("BlackboardData'/Game/_ANIM/Zombie/BD_Zombie.BD_Zombie'"));
	if (BDObject.Succeeded())
	{
		BDAsset = BDObject.Object;
	}

	static ConstructorHelpers::FObjectFinder<UBehaviorTree> BTObject(TEXT("BehaviorTree'/Game/_ANIM/Zombie/BT_Zombie.BT_Zombie'"));
	if (BTObject.Succeeded())
	{
		BTAsset = BTObject.Object;
	}
}



5. 블랙보드 키 바인딩

생성한 키

 

키를 생성하고, class에서 키 이름을 입력해서 바인딩을 한다.

////h
class KGAME_API AKAIController : public AAIController
{
  public:
    static const FName HomePosKey;
    static const FName PatrolPosKey;
    static const FName TargetKey;
}    

////cpp
const FName AKAIController::HomePosKey(TEXT("HomePos"));
const FName AKAIController::PatrolPosKey(TEXT("PatrolPos"));
const FName AKAIController::TargetKey(TEXT("Target"));

'Unreal > Game 2 ' 카테고리의 다른 글

10.2 AI 추격  (0) 2019.07.02
10.1 AI 정찰  (0) 2019.07.02
9.3 PlayerState - 작성 중  (0) 2019.06.30
9.2 플레이어 HUD  (0) 2019.06.30
9.1 StatComponent  (0) 2019.06.30

+ Recent posts