본문 바로가기

게임 개발 공부/언리얼엔진

UE5 | C++ - Projectile

슈팅게임에서 탄환을 발사할 때 하드코딩으로 스폰과 동시에 틱으로 앞으로 날려주거나 할수도 있겠지만 언리얼에선 또다시 편리한 기능을 제공한다. 바로 프로젝타일이다. 프로젝타일 무브먼트를 이용하면 액터를 간단하게 탄환처럼 앞으로 날려줄 수 있다.

 

 

 

프로젝타일 클래스 작성

전용헤더를 추가해주고

프로젝타일 무브먼트 컴포넌트를 선언해주고

컴포넌트를 정의해준다.

그 후 발사기로 사용할 클래스에서 스폰해주면

탄이 발사된다.

 

 

 

응용

 

탄피, 투척무기 등등 응용할 방법은 많지만 그중에서도 이번에 시도해본건 탄착군이다.

발사가 될 때마다 조금씩 발사각도를 다르게 해서 명중률 요소를 만들었다.

 

먼저 사용할 변수들을 선언 및 정의해준다. 숫자가 작아질수록 명중률이 올라가는데,

입력자 입장에서 직관적이가 않아서 1-처리를 해줬다.

 

처음 부분에서 소켓 또는 메시가 없을 경우를 대비해 액터의 위치를 기본 위치로 정한다음,

유효체크를 한 뒤 소켓의 위치를 덮어씌워줬다.

그리고 변수와 위치값을 기반으로 VRandCone을 이용해 각도를 매번 범위내에서 흩어지게했다.

매번 탄착 위치가 달라진다.