1. 개요
이번에는 TPS, FPS 중에 한 장르로 싱글 슈터 게임을 만드는 팀 프로젝트를 진행하게 되었다. 팀 회의를 거치면서 결국은 TPS 장르로 아주 똑같지는 않지만 퍼스트 디센던트와 같은 흐름을 가지는 게임을 만들게 될 것으로 보인다. 루트 슈터라는 장르의 모든 부분을 가져와서 구현하기에는 기간도 길지 않기 때문에 일단은 몬스터, 보스 몬스터를 잡는 플레이어가 존재하는 형태의 간단한 게임이 될 것으로 예상된다.
이번에 내가 맡은 파트는 적AI 부분이다. 아직 배운 내용도 크게 있지 않고 정말 간단한 부분만 배웠기 때문에 어느 정도까지 구현을 할 수 있을지는 모르겠지만, 구현하기 위해 겪게 될 시행착오들과 그 과정들을 정리하면 도움이 될 것 같아 이렇게 정리 글을 쓰는 것을 시작한다.
2. 플레이어를 추적하는 간단한 적 구현
차근차근 알아간다는 느낌으로 나중에 다룰 비헤이비어 트리는 차치해 두고 블루 프린트를 이용해 간단한 적을 만드는 것부터 시작하려고 한다.
블루 프린트로 캐릭터 클래스를 생성
스켈레탈 메시에 원하는 메시를 할당
파라곤 에셋이 무료라서 몬스터처럼 보이는 Steel을 이용하기로 했다.
- ChasePlayer라는 커스텀 이벤트 생성
- AI MoveTo 노드에 폰은 지금 생성한 자신을 할당
- Target Actor에 현재 플레이어의 캐릭터를 할당
- 다 쫒아가면 딜레이를 주어 잠시 멈추고 다시 Chase Player를 호출
AI가 활동할 수 있는 반경을 설정하기 위해 Nav Mesh Bounds Volume을 맵에 설치하여 원하는 크기만큼 할당
여기까지 진행했다면 아주 간단한 형태의 AI라고 하기도 민망한 수준의 AI가 완성된다
일단 기능적으로는 플레이어를 쫒아오며 쫒아온 다음에 겹치는 수준이 되면 멈추었다가 다시 쫒아온다
추가적으로 이동후 플레이어에게 공격을 가하는 모션을 취하도록 만든다
- 커스텀 이벤트로 Attack 생성
- Play Montage에 원하는 Montage 할당하고 현재 적군에 해당하는 캐릭터의 메시를 할당
- 원하는 애니메이션을 Montage로 만드는 방법은 아래 캡처 참조
3. 완성본
일단은 게임 내에서 적군 AI가 해야할 행동을 간단하게 블루 프린트로 구성하여 확인해 보았다. 다음에는 이런 간단한 행동뿐만 아니라 엄폐물 뒤에 숨는다던지 사이드 스텝을 밟는 행동들 중에서 취사 선택하여 더 똑똑하게 행동할 수 있도록 비헤이비어 트리를 이용한 본격적인 진짜 AI를 사용한 적군을 만들어 볼 것이다.
참고자료
https://www.youtube.com/watch?v=-t3PbGRazKg&list=PLNwKK6OwH7eW1n49TW6-FmiZhqRn97cRy
'언리얼엔진(UE)' 카테고리의 다른 글
[UE] 몬스터 AI 구현 #3 (Behavior Tree) (0) | 2025.02.25 |
---|---|
[UE] 몬스터 AI 구현 #2 (애니메이션 관련 이슈 해결) (0) | 2025.02.24 |
[UE] 슬라이드 애니메이션 개선 (0) | 2025.02.14 |
[UE] UMG를 활용한 게임 HUD 및 WidgetComponent를 이용한 HP바 (0) | 2025.02.13 |
[UE] 타이머 사용 시 유의 사항과 해결방법 (0) | 2025.02.12 |