프로그래밍/언리얼엔진

언리얼엔진 강좌 61 [damage-02] 총알 움직이기

panpro 2020. 6. 11. 01:30

쌩초보를 위한 언리얼 엔진 4 강좌입니다.

 

소스코드: github.com/easyprogstudy/unreal_damage

 

단계별로 올리지 않고 최종 버전만 올려 놓았습니다.

언리얼 엔진 강의 61번째 시간으로 
총쏘고 데미지 입기 시리즈의 2번째 시간입니다. 

이번 시간에는 총알을 위한 BP_Bullet 블루프린트 클래스에 
Projectile Movement (발사체 움직임) 컴포넌트를 추가해
총알을 움직이도록 만들어 줍니다.

총알 객체에 Projectile Movement를 추가해 주면 움직이게 되는데, 
Initial Speed 값을 10,000 정도의 값을 주면 총알처럼 움직이게 됩니다. 

총알이 일직선으로 날아가도록 하기 위해 Projectile Gravity Scale의 값을 0으로 설정해 주었습니다. Projectile Gravity Scale 값이 음수면 총알이 풍선처럼 위로 올라가게 됩니다. Projectile Gravity Scale의 기본값은 1입니다.

그리고 아무 데에도 닿지 않고 날아가는 총알은 소멸되지 않고 게임이 끝날 때 까지 계속 살아있게 되는데 총알을 많이 쏘면 그 많은 총알 전부에 대해 움직임도 계산해야 하고 메모리도 많이 사용하기 때문에 게임이 엄청 버벅거리게 됩니다. 

그래서 Initial Life Span 값을 초단위로 설정해 그 시간이 지나면 자동으로 총알 액터가 사라지도록 만들어 주었습니다. 

그리고 총알이 발사될 당시 작은 폭발이 일어나도록 하기 위해 
SpawnEmitterAtLocation 노드를 사용했습니다.

 

언리얼 엔진 버전: 4.25.0