본문으로 건너뛰기
게임 수학 · 게임 AI 기초집LESSON 13

AI 구조 설계

난이도초급
예상 시간40분
선수지식1~12강의 게임 수학

13강. AI 구조 설계

1. 이번 강의에서 해결할 문제

Enemy Character가 플레이어 검색, 거리·시야 계산, 경로 요청, 상태 선택과 공격 쿨다운을 모두 담당합니다. 몸, 판단 데이터와 행동 조합의 책임을 나눕니다.

2. 학습 목표

3. 핵심 개념

구성 요소책임갖지 않을 책임
Enemy Character몸, 이동 설정, 회전, 공격 실행, 체력플레이어 탐색과 BT Branch 선택
AIController목표 감지, 수학 계산, Blackboard 갱신Mesh와 체력 저장
Blackboard현재 목표·위치·상태의 공유 데이터계산 로직
Behavior Tree조건과 행동의 우선순위·조합Actor의 장기 런타임 상태 직접 저장
DataAsset튜닝 값현재 목표나 현재 상태

Blueprint는 Behavior Tree 그래프, Blackboard 키, C++ 자식 기본값과 에셋 연결에 사용합니다. 시야·거리·공격 조건의 핵심 함수는 C++로 둡니다.

4. 단계별 실습

C++ · 파일 경로: Source/TopDownSurvival/AI/MathAIController.h

MathAIController.h
#pragma once

#include "CoreMinimal.h"
#include "AIController.h"
#include "MathAIController.generated.h"

class UBehaviorTree;

UCLASS()
class TOPDOWNSURVIVAL_API AMathAIController : public AAIController
{
GENERATED_BODY()

protected:
virtual void OnPossess(APawn* InPawn) override;

UPROPERTY(EditDefaultsOnly, Category = "AI")
TObjectPtr<UBehaviorTree> BehaviorTreeAsset;
};

C++ · 파일 경로: Source/TopDownSurvival/Enemies/MathAIEnemyCharacter.cpp · 생성자

MathAIEnemyCharacter.cpp · AI 연결
#include "AI/MathAIController.h"

AMathAIEnemyCharacter::AMathAIEnemyCharacter()
{
AIControllerClass = AMathAIController::StaticClass();
AutoPossessAI = EAutoPossessAI::PlacedInWorldOrSpawned;
}

C++ · 파일 경로: Source/TopDownSurvival/AI/MathAIController.cpp

MathAIController.cpp · Possess
#include "AI/MathAIController.h"

#include "BehaviorTree/BehaviorTree.h"

void AMathAIController::OnPossess(APawn* InPawn)
{
Super::OnPossess(InPawn);

if (!BehaviorTreeAsset)
{
UE_LOG(LogTemp, Error, TEXT("%s has no BehaviorTree"), *GetName());
return;
}

if (!RunBehaviorTree(BehaviorTreeAsset))
{
UE_LOG(LogTemp, Error, TEXT("%s failed to run BehaviorTree"), *GetName());
}
}

Blueprint 작업

BP_MathAIController 자식을 만들고 BehaviorTreeAsset은 16강에서 연결합니다. BP_MathAIEnemy의 AI Controller Class가 BP_MathAIController인지 확인합니다.

5. 코드와 수학·AI가 동작하는 이유

Possess는 Controller와 Pawn 연결이 준비된 시점이므로 AI 실행을 시작하기 적합합니다. Character는 어느 Behavior Tree가 실행되는지 몰라도 몸과 공격 API를 제공합니다. Controller는 Pawn을 바꿔도 판단 구조를 재사용할 수 있습니다.

6. 자주 하는 실수와 해결법

7. 직접 실습

8. 이해 점검 질문 3개

9. 핵심 요약

MINI QUIZ

AI 구조 설계 미니 퀴즈

선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.

0 / 2
  1. 문제 1“AI 구조 설계” 구현을 설계할 때 책임과 구조를 올바르게 나눈 선택은 무엇인가요?
  2. 문제 2‘멀티플레이 권한까지 이번 과정에 추가’ 실수를 판단할 때 “AI 구조 설계” 강의가 제시한 기준은 무엇인가요?
LESSON STATUS

학습을 마쳤나요?

직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.

13강. AI 구조 설계 미완료 상태