이미터는 독립된 파티클이다. (밑에 따로 정리한 PPT를 보면 이해가 쉽다.)
이미터를 담는 그릇이 나이아가라 시스템이다.
이미터에 쌓는 스택 하나를 "Module"이라 칭하는데 처리 순서는 시스템이 위에서 아래로 순차적으로 처리한다.
고급 연산 장치인 CPU로 시뮬레이션을 타겟했을때 상당히 복잡한 이펙트를 구현할 수 있다. 하지만 용량면에서 GPU가 압도적이기 때문에 초대량의 파티클 시뮬레이션을 처리할때는 GPU가 유리할 수 있다. (절대적인 정답은 없다 상황에 따라서 알맞은 판단, 프로그래머들의 조언이 필요하다.)
GPUSim일 때 Fixed Bounds로 영역을 확정시켜야 GPU가 알맞게 처리할 수 있다. 카메라가 이 공간을 넘어가면 파티클의 출력이 정지한다.
나이아가라 시스템 설명 & 스폰 사이즈 정렬
나이아가라 이미터는 크게 "Properties", "Emitter", "Particle", "Render" 4가지로 나누어져 있다.
"Spawn"과 "Update"는 어렵게 생각할 것 없다.
"Spawn" : 이미터가 실행시 첫 Tick에만 해당. (최초 1회)
"Update" : 이미터가 실행중 모든 Tick에 해당. (모든 프레임)
그래서 Emitter Update에서는 보통 Spawn에 관련된 옵션을 사용한다. (이제 1주차인데 자세히 이해하려 할 필요없다. 그냥 그런갑다 하고 넘어가자)
Emitter State에서는 Life Cycle, Loop 등 다양한 옵션을 수정할 수 있다.
Particle Spawn : 파티클의 Lifetime, Transform 등을 수정한다. 파티클이 처음 생성되었을때의 값을 조절할 수 있다. 혹은 그와 관련된 모듈을 가지고 있다.
Particle Update : 파티클이 생성된 후 매프레임마다 업데이트 시켜줄 수 있는 기능 혹은 그러한 기능을 가진 모듈로 구성되어 있다.
여기서 같은 모듈을 사용하더라도 스테이지(Spawn, Update)에 따라 기능이 다르게 움직인다.
Render : Material, Alignment, Binding 등을 컨트롤 할 수 있는 스테이지이다. 고급기능에 해당하므로 이해하고 활용하는데 상당한 시간이 걸릴듯 하다.
나이아가라는 자유롭지만 어렵다. 나이아가라 모듈은 스크립트로 이루어져 있고 그 모듈들은 노드 형태로 이루어져 있다. 물론 프로그래밍적 지식을 안다면 이것을 이해하기 용이할 것이다. 그러나 이 지식을 기반으로 나만의 모듈 스크립트를 만든다고 하는 것은 전혀 다른 문제이다. TA 혹은 프로그래머에 도움을 받거나 언리얼 엔진의 문서를 활용하여야 할 것이다.
Spawn Rate로 정해진 시간동안 파티클이 생성되게 한다. 정해진 시간은 "Loop Duration"으로 정한다. Spawn Rate 모듈로 파티클이 생성될 개수를 설정할 수 있다.
"Spawn Burst Instantaneous" 모듈은 자체적으로 Delay 기능을 가지고 있다. (Spawn Time)
Burst하는 부분이 1초에 위치한다. 이 때 Loop Duration은 1초 이상이여야 한다.
쉽게 생각하면 딜레이가 1초인데 총 시간이 1초이다. 결과 : ???
Sprite Render는 Quad를 기본으로 Billboard 한다.
나이아가라의 기본 단위는 'cm'이다.
X축 : 너비
Y축 : 높이
이는 UV에 대한 이해가 필요하다.
파티클의 운동 방향으로 축을 회전하고 싶다면 정렬 모드를 수정하여 바꾼다. Y축 기준으로 파티클을 뻗어 나가게 할 수 있다. 다른 방향으로도 잘 수정하여 돌릴 수 있다.
(1,0,0)과 (0,0,1)사이에 있는 색이 전부 나온다.
인덱스를 구분하여 두가지 색만 표현한다.
Every Tick 업데이트되는 스테이지 특성을 활용하여 번쩍이게 할 수도 있다.
'Development > VFX' 카테고리의 다른 글
Blend Mode (0) | 2024.05.01 |
---|---|
Niagara Transform Module (1) | 2024.04.28 |