본문 바로가기
유니티

[유니티] 파티클 시스템

by 인디제이 2025. 3. 24.

 

1. 파티클 시스템 생성

 

파티클 시스템을 만들 수 있는 방법은 2가지가 있다.

 

1. 하이어라키 창에서 직접 생성

  • 마우스 우클릭 → Effects → Particle System을 선택하여 새로운 파티클 시스템을 생성한다.
  • 씬 내에서 별도의 오브젝트로 존재하며, 특정 위치에서 지속적으로 파티클을 생성할 수 있다.
  • 사용 예시: 독립적인 이펙트(폭발, 불꽃, 연기 등)

 

2. 기존 오브젝트에 추가

  • 원하는 오브젝트에 Particle System 컴포넌트를 추가하여 설정할 수 있다.
  • 플레이어 오브젝트에 직접 추가하여 특정 이벤트 (점프, 충돌, 이동 등)에 반응하는 효과를 만들 수 있다.
  • 사용 예시: 특정 오브젝트에 부착되는 이펙트 (플레이어 추진기 불꽃, 타격 이펙트 등)

 

 

 

2. 파티클 시스템 설정 조정

 

 

<파티클 시스템 주요 설정 항목>

설정 값 설명
기본
설정
Duration 한 사이클이 몇 초동안 유지되는지 설정한다. (Looping을 켰을 때 1사이클의 길이)
Looping 체크하면 파티클이 계속 반복한다.
prewarm 게임이 시작되자마자 완전히 퍼진 상태로 파티클을 보여준다.
Play on Awake 게임 시작 시 자동으로 실행할지 여부 (체크 해제하면 수동으로 Play() 호출 필요)
Emission
Rate overTime 초당 생성되는 파티클 개수
Rate over Distance 이동 거리당 생성되는 파티클 개수
Bursts 특정 시점에 다량의 파티클 생성 (폭발 효과)
Shape Shape 파티클이 퍼지는 모양(Sphere, Circle, Cone 등)
Radius 파티클이 퍼지는 범위를 조절 (값을 줄이면 더 작은 영역에서 생성)
Renderer
Material 머티리얼을 설정하여 원하는 스타일을 적용

 

 

 

Scene 창에서 파티클의 윤곽선이 거슬린다면 이를 숨길 수 있다.

Scene 뷰 탭에서 Toggle Visible of All Gizmos in the Scene view 버튼을 찾아 클릭한다.

Selection Outline의 체크를 해제하면 파티클의 윤곽선이 사라진다.

 

파티클을 세밀하게 조정할 때는 윤곽선을 켜두는 것이 좋고,

최종적으로 화면을 확인할 때는 윤곽선을 끄면 더 깔끔한 모습을 볼 수 있다.

 

 

 

파티클 시스템이 있는 오브젝트를 클릭하면 Particles 창이 자동으로 나타난다.

여기서 Start, Restart 버튼을 눌러 현재 적용된 이펙트를 미리 볼 수 있다.

 

 

 

3. 파티클 활성화

 

플레이어가 이동하거나 특정 행동을 할 때 이펙트가 발생하도록 설정할 수 있다.

파티클 시스템을 플레이어 프리팹 내부에 넣고, Transform을 조정하여 이펙트가 발생할 위치를 맞춘다.

필요에 따라 Play(), Stop()을 사용해 이펙트를 제어한다.

 

파티클 시스템을 이용해 불꽃을 만들기 어려워 다운로드해서 사용했다.

 

using UnityEngine;
using UnityEngine.InputSystem;

public class Movement : MonoBehaviour
{
    [Header("References")]
    [SerializeField] private ParticleSystem mainEngineParticles;
    [SerializeField] private ParticleSystem rightThrustParticles;
    [SerializeField] private ParticleSystem leftThrustParticles;

    private void ProcessThrust()
    {
        if (thrust.IsPressed()) // 키를 누르고 있는 동안
        {
            _rigid.AddRelativeForce(Vector3.up * thrustStrength * Time.fixedDeltaTime);

            if (!_audioSource.isPlaying)
            {
                _audioSource.PlayOneShot(mainEngineSFX); // 엔진 소리 재생
            }
            if (!mainEngineParticles.isPlaying)
            {
                mainEngineParticles.Play(); // 메인 추진기 불꽃 활성화
            }
        }
        else
        {
            _audioSource.Stop();
            mainEngineParticles.Stop(); // 키를 떼면 이펙트 중지
        }
    }
}

 

 특정 방향키 입력 시 플레이어 오브젝트에 있는 파티클 시스템을 Play() 또는 Stop()으로 제어할 수 있다.

 

 

 

4. 레이저 파티클

 

  • Universal Render Pipeline(URP)의 Particles/Unlit 머티리얼을 사용하면 외부 광원에 영향을 받지 않는다.
  • Surface Type을 Transparent로 설정한다. (투명)
  • Emission Map에서 컬러를 선택하고, Intensity를 올리면 파티클에서 빛이 난다.

 

 

 

  • Duration: 1 → 파티클이 1초 동안 유지
  • Looping: O
  • Start Lifetime: 5 → 개별 파티클 유지 시간
  • Start Speed: 800 → 처음 생성될 때의 속도
  • Start Size: 5 → 파티클의 기본 크기
  • Simulation Space: World
    • Local: 개체와 함께 이동 / World: 고정된 공간에서 움직임

 

 

  • Rate over Time: 5 → 초당 생성되는 파티클 개수
  • Shape: Cone → 파티클이 원뿔 형태로 퍼짐
  • Angle: 0 → 원뿔 형태의 퍼지는 각도 (0이면 일직선 방향)
  • Radius: 0.0001 (최소값) → 원의 반지름 크기

 

 

  • Collision Type: World
  • Dampen: 1 → 충돌 시 속도가 줄어드는 속도 (1이면 완전 멈춤)
  • Lifetime Loss: 1 → 충돌할 때마다 파티클이 수명(시간)을 잃는 정도
  • Send Collision Messages: O → OnParticleCollision()을 통해 충돌 처리 가능
  • Trails: O → 파티클이 이동한 경로에 잔상 효과 추가

 

 

Renderer에서 Material은 투명 머티리얼을 사용하고, Trail Material은 빛이 나는 머티리얼을 적용했다.

 

 

Trail 설정을 사용할 경우 꼬리가 생기게 되는데 기존 파티클에 추가되기 때문에

앞을 투명으로 하고 Trail만 머티리얼을 적용한 것이다.

 

 

 

5. 속도 향상 파티클

게임에서 플레이어가 속도가 증가할 때 보여줄 이펙트다.

 

 

파티클을 만들기 위해서 먼저 머티리얼을 설정한다.

  1. 새로운 머티리얼을 생성한다.
  2. 머티리얼의 ShaderParticles/Standard Unlit 으로 변경한다.
  3. Rendering ModeFade로 설정한다.
  4. Maps 항목에서 Albedo삼각형 모양의 텍스처를 넣어준다.

 

 

  • Duration: 1 → 파티클이 1초 동안 유지
  • Looping: X
  • Start Speed: 0.5 → 처음 생성될 때의 속도
  • Start Size: 0.2 → 파티클의 기본 크기
  • Rate over Time: 25 → 초당 생성되는 파티클 개수

 

 

  • Shape: Circle → 원형으로 파티클이 퍼지도록 설정
  • Radius: 2.6 → 원의 반지름 크기
  • Radius Thickness: 0.1 → 반지름 두께

 

 

Radius(반지름)를 키우고 Radius Thickness(반지름 두께)를 줄인다.

반지름 두께가 얇을수록 파티클이 원의 바깥쪽에서 생성된다.

 

 

 

  • Render Mode: Stretched Billboard → 모든 파티클이 화면을 향하도록 처리되고, 바깥쪽으로 늘어남
  • Length Scale: 11 → 파티클의 길이가 길어짐
  • Material: Speed Up Particle (삼각형 모양의 파티클 머티리얼)