티스토리 뷰

참고영상

https://www.youtube.com/watch?v=b9x3NIagvCU&t=1s


해당 강좌의 20강, 21강을 토대로 만들어졌음을 미리 말씀드립니다.



이번 글에선 에너미의 AI를 만들 것인데, 복잡하게 만들 건 아니고 그냥 타겟포인트를 여러개 만들어 놓고 그 사이를 움직이는 인공지능을 만들 계획이다.


블루프린트를 만들고 상단의 일반 클래스가 아닌 모든 클래스에서 AI를 검색한 뒤 AIController를 찾아 만들어준다.




에너미 오브젝트로 만든 블루프린트 객체에 들어간 후 메인 객체(self)에서 Pawn-> AI Controller Class를 방금 만든 AIController로 지정을 해줘야만 AI가 적용이 된다



에너미 블루프린트 객체에서 타겟 포인트 여러개를 받을 수 있는 배열을 만들어 주도록 하자. 평소와 다를 거 없이 변수옆의 +버튼으로 변수를 만들어준 후 변수유형을 Actor로 설정해주자.


하지만 이대로 그냥 두면 하나의 객체일 뿐이므로 옆의 파란색 동그라미를 클릭후 큐브모양으로 바꿔주자. 동그라미는 단일 객체이며 큐브모양이 배열이라는 뜻이기 때문이다.


또한 여기서 인스턴스 편집가능에 체크표시를 하는 것은 해당 레벨에 존재하는 객체상에서 직접 변수를 편집 가능하게 하기 위해서이며 




아래와 같이 에디터에 등장하기 때문에 +버튼을 추가할때마다 요소가 하나씩 추가하여 배열을 만들어주자



그리고 난 후 AIController 클래스에 아래와 같이 에너미 폰 값의 배열을 자신의 멤버 배열 변수로 옮겨주는 과정을 거친다. (물론 배열도 그전에 미리 만들었다.)




이 이후에 그냥 AI에 따라 만들어줄 수도 있지만, Behavior Tree를 만들어주도록 하자.

아래와 같이 추가 -> 인공지능 -> 비헤이비어 트리를 통해 만들어주자.



배열을 옮겨준 AIController에 Run Behavior Tree노드를 만들어준 후, 방금 만든 비헤이비어트리를 넣어주자.



비헤이비어 트리는 아래와 같은 방식이며 처음엔 루트노드밖에 없다. 노드 하단 부분에 진한 검정 박스를 시작으로 드래그를 해주면 새 노드를 만들고 이어줄 수 있는데, Sequence노드를 만들어준다.


일단 Wait 노드를 만들어주고 디테일패널에서 대기시간을 1초로 만들어준다.

그리고 아래와 같이 GoToPatrol이 있는 부분은 태스크를 만든 것인데,



상단 메뉴의 새 태스크메뉴를 통해서 만들어준다.

만든 뒤 해당 노드를 더블클릭하면


이벤트 그래프가 나오며 자신의 의도에 알맞게 블루프린트를 만들어주면 된다.



공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함