[UE5] 언리얼5 Blueprint - AI 원거리 공격

AnJH·2024년 6월 7일

AI Attack Pattern

이번에는 C++이 아닌 Blueprint를 통한 원거리공격을 구현하고자 한다. 이미 만들어진 Enemy는 이전 글에서 사용해왔던 C++클래스이고, 해당 Enemy의 Attack Montage에 Notify를 추가하여 구현하는 방식이다.

  • Animation Sequence

Enemy의 Animation Sequence 내에 원하는 타이밍에 맞추어 위와 같이 Notify를 만든다.

  • Notify

Notify의 경우, 이전에 개발했던 DropDown과 방식이 비슷하기에 동일한 Notify 내부에 Actor Tag를 통해 구별하여 개발하였다. ForLoop문을 통해 랜덤한 위치에 여러개의 공격을 시전하고자 한다.

아래 DropDownComplete Notify는 이전 글에서는 Actor 본인의 위치만 공격범위를 보여주면 되었기에 하나였으나 현재 개발하고자 하는 원거리 공격은 전방위적으로 퍼지는 공격이기에 모든 Actor를 찾아서 원하는 타이밍에 삭제해주어야 한다.

  • BP_DropDown

Notify에서 Spawn Actor를 통해 맵에 Spawn되는 해당 Actor는 공격이 시작될 위치와 바닥에 해당 공격의 범위를 나타내준다. 이는 이전에 개발한 DropDown과 범위를 나타내주는 방식은 동일하나, 위에서 메테오가 떨어지는 효과를 위해 Z값만 더해서 Meteor Actor를 Spawn한 것이다.

  • BP_Meteor

마지막으로 실제 공격효과를 나타내주는 Meteor Actor는 위와 같이 코드를 구성했다. 해당 Actor내에 Static Mesh에 Simulate Physics를 True로 한 뒤, Particle를 상속시켜 떨어지는 효과를 주고싶었으나, 가지고 있는 Particle이 바닥을 향하는 메테오 공격이기에 위처럼 구현하였다. 해당 코드에서 불타는 운석과 같은 Particle이 존재한다면 Spawn Emitter를 하지않고, StaticMesh를 만들어서 자식 컴포넌트로 둔다면 StaticMesh와 함께 떨어지는 효과를 나타낼 수 있을 것이다.

0개의 댓글