AAIController 클래스 제공UAIPerceptionComponent를 통한 시각, 청각 등의 감지 시스템 제공BlackboardComponent를 통한 AI 메모리 저장소 제공UBehaviorTree, UBTTast, UBTService 등 Behavior Tree 시스템 제공UNavigationSystemV1를 통해 네비게이션 메시 생성 및 관리AIControllerClass : Pawn/Character에서 AI를 연결할 컨트롤러 설정AutoPossessAI : 자동으로 AI가 Possess되는 시점을 설정.: 월드에 NavMeshBoundsVolume이 필수적으로 필요하다. NavMeshBoundsVolume은 AI가 이동할 수 있는 부분을 계산해서 가지고 있는 액터이다.
UNavigationSystemV1 : 경로 계산 및 NavMesh 관리UPathFollowingComponent : 이동 중 경로 추적AAIController::MoveToActor() : AI 캐릭터가 액터에게 이동UNavigationSystemV1::GetRandomPointInNavigableRadius() : 랜덤 이동 지점 계산UAIPerceptionComponent : AI의 감각 처리 컴포넌트UAISense_Sight, UAISense_Hearing : 감각 종류UAIPerceptionStimuliSourceComponent : 감지 가능한 대상에 부착되는 컴포넌트ConfigureSense() : AIPerceptionComponent에서 감지할 감각을 설정OnTargetPerceptionUpdated() : 무언가를 감지하거나 놓쳤을 때 호출되는 델리게이트GetPerceivedActors(UAISense_Sight::StaticClass(), OutActors) : 감지한 액터 목록 반환: 감지를 할 수 있게 하기 위해 감지 대상은 UAIPerceptionStimuliSourceComponent를 부착해야지 감지를 할 수 있게 된다.
: 다만 언리얼에서는 아래의 조건에 해당한다면 기본적으로 Pawn/Character를 StimuliSource로 등록된다. 시각/청각 소스만 자동으로 등록이 되기 때문에 이도 주의해야 한다.
: Key-Value 방식으로 데이터를 저장한다. 여러 AI가 동일한 Blackboard 공유가 가능하고, 실시간으로 값 변경이 가능하다.
UBlackboardComponent : AI가 가지고 있는 블랙보드 인스턴스를 다루는 클래스SetValueAsBool(FName KeyName, bool Value) : 블랙보드의 Bool 값을 설정SetValueAsObject(FName KeyName, bool Value) : 블랙보드의 Object 값을 설정GetValueAsBool(FName KeyName) : Bool 값 가져오기UBehaviorTreeComponent : AI의 실행중인 트리 인스턴스로, AI Controller가 실행할 때 생성된다.UBTTaskNode : 작업 실행용 클래스로, 실질적으로 동작하는 태스크를 정의한다.UBTTask_MoveTo : 지정된 위치 또는 Actor로 이동UBTTask_Wait : 일정 시간 대기UBTTask_BlueprintBase : 블루프린트에서 커스터마이징 가능UBTTask_SetBlackboardValue : 블랙보드 값을 설정하는 노드UBTDecorator : 자식 노드가 실행 가능한지 여부를 판단UBTService : 지정 주기마다 실행되는 로직으로, 감지, 거리 체크 등 상태 업데이트에 사용된다.