승쨩개발공부

[Unity] Particle System 본문

C#/Unity

[Unity] Particle System

Unknowns 2024. 8. 15. 03:39

Particle System

Duration 시스템이 실행되는 지속 시간입니다.
Looping 활성화하면 시스템이 지속 시간의 끝에 다다르면 다시 시작되어 주기를 계속 반복합니다.
Prewarm 활성화하면 시스템이 전체 주기를 한 번 완료한 것처럼 초기화됩니다. Looping 이 활성화되었을 때에만 작동합니다.
Start Delay 시스템이 활성화된 후 방출을 시작하기까지 기다리는 지연 시간(초)입니다.
Start Lifetime 파티클의 초기 수명입니다.
Start Speed 해당 방향으로 작용하는 파티클 초기 속도입니다.
3D Start Size 각 축의 크기를 별도로 제어하려면 체크박스를 선택합니다.
Start Size 각 파티클의 초기 크기입니다.
3D Start Rotation 각 축의 회전을 별도로 제어하려면 체크박스를 선택합니다.
Start Rotation 각 파티클의 초기 회전 각도입니다.
Randomize Rotation Direction 일부 파티클이 반대 방향으로 회전하도록 합니다.
Start Color 각 파티클의 초기 컬러입니다.
Gravity Modifier Physics 창에서 설정된 중력 값을 스케일합니다. 이 값을 0으로 하면 중력 효과가 해제됩니다.
Simulation Space 파티클이 부모 오브젝트의 로컬 공간에서 애니메이션화되도록 할지(부모 오브젝트와 함께 이동), 월드 공간에서 애니메이션화할지, 아니면 커스텀 오브젝트에 대해 상대적으로 애니메이션화(선택한 커스텀 오브젝트와 함께 이동)되도록 할지 설정합니다.
Simulation Speed 전체 시스템 업데이트 속도를 조절합니다.
Delta Time Scaled  Unscaled 중에서 선택합니다. Scaled 를 선택하면 Time 창의 Time Scale 값이 사용되고 Unscaled 를 선택하면 이 값이 무시됩니다. 예를 들어 일시정지 메뉴에 표시되는 파티클 시스템 등에 유용합니다.
Scaling Mode 트랜스폼에서 스케일을 사용하는 방법을 설정합니다. Hierarchy, Local, Shape 중에서 선택할 수 있습니다. Local을 선택하면 파티클 시스템 트랜스폼 스케일만 적용되고 부모는 무시됩니다. Shape을 선택하면 파티클의 시작 포지션에 스케일이 적용되지만 크기에는 영향이 없습니다.
Play on Awake 활성화하면 오브젝트가 생성될 때 파티클 시스템이 자동으로 시작합니다.
Emitter Velocity 파티클 시스템이 Inherit Velocity 모듈과 Emission 모듈에 사용할 속도를 계산하는 방법을 선택합니다. 시스템은 Rigidbody 컴포넌트(있을 때에 한함)를 사용하거나 Transform 컴포넌트의 움직임을 추적하여 속도를 계산할 수 있습니다.
Max Particles 시스템에 한번에 포함될 수 있는 최대 파티클 수입니다. 한도에 도달하면 일부 파티클이 제거됩니다.
Auto Random Seed 활성화하면 파티클 시스템을 재생할 때마다 시스템이 조금씩 다르게 표시됩니다. 비활성화하면 시스템을 재생할 때마다 파티클 시스템이 똑같이 보입니다.
Random Seed Auto Random Seed가 비활성화되었을 때 이 값을 사용하여 고유한 반복 효과를 만들어낼 수 있습니다.
Stop Action 시스템에 속한 모든 파티클이 완료되어 시스템이 중지되었을 때 특정 동작을 수행하도록 설정할 수 있습니다. 시스템의 파티클이 모두 소멸되고 파티클의 수명이 지속 시간을 초과하면 시스템이 중지된 것으로 간주됩니다. 루프를 반복하는 시스템에서는 스크립트를 통해 중지되었을 때 중지된 것으로 간주됩니다.
    Disable 게임 오브젝트를 비활성화합니다.
    Destroy 게임 오브젝트를 파괴합니다.
    Callback OnParticleSystemStopped 콜백을 게임 오브젝트에 연결된 스크립트로 전송합니다.
Culling Mode 파티클이 화면을 벗어나면 파티클 시스템 시뮬레이션을 일시정지할지 여부를 선택합니다. 오프스크린인 경우 컬링이 가장 효율적이지만, 오프스크린 효과의 시뮬레이션을 지속하는 것이 좋습니다.
    Automatic 루핑 시스템은 Pause 를, 기타 모든 시스템은 Always Simulate 를 사용합니다.
    Pause And Catch-up 시스템이 화면에서 벗어나면 시뮬레이션을 중단합니다. 뷰 안으로 다시 진입하면 시뮬레이션은 일시정지되지 않았다면 도달했을 포인트에 도달하기 위해 대규모 단계를 수행합니다. 복잡한 시스템의 경우 이 옵션을 설정하면 성능이 순간적으로 크게 저하될 수 있습니다.
    Pause 시스템이 화면에서 벗어나면 시뮬레이션을 중단합니다.
    Always Simulate 온스크린 여부와는 상관없이 시스템이 모든 프레임에서 시뮬레이션을 처리합니다. 시뮬레이션 시 명확하게 알아볼 수 있는 불꽃놀이와 같은 일회성 효과에 유용합니다.
Ring Buffer Mode 파티클이 Max Particles 수에 도달할 때까지 파티클을 계속 활성화합니다. Max Particles 수에 도달하면 수명이 경과한 파티클을 제거하는 대신 가장 오래된 파티클을 재활용하여 새 파티클을 생성합니다.
    Disabled 시스템이 수명이 경과한 파티클을 제거하도록 Ring Buffer Mode 를 비활성화합니다.
    Pause Until Replaced 수명을 다한 오래된 파티클을 일시정지했다가 Max Particle 한계에 도달하면 시스템에서 재활용하여 새 파티클로 다시 표시되게 합니다.
    Loop Until Replaced 수명을 다한 파티클이 특정한 수명 비율 지점으로 다시 돌아가며, Max Particle 한계에 도달하면 시스템에서 재활용하여 새 파티클로 다시 표시되게 합니다.

 

 

Emission

Rate over Time : 1초에 몇개의 입자를 방출할것인지

Rate over Distance  : 거리에따라서 뿜어저나오는 입자 (불꽃, 가스, 먼지)

Bursts : 동시에 파티클이 뿜어져나옴 폭발이펙트 등에 유용

(Time : 시간, Count : 파티클갯수, Cycles : 뿜어져 나오는횟수, Interval: 뿜어져 나오는횟수를 몇초단위로)

 

Shape

Shape : 파티클 입자들이 나올 모양의 형태를 정해줌

Angle : 각도

Raduus : 입자들이 뿜어져나오는 범위

Arc : 뿜어져나오는 범위에서 어느 방향에서 파티클이 나올건지

Mode : Random으로하면 랜덤으로 Loop로하면 동글동글하게 파티클이 뿜어져나옴

 

Velocity Over LifeTime

시간이 지나면 속도를 부가해줌

Linear : 직선방향

Orbital :궤도방향

 

Limit Velocity over LifeTime

시간이 지나면 속력제한

Drag : 시간이지날수록 점점 저항이 강해짐(속도가느려짐)

 

Force Over LifeTime

시간이 지날수록 계속 일정한 방향으로 힘을줌

 

Color Over LifeTime

시간이 지날수록 다른색깔로 변할수있음

 

~ By Speed

입자에 스피드에따른 조절계수

ex : 속도가 5가되면 색깔을바꾸고,사이즈를키우고,로테이션값을 줄수있음

 

Size of LifeTime

시간이 지날수록 사이즈를 조절할수있음

 

Noise

파티클을을 움직임을 방해함

노이즈처럼 움직일수있음

 

Colision

충돌가능하게 설정가능

Bounce 얼마나 튕길지,LifeTime등 설정가능

 

Trigger

Trigger이벤트 가능

 

Sub Emitters

입자들이 또 자기자신의 입자를 가질수있음

자식객체로 파티클이 무언가이벤트가됬을떄 효과를넣을수있음

ex: 빗방울이 바닥에 떨어졋을떄 빗방울이 튀는 느낌

ex : 미사일이 폭발할때 미사일의 잔해가 또 다른곳으로가서 폭발

 

Texture Sheet Animation

텍스쳐 애니메이션을 파티클로 적용할수있음

꼭애니메이션이 아니여도됨 단일텍스쳐도가능

 

Light

파티클에 조명을 붙힘

ex : 모닥불 빛

 

 

Trails

입자가 지나간자리에 Trail을 생성함

 

 

Renderer

어느방식으로 그릴지

RenderMode:

{

Stratched Billboard : 입자들이 찢어짐 ex: 워프할떄?

Horizontal Billboard : 가로로 잘보임 위나 아래

Vertical Bilboard : 세로로 잘보임 앞,뒤

Mesh : Mesh를 Render함

 

}