발사 이펙트, 탄환 궤적 이펙트
발사 이펙트
발사 이펙트는 연기 분출을 표현한 파티클 시스템과 화염 분출을 표현한 파티클 시스템, 발광 효과를 표현하기 위한 포인트 라이트(Point Light)를 조합해 완성했다.
연기 파티클 시스템
포구에서 뿜어져 나오는 연기의 분출을 표현하는 파티클 시스템이다. 연기 입자는 아래 두 가지 텍스처를 활용해 표현했다.

한쪽 방향으로 강한 Initial Velocity 값과 Scale, Alpha 값도 변화를 주어 사실적인 연기 질감을 표현하였다. 또 분출 방향이나 연기 입자의 회전 등을 표현하는 다른 설정들을 조작해 완성하였다.
분출 방향은 플레이어가 발사 액션을 취한 순간에 플레이어 방향(왼쪽, 오른쪽) 및 포신의 각도를 구해 2D 벡터로 계산된다.
화염 파티클 시스템
화염 파티클 시스템은 강하게 연소하는 화염보다는 화약과 함께 강한 금속 마찰에 의해 발생한 스파크와 같은 모습이 좀 더 어울릴 것이므로 아래와 같이 표현하였다.
각 화염 입자는 단순한 원형 그라데이션 텍스처로, 글로우 효과를 적용해 사실적인 느낌을 표현할 수 있다.
발사 순간 광원을 크게 밝힘으로써 역동적인 시각 경험을 이끌어낼 수 있다. 그러기 위해선 Godot 엔진에서 제공되는 PointLight2D 노드를 추가하고 광원의 Texture Scale이 빠르게 커졌다 작아지는 애니메이션을 제작한다.
최종적으로 발사 이펙트가 완성된 모습이다.
탄환 궤적 이펙트
이전 포스트들에서 생략된 내용이 있는데, 바로 연기 이펙트이다. 발사 이펙트 시 발생하는 강한 연기 분출과 달리 무언가가 꾸준히 연소하면서 발생하는 일정한 연기 분출 이펙트도 이 게임에서 필요하다.
다만 이러한 형태의 연기 발산은 가로로 길쭉한 화염 필드에도, 한 지점에서 타는 작은 화염에도, 탄환이 운동한 포물선 경로에도 필요하다. 즉 이 이펙트는 범용성을 높이는 것이 핵심이다.
연기 이펙트는 하나만 만들어 놓고, 생성 시에 발산 범위, 발산 방향, 파티클 밀도 등 파티클 시스템에 필요한 파라미터들을 동적으로 설정하는 방식을 통해 범용적으로 활용할 수 있다.
탄환 생성 직후 이 연기 이펙트를 생성하고 아래와 같이 초기화해주면 탄환 궤적 이펙트를 구현할 수 있다.