Custom Projectile2018. 10. 31. 15:47

총알로 사용할 커스텀 Projectile 만들기


레벨 위에서 마우스 우측을 누르면 커스텀 발사체가 발사되도록 한 예이다


발사체를 만들 때 핵심적인 컴포넌트는 다음과 같다

Projectile Movement : 발사속도, 반동을 설정

Sphere Collision : Collision Preset을 BlockAllDynamics, Physics Actor 등으로 설정



Actor 기반의 블루프린트 생성 > Projectile Movement, Sphere Collision, Sphere 를 콤포넌트로 추가


주의 : 컴포넌트 패널에 기본적으로 포함된 DefaultSceneRoot 컴포넌트는 Sphere Collision을 드래그하여 대치해야 설정한대로 작동하게 된다




발사속도 및 반동 설정

Projectile Movement 컴포넌트를 선택하고 디테일 뷰에서 아래와 같이 설정한다. 발사된 총알이 벽등에서 튕기는 현상을 연출하려면 아래처럼 Should Bounce 항목을 선택해야 한다



콜리전 컴포넌트의 충돌설정

콜리전 컴포넌트(여기서는 Sphere Collision)를 선택하고 Collision Presets 항목에서 Physics Actor 혹은 BlockAllDynamics 등으로 선택한다. 이벤트 그래프에서 충돌 이벤트를 구현할 생각이라면 아래처럼 Simulation Generates Hit Events 항목을 선택한다



Static Mesh 자체는 No Collision으로 설정

Sphere 컴포넌트는 총알 자체를 나타내는데 Collision Presets 항목에 NoCollision을 선택한다



Projectile Movement 컴포넌트의 이벤트를 이용하여 발사체 제거

발사체가 멈추었을 때 레벨에서 발사체를 제거하려면 Projectile Movement 컴포넌트의 On Projectile Stop 이벤트를 구현하면 된다



충돌 대상에 따라 Hit 혹은 Overlap 설정하기

발사체가 캐릭터에 명중했을 때 튕겨 나오지 않도록 하려면 아래처럼 Sphere Collision 설정시 Collision Presets을 Custom으로 하고 Pawn 항목에서 Overlap(겹침)에 선택하면 발사체가 캐릭터에 명중했을 때 그냥 관통하게 된다



마우스 우측을 누르면 발사

레벨에서 마우스 우측을 누르면 커스텀 발사체(BP_MyBullet)가 총구에서 정면으로 발사되도록 한 예

총구 앞에 화살표(Arrow)컴포넌트를 배치하고 그 위치에 발사체가 생성되도록 하면 된다


Posted by cwisky