Unity C# > 컴포넌트 : Particle System 와 프로퍼티/함수 모음

Date:     Updated:

카테고리:

태그:

공부하면서 알게된 것만 정리합니다.😀

👩‍🦰 Particle System

이 컴포넌트를 붙이면 오브젝트는 파티클 효과를 일으킬 수 있다.

🚀 에디터

  • Stop action
    • 이펙트가 재생이 끝났을때 실행될 처리.
      • Destroy를 할당해주면 이펙트 재생이 끝나자마 이펙트 오브젝트가 파괴된다.
      • Disable을 할당해주면 이펙트 재생이 끝나자마 이펙트 오브젝트가 비활성화 된다.
      • Callback 을 할당해주면 이펙트 재생이 끝나자마자 OnParticleSystemStop 이벤트 함수가 실행된다. 즉, OnParticleSystemStop 이벤트 함수안에 내가 원하는 처리 구현해놓아 실행시킬 수도 있다.

✈ 메인 모듈

image

  • Duration
    • 파티클 시스템이 실행되는 지속 시간
  • Looping
    • 반복 재생
  • Play On Awake
    • 이걸 체크하면 해당 파티클 시스템이 활성화 되자마자 바로 재생된다.
    • 이게 체크 되어있지 않으면 개발자가 수동적으로 코드를 통해 Play() 시켜야 한다.
  • Start Lifetime
    • 파티클의 초기 수명.
      • 0.15 로 크게 낮춰서 파티클 입자들이 눈깜짝할 새에 사라지는 것을 볼 수 있다. 역시 총 발사 이펙트 효과에 적합할 것 같다!
  • Start Speed
    • 해당 방향으로 작용하는 파티클 초기 속도
  • Start Color
    • 파티클 입자의 초기 색깔
  • Gravity Modifier
    • 파티클 입자에게 미치는 중력의 영향 정도.
    • 이 값이 클 수록 빨리 떨어진다.
    • 이 값이 작을 수록 중력의 영향을 받지 않는다.
  • Start Rotation
    • 파티클 입자 초기 회전값
    • Random Between Two Constants 로 하여 두 회전값 사이에서 입자마다 랜덤한 회전값을 가지게 할 수 있다.


✈ Emissions 모듈

한 순간에 빵 터지듯이 동시에 방출될 입자 수. 한발에 동시에 총알 여러발 나가는 총의 이펙트 효과를 구현할 때 좋을 것 같다.

  • Rate over Time
    • 시간 단위 당 방출되는 파티클 수
  • Bursts 👉 파티클을 생성하는 이벤트
    • Count
      • 동시에 한번에 방출되는 파티클 수


✈ Shape 모듈

파티클 입자들이 생성 및 방출되는 모양을 결정한다. 구라면 구 모양으로 파티클 입자들이 방출되는 식이다.

  • Shape
    • 이 모양 내에서 랜덤한 위치에서 파티클 입자들이 방출된다.
      • Sphere 라면
        • 총구는 동그랗기 때문에 역시 총 발사 이펙트 효과에 적합할 것 같다!
      • Cone 이라면 원뿔 모양
        • Angle
          • 파티클 입자가 더 넓게 튀도록
          • Cone 원뿔 꼭지점의 각도로, 각도가 0 이면 원기둥이 되고 90 이면 평면 원반이 된다.
  • Radius
    • 위에서 설정한 Shpae의 반지름이 된다. 이 반경 내에서 입자들이 태어난다.


✈ Color Over Lifetime 모듈

수명 주기에 따라 파티클의 색깔과 투명도가 어떻게 변하는지를 설정할 수 있다.

image

  • 저 직사각형 가로 길이가 파티클 입자의 전체 수명 주기이다.
    • 우클로 섹션을 추가할 수 있는데, 이 섹션들을 누르면 섹션이 위치한 주기의 구간 별로 색상 혹은 투명도를 다르게 지정할 수 있다.
      • 위의 섹션 👉 투명도
      • 아래 섹션 👉 색상
    • 파티클이 점점 노래지다가 중간즈음부터 점점 투명해져 자연스럽게 수명을 다하는 컬러를 나타냈다.
      • 1 번 섹션의 투명도를 256으로 한 후 수명 주기의 중간에 위치하게 하고 2 번 섹션의 투명도를 0 으로 한 후 수명 끝에 위치하게 하면 수명의 중간까진 불투명했다가 중간 이후부턴 점점 투명해지게 만들 수 있다.
      • 3, 4 번 섹션의 색상을 노란색으로 추가해서 수명에서 3,4 번 주변 주기 땐 노랗게 변하게 할 수 있다.


✈ Size Over LifeTime 모듈

수명 주기에 따라 파티클의 크기가 어떻게 변하는지도 설정할 수 있다.

image

위 그래프는 예를 들어 사이즈가 처음엔 최대이다가 수명 주기 동안 점점 곡선을 그리는 형태로 작아지고 사라지는 형태다.


✈ Light 모듈

Light 컴포넌트가 붙은 프리팹을 할당해주면 파티클 입자 하나하나 마다 해당 빛을 가지게 된다.

  • 프리팹으로 만들어 둔 Light 컴포넌트가 붙은 오브젝트를 할당해준다.
  • Ratio 0.1 👉 파티클 입자들의 10 % 정도는 이 빛을 가진다.


✈ Renderer 모듈

파티클의 이미지나 메시가 어떻게 변환되고 응영처리 되고 덮어 쓰여지는지를 결정한다.

  • Render Mode
    • 렌더링 된 이미지가 생성되는 방식이다.
    • Stretched Billboard 로 설정하면
      • 파티클은 항상 카메라를 향하지만 다양한 Scale 이 적용 된다. 다양한 모양으로 입자가 뻗친다.
        • Speed Scale 속도에 비례하여 파티클이 뻗어진다. (음수, 양수로 방향 설정)
    • Mesh 로 설정하면
      • 파티클 입자들을 텍스처 대신 3 D 메시로 렌더링 한다.
        • 입자에 입힐 원하는 Mesh를 같이 할당해주면 된다.
  • Material
    • 파티클 입자의 Material. 색깔, 광택, 표면 등이 된다.
  • Trails Material
    • 파티클 입자의 잔상의 Material
    • Trails 모듈을 사용할거라면 지정해주어야 한다.


✈ Texture Sheet Animation 모듈

파티클 입자에 텍스처 또는 애니메이션을 넣을 수 있다!

  • Grid 모드 : 일반 적인 입자
  • Sprite 모드 : 특정 Sprite 이미지로 대체
    • 인스펙터에서 파티클 입자에 입힐 이미지 파일의 Texture Type을 Sprite(2D and UI)로 바꿔준 후 이미지 파일을 할당해 준다.
    • Sprite 에 맞게 입자의 Material도 바꿔주는게 자연스럽다. Renderer 모듈의 Material을 “Sprites-Default” 로 바꿔준다. (스프라이트에 맞는 Material)


✈ Trails 모듈

파티클 입자에 기다란 잔상을 남긴다.

  • Ratio
    • 잔상을 남길 입자 비율
      • 파티클 모든 입자에게 100 퍼 잔상을 생성한다.
      • 만약 0.5 라면 입자 개수의 절반에 해당하는 랜덤한 입자들만 잔상을 생성한다.
  • Lifetime
    • 잔상의 수명
  • Minimum Vertex Distance
    • 잔상이 어느 거리만큼 가야 Vertex 가 업데이트 될지를 나타내는 설정 값이다.
    • 이 값이 작으면 작을 수록, 0 에 가까울 수록 자주 업데이트 되므로 잔상이 자연스럽다.
    • 크면 클수록 잔상이 업데이트 되는 거리가 길어져 뚝뚝 끊길 것이다.
  • Color Over LifeTime
    • 잔상의 수명 주기에 따른 색깔 변화
  • Renderer 모듈에서 Metrial 지정해주기


✈ Noise 모듈

파티클 움직임에 역동성을 더해준다.

  • Strength
    • 노이즈 효과가 파티클에 얼마나 강하게 적용되는지. 높게 설정할 수록 파티클이 더 빠르고 멀리 이동한다.
  • Frequency
    • 낮게 설정하면 노이즈가 부드럽고 매끄럽게 생성되고, 높게 설정하면 빠르게 변화하는 노이즈로 생성된다. 얼마나 갑작스럽게 바뀌는지의 정도. 이동 방향이 바뀌는 빈도. 왔다 갔다 움직이는 빈도 수.
  • Scroll Speed
    • 이 값이 높으면 높을수록 불규칙하고 흔들리면서 움직이게 된다. 높으면 높을 수록 입자들이 부들부들 떨림.
  • Damping
    • 활성화 하면 노이즈 세기가 Frequency 에 비례하게 된다.
  • Octaves
    • 몇개의 노이즈 레이어를 겹칠지 설정. 이 값이 높으면 높을 수록 노이즈 레이어를 많이 두어서 노이즈 모양이 더 풍부해진다는 뜻이다. 다만 성능 저하 문제가 발생할 수 있음.
  • Remap 연산된 최종 노이즈 값을 다른 범위에 다시 맵핑한다.
    • 아래 그래프로 Remap Curve를 설정했다면 노이즈 모양은 위로 갔다가 아래로 갔다가 다시 위로 가는 형태로 노이즈가 작용할 것이다. image


🚀 변수/프로퍼티

✈ duration

Particle System 은 스스로의 러닝타임을 알고 있다.


🚀 함수

✈ Play

public void Play(bool withChildren = true);

  • 파티클 이펙트 재생


🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우 
언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄

맨 위로 이동하기

UnityDocs 카테고리 내 다른 글 보러가기

댓글 남기기