https://www.youtube.com/watch?v=UeG9RAVE8sE&list=PLiSlOaRBfgkcPAhYpGps16PT_9f28amXi&index=21

 

오늘은 적이 가지게 될 AI행동 기초를 만들어 볼 것이다.

 

일단 AI폴더를 만들어주고 안에

여러 npc의 기본 바탕이 될 Black Board와 Behavior Tree, AIController 블루프린트 크래스를 만들어준다. 

 AIController 클래스에서는 시작될 때 , Run Behavior Tree를 실행시켜 만들어둔 Behavior Tree가 작동하도록 한

다. 

 

전에 만들어둔 더미캐릭터를 AI폴더로 가지고 온다. 

그리고 디테일 창에 ai를 검색한 후 폰부분을 바꿔주면 된다.

Place or Spawned가 오류를 줄일 수 있다. 

 

이제 본격적인 흐름도를 만들어보자 이건 트리상에 만들 것인데 Selector와 Seqeunce를 통해 트리구조를 만들고 

새 테스크를 Task폴더에 만들어주자 이번 Task는 Patrol Random Point이다. 

이 테스크는 AI플레이가 시작될 때 호출되는 Receive Execute AI라는 이벤트를 오버라이드 해주는 것으로 동작하도록 만든다. 

 

radius 안의 원의 랜덤한 위치로 움직일 수 있도록 만들어본다. 

그리고 Tree안에 Task를 추가해준다. 

 

그리고 NavMeshBoundsVolume을 통해 AI가 갈 수 있는 길을 표시해준다. 

->이것을 통해 AI가 움직일 수 있다. 

P키를 누르면 AI가 갈 수 있는 모든 길을 보여준다. 

 

이제 랜덤한 위치로 AI가 이동한다.

 

움직이는 AI

 

이제 AI가 자연스럽게 움직이도록 만들어보자 

애니메이션 블루프린트를 만들고 이전에 만들어둔 플레이어의 애니메이션 블루프린터를 참고하자. 

-> 스테이트를 통해 관리되고 있다.

캐릭터 애니메이션 블루프린트의 Locomotion을 복사해서 DefaultSlot에서 작동하도록 만들어 주자

그다음 AI의 매쉬에서 애니메이션 클래스를 변경해준다. 

 

그리고 이벤트 그래프에 속도를 조절하는 부분을 플레이어 부분에서 가져와서 붙여주면 움직이는 모습을 볼 수 있다.

움직이게 하기

 

+ Recent posts