본문 바로가기

언리얼C++게임개발/12.AI컨트롤러와 비헤이비어 트리

(2)          글쓰기    
네비게이션 NPC공격추가하 ● NPC가 정찰하다가 플레이어 발견 시, 플레이어를 추격하는 기능은 발견할 때 플레이어의 정보를 블랙보드에 저장하도록 Object 타입으로 변수를 생성하면 된다.​ Object 타입에는 베이스 클래스(Base Class)를 지정할 수 있는데, 이때, 기반 클래스를 ABCharacter로 지정하면 된다. ​ ● NPC의 비헤이비어 트리의 행동 패턴은 플레이어를 발견 했는지 / 못했는 지에 따라 추격과 정찰로 나누어진다. 추격 / 정찰 중 하나의 상태를 선택하여 행동하므로, 시퀀스가 아닌 셀렉터(Selector) 컴포짓을 사용하여 로직을 구성해야한다. 두 상태 중 추격을 더 우선순위를 높게하고, 추격 상태가 되면 블랙보드의 Target 오브젝트를 향해 이동하도록 한다. ​ ● 다음으로, 정찰하다가 플레이어..
AIController와 내비게이션 시스템 ​ ● 플레이어가 조종하지 않지만 레벨에 배치돼 스스로 행동하는 캐릭터를 'NPC(Non Player Character)'라고 한다. ​ ● 언리얼 엔진은 컴퓨터가 인공지능으로 NPC를 제어하도록 AI 컨트롤러를 제공한다. 폰은 플레이어 컨트롤러와 동일한 방식으로 AI 컨트롤러에 빙의될 수 있고, 빙의되면 AI가 시키는 대로 행동하게 된다. ​ ● AI 컨트롤러를 생성하여 캐릭터에게 빙의하기 위해서는 AI Controller를 부모 클래스로 하는 AI 컨트롤러를 만들어줘야 한다. ​ ● ABCharacter가 위에서 만든 ABAIController를 사용하도록 AIControllerClass(=AI 컨트롤러 클래스) 속성을 ABAIController의 클래스로 지정하고, AI 생성 옵션을 PlaceInW..