Unity C# > 컴포넌트 : Particle System 와 프로퍼티/함수 모음
카테고리: UnityDocs
태그: Unity Game Engine
공부하면서 알게된 것만 정리합니다.😀
👩🦰 Particle System
이 컴포넌트를 붙이면 오브젝트는 파티클 효과를 일으킬 수 있다.
🚀 에디터
Stop action
- 이펙트가 재생이 끝났을때 실행될 처리.
Destroy
를 할당해주면 이펙트 재생이 끝나자마 이펙트 오브젝트가 파괴된다.Disable
을 할당해주면 이펙트 재생이 끝나자마 이펙트 오브젝트가 비활성화 된다.Callback
을 할당해주면 이펙트 재생이 끝나자마자 OnParticleSystemStop 이벤트 함수가 실행된다. 즉, OnParticleSystemStop 이벤트 함수안에 내가 원하는 처리 구현해놓아 실행시킬 수도 있다.
- 이펙트가 재생이 끝났을때 실행될 처리.
✈ 메인 모듈
- 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
- 동시에 한번에 방출되는 파티클 수
- Count
✈ Shape 모듈
파티클 입자들이 생성 및 방출되는 모양을 결정한다. 구라면 구 모양으로 파티클 입자들이 방출되는 식이다.
- Shape
- 이 모양 내에서 랜덤한 위치에서 파티클 입자들이 방출된다.
- Sphere 라면
- 총구는 동그랗기 때문에 역시 총 발사 이펙트 효과에 적합할 것 같다!
- Cone 이라면 원뿔 모양
- Angle
- 파티클 입자가 더 넓게 튀도록
- Cone 원뿔 꼭지점의 각도로, 각도가 0 이면 원기둥이 되고 90 이면 평면 원반이 된다.
- Angle
- Sphere 라면
- 이 모양 내에서 랜덤한 위치에서 파티클 입자들이 방출된다.
- Radius
- 위에서 설정한 Shpae의 반지름이 된다. 이 반경 내에서 입자들이 태어난다.
✈ Color Over Lifetime 모듈
수명 주기에 따라 파티클의 색깔과 투명도가 어떻게 변하는지를 설정할 수 있다.
- 저 직사각형 가로 길이가 파티클 입자의 전체 수명 주기이다.
- 우클로 섹션을 추가할 수 있는데, 이 섹션들을 누르면 섹션이 위치한 주기의 구간 별로 색상 혹은 투명도를 다르게 지정할 수 있다.
- 위의 섹션 👉 투명도
- 아래 섹션 👉 색상
- 파티클이 점점 노래지다가 중간즈음부터 점점 투명해져 자연스럽게 수명을 다하는 컬러를 나타냈다.
- 1 번 섹션의 투명도를 256으로 한 후 수명 주기의 중간에 위치하게 하고 2 번 섹션의 투명도를 0 으로 한 후 수명 끝에 위치하게 하면 수명의 중간까진 불투명했다가 중간 이후부턴 점점 투명해지게 만들 수 있다.
- 3, 4 번 섹션의 색상을 노란색으로 추가해서 수명에서 3,4 번 주변 주기 땐 노랗게 변하게 할 수 있다.
- 우클로 섹션을 추가할 수 있는데, 이 섹션들을 누르면 섹션이 위치한 주기의 구간 별로 색상 혹은 투명도를 다르게 지정할 수 있다.
✈ Size Over LifeTime 모듈
수명 주기에 따라 파티클의 크기가 어떻게 변하는지도 설정할 수 있다.
위 그래프는 예를 들어 사이즈가 처음엔 최대이다가 수명 주기 동안 점점 곡선을 그리는 형태로 작아지고 사라지는 형태다.
✈ Light 모듈
Light 컴포넌트가 붙은 프리팹을 할당해주면 파티클 입자 하나하나 마다 해당 빛을 가지게 된다.
- 프리팹으로 만들어 둔
Light
컴포넌트가 붙은 오브젝트를 할당해준다. - Ratio 0.1 👉 파티클 입자들의 10 % 정도는 이 빛을 가진다.
✈ Renderer 모듈
파티클의 이미지나 메시가 어떻게 변환되고 응영처리 되고 덮어 쓰여지는지를 결정한다.
- Render Mode
- 렌더링 된 이미지가 생성되는 방식이다.
- Stretched Billboard 로 설정하면
- 파티클은 항상 카메라를 향하지만 다양한 Scale 이 적용 된다. 다양한 모양으로 입자가 뻗친다.
- Speed Scale 속도에 비례하여 파티클이 뻗어진다. (음수, 양수로 방향 설정)
- 파티클은 항상 카메라를 향하지만 다양한 Scale 이 적용 된다. 다양한 모양으로 입자가 뻗친다.
- Mesh 로 설정하면
- 파티클 입자들을 텍스처 대신 3 D 메시로 렌더링 한다.
- 입자에 입힐 원하는 Mesh를 같이 할당해주면 된다.
- 파티클 입자들을 텍스처 대신 3 D 메시로 렌더링 한다.
- 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를 설정했다면 노이즈 모양은 위로 갔다가 아래로 갔다가 다시 위로 가는 형태로 노이즈가 작용할 것이다.
🚀 변수/프로퍼티
✈ duration
Particle System 은 스스로의 러닝타임을 알고 있다.
🚀 함수
✈ Play
public void Play(bool withChildren = true);
- 파티클 이펙트 재생
🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우
언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄
댓글 남기기