230816 AI
https://velog.io/@jm450_/UE4-AI-Controller%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%9C-AI%EA%B5%AC%ED%98%84
[UE4] AI Controller를 사용한 AI구현
언리얼 엔진에서 캐릭터는 controller의 지배를 받는다. 이를 빙의(Poss)라고 부른다.player character가 만들어지게 되면 player controller가 종속적으로 만들어지게 되고 player character는 player controller에
velog.io
AIController 에서
블랙보드, 비헤이비어 트리 만들고 생성자에서 연결해주기
OnPossess -> 빙의 시 실행되는 함수 / OnUnpossess -> 빙의 해제 시 실행되는 함수
RunAI() -> AI를 실행시켜 주는듯 (블랙보드랑 트리)
StopAI() -> AI 실행 정시
MonsterCharacter의 생성자에서
AIControllerClass = AMonsterAIController::StaticClass();
AutoPossessAI = EAutoPossessAI::PlacedInWorldOrSpawned;
AI컨트롤러 클래스를 AMonsterAIController로 지정하고
( Type::StaticClass() 를 사용하면 컴파일 타임에서 UClass 타입의 정보를 얻어온다. GetClass는 런타임에서 객체의 클래스를 조회할 때 사용되므로 StaticClass() 와 GetClass() 의 결과는 다를 수 있다. )
PlacedInWorldOrSpawned -> 레벨에 배치되거나 새롭게 스폰되는 MonsterCharacter 마다 MonsterAIController 가 생성되고, 플레이어의 조종을 받는 캐릭터가 아니면 AIController의 지배를 받음.