시스템과 이미터 속성
시스템과 이미터의 실행 상태·루프·수명 주기 설정이 적용되는 범위를 구분하고 여러 이미터의 동작을 함께 조율합니다.
우리는 지금까지 나이아가라의 기본 구조와 파티클 생성 및 렌더링에 대해 알아보았습니다.
이제 나이아가라 효과를 더욱 풍부하고 정교하게 만드는 핵심 요소인 시스템 및 이미터 속성에 대해 깊이 있게 파고들 차례입니다.
이 속성들은 여러분이 만들고 있는 나이아가라 효과의 전반적인 동작과 수명 주기를 제어하는 중요한 역할을 합니다.
System Overview에서 시스템과 하나 이상의 이미터를 선택할 수 있습니다. 화면의 위치보다 Selection 스택에서 어떤 범위를 선택했는지 확인하는 것이 중요합니다.
각각의 섹션은 해당 범위에 영향을 미치는 고유한 속성들을 가지고 있습니다.
시스템 속성 (System Properties)
시스템 속성은 나이아가라 시스템 전체에 영향을 미치는 설정들입니다.
이 설정들은 시스템이 어떻게 시작하고, 종료되며, 게임 세계와 상호작용하는지를 정의합니다.
시스템 섹션을 선택하면 디테일(Details) 패널에서 해당 속성들을 확인할 수 있습니다.
-
System State (시스템 상태): 시스템의 전반적인 수명 주기를 제어합니다.
- Loop Behavior (루프 동작): 시스템이 한 번만 재생될지(
Once), 정해진 횟수만 반복할지(Multiple), 무한 반복할지(Infinite)를 정합니다. 예를 들어, 짧은 폭발 효과는Once, 계속 타오르는 불은Infinite로 설정할 수 있습니다. - Loop Duration (루프 지속 시간): 한 번의 루프가 얼마나 지속될지 초 단위로 정의합니다.
- Inactive Response: 비활성화 요청 이후 남은 입자가 소멸할 때까지 기다릴지 즉시 종료할지 등의 처리를 정합니다. 컴포넌트의 자동 활성화·자동 삭제 설정과는 구분합니다.
- Loop Behavior (루프 동작): 시스템이 한 번만 재생될지(
-
System Properties와 Scalability: 상태 모듈 바깥의 시스템 설정도 확인합니다.
- Warmup Time: 활성화 시 미리 시뮬레이션할 시간을 정합니다. 연기가 이미 피어오른 상태로 시작할 때 유용하지만, 시작 시 여러 틱을 계산하므로 지연이 생길 수 있습니다.
- Fixed Bounds (고정 경계): 시스템의 렌더링 경계를 수동으로 설정할 수 있습니다. 특히 매우 넓은 범위에 걸쳐 파티클이 퍼지는 효과의 경우, 엔진이 경계를 잘못 예측하여 파티클이 잘리는 것을 방지할 수 있습니다.
- Scalability / Cull Proxy: 거리·가시성·예산에 따른 컬링 조건과 반응을 설정합니다. Cull Proxy는 지원되는 컬링 대체 표현을 위한 선택 기능이며, 모든 잘림을 해결하는 일반 Bounds 설정은 아닙니다.
-
System Parameters: 시스템이나 User Parameter로 값을 노출하고, 이미터/파티클 모듈이 그 값을 읽어 사용할 수 있습니다. 값을 선언하는 것과 모든 파티클에 자동 적용되는 것은 다릅니다.
시스템 속성에서는 여러 이미터를 담는 효과 단위의 수명, bounds, scalability, 파라미터 계약을 정리합니다.
이미터 속성 (Emitter Properties)
이미터 속성은 개별 이미터의 동작 방식에 영향을 미칩니다.
각 이미터는 독립적인 파티클 생성 및 업데이트 로직을 가지므로, 이미터 속성을 통해 특정 파티클 효과의 세부적인 동작을 제어할 수 있습니다.
이미터 섹션을 선택하면 디테일(Details) 패널에서 해당 속성들을 확인할 수 있습니다.
-
Emitter State (이미터 상태): 이미터의 수명 주기와 관련된 핵심 설정입니다.
- Life Cycle Mode: 이미터 수명 주기를 시스템이 관리할지(
System), 이미터가 자체적으로 관리할지(Self)를 정합니다. - Loop Behavior (루프 동작): 해당 이미터가 한 번만 재생될지, 정해진 횟수만 반복할지, 무한 반복할지 설정합니다.
- Loop Duration (루프 지속 시간): 이미터의 한 번의 루프가 지속되는 시간입니다.
- Loop Delay / Inactive Response: 반복 사이의 지연과 비활성 상태 처리 방식을 정합니다.
- Life Cycle Mode: 이미터 수명 주기를 시스템이 관리할지(
-
Emitter Properties의 Local Space: 파티클 좌표를 Niagara Component 기준으로 해석할지, 월드 기준으로 해석할지 결정합니다. 컴포넌트에 붙어 움직여야 하는지, 월드에 남아야 하는지를 기준으로 선택합니다. Emitter State의 루프 입력과는 다른 설정입니다.
-
Rendering (렌더링): Render 그룹과 Renderer 설정에서 파티클이 어떻게 렌더링될지 제어합니다.
- Sort Mode (정렬 모드): 투명한 파티클이 올바르게 렌더링되도록 정렬 방식을 설정합니다.
- Culling (컬링): 해당 이미터의 파티클이 언제 컬링될지(렌더링되지 않을지)를 제어합니다.
-
Collision (충돌): 보통 Particle Update의 Collision 모듈에서 월드 충돌, 채널, 반응을 설정합니다. 이미터 속성만 바꾼다고 충돌이 자동으로 생기지는 않습니다.
-
Scalability (확장성): Effect Type, Scalability Mode, 시스템/이미터 scalability override, 거리·가시성 컬링과 함께 성능 상한을 설정합니다.
- Spawn Rate, Spawn Burst, lifetime, kill 조건, scalability 제한이 파티클 수를 함께 결정합니다.
이미터 속성에서는 개별 이미터의 수명 관리, 좌표 기준, 비활성 처리, scalability 참여 방식을 정리합니다.
스폰율, 충돌, 렌더러, 머티리얼 비용은 각각 해당 모듈과 렌더 그룹에서 다시 확인해야 합니다.
컴포넌트가 움직일 때 같은 입자 위치를 다르게 해석합니다
같은 시작 컴포넌트 0/입자 10에서 컴포넌트만 100으로 이동하면 Local 110/World 10이 되는 두 독립 상태 비교이다. 회전/스케일/입자 힘 없음 조건을 유지한다.
NIAGARA · CH2-4
컴포넌트가 움직일 때 같은 입자 위치를 다르게 해석합니다
설명용 1차원 예시입니다. 시작 시 컴포넌트 X=0cm, 입자 X=10cm이며 이후 컴포넌트만 +100cm 이동합니다. 회전·스케일 변화와 입자 자체의 속도·힘·위치 갱신은 없다고 가정합니다.
Local Space · 컴포넌트 기준
입자의 로컬 X=10cm를 유지합니다. 이동 후 월드 X는 100 + 10 = 110cm입니다.
World Space · 월드 기준
입자의 월드 X=10cm를 유지합니다. 컴포넌트가 이동해도 이 입자는 월드 10cm에 남습니다.
범례와 적용 조건
작은 사각형은 Niagara Component, 점은 입자입니다. 가로 위치는 이 예시의 월드 X를 나타냅니다.
실제 모듈은 선택한 좌표 공간과 입력 변환을 따릅니다. 속도·힘·Position 덮어쓰기, 회전·스케일·소켓 움직임이 있으면 결과가 달라집니다. Emitter Properties의 Local Space는 Emitter State의 루프/수명 설정과 다른 항목입니다.
이 예의 조건
- 본문과 원 도표에 제시된 사례의 입력·조건을 사용합니다. 설명용 수치나 독립 비교 경로는 각 단계에 표시합니다.
- 현재 상태·값과 전환 근거의 위치는 모든 단계에서 같습니다. 조건이 맞지 않거나 실행되지 않은 경로를 성공한 동작으로 해석하지 않습니다.
관계도의 보충 설명
| 범위 | 원문 |
|---|---|
| 본문·주석 | 설명용 1차원 예시입니다. 시작 시 컴포넌트 X=0 cm, 입자 X=10 cm이며 이후 컴포넌트만 +100 cm 이동합니다. 회전·스케일 변화와 입자 자체의 속도·힘·위치 갱신은 없다고 가정합니다. |
| 도표 제목 | 컴포넌트 100 cm, 입자 월드 110 cm |
| 관계·조건 설명 | 이동 후 컴포넌트는 두 경우 100 cm입니다. Local Space 입자는 상대 10 cm를 유지해 월드 110 cm, World Space 입자는 월드 10 cm에 남습니다. |
| 노드·연결선 라벨 | 컴포넌트 100 cm |
| 노드·연결선 라벨 | 입자 110 cm |
| 도표 제목 | Local 110 cm |
| 관계·조건 설명 | 컴포넌트 0→100 cm 이동, 원래 입자 10 cm이며 자체 갱신/회전/스케일은 없다. 작은 사각형은 컴포넌트, 원은 입자를 나타낸다. Local에서는 110 cm, World에서는 10 cm다. |
| 본문·주석 | 입자의 로컬 X=10 cm를 유지합니다. 이동 후 월드 X는 |
| 본문·주석 | 100 + 10 = 110 cm |
| 도표 제목 | 컴포넌트 100 cm, 입자 월드 10 cm |
| 노드·연결선 라벨 | 입자 10 cm |
| 도표 제목 | World 10 cm |
| 본문·주석 | 입자의 월드 X=10 cm를 유지합니다. 컴포넌트가 이동해도 이 입자는 |
| 본문·주석 | 월드 10 cm |
| 관찰·상황 | 값·보충 정보 | 변화·이유 |
|---|---|---|
| 같은 시작 컴포넌트 0과 입자 10의 두 독립 사례다. |
|
|
| 컴포넌트 이동 컴포넌트만 100으로 옮긴다. |
|
|
| 결과 대조 Local은 부모를 따라 110, World는 10이다. |
|
|
컴포넌트가 움직일 때 같은 입자 위치를 다르게 해석합니다
같은 시작 컴포넌트 0/입자 10에서 컴포넌트만 100으로 이동하면 Local 110/World 10이 되는 두 독립 상태 비교이다. 회전/스케일/입자 힘 없음 조건을 유지한다.
NIAGARA · CH2-4
컴포넌트가 움직일 때 같은 입자 위치를 다르게 해석합니다
설명용 1차원 예시입니다. 시작 시 컴포넌트 X=0cm, 입자 X=10cm이며 이후 컴포넌트만 +100cm 이동합니다. 회전·스케일 변화와 입자 자체의 속도·힘·위치 갱신은 없다고 가정합니다.
Local Space · 컴포넌트 기준
입자의 로컬 X=10cm를 유지합니다. 이동 후 월드 X는 100 + 10 = 110cm입니다.
World Space · 월드 기준
입자의 월드 X=10cm를 유지합니다. 컴포넌트가 이동해도 이 입자는 월드 10cm에 남습니다.
범례와 적용 조건
작은 사각형은 Niagara Component, 점은 입자입니다. 가로 위치는 이 예시의 월드 X를 나타냅니다.
실제 모듈은 선택한 좌표 공간과 입력 변환을 따릅니다. 속도·힘·Position 덮어쓰기, 회전·스케일·소켓 움직임이 있으면 결과가 달라집니다. Emitter Properties의 Local Space는 Emitter State의 루프/수명 설정과 다른 항목입니다.
이 예의 조건
- 본문과 원 도표에 제시된 사례의 입력·조건을 사용합니다. 설명용 수치나 독립 비교 경로는 각 단계에 표시합니다.
- 현재 상태·값과 전환 근거의 위치는 모든 단계에서 같습니다. 조건이 맞지 않거나 실행되지 않은 경로를 성공한 동작으로 해석하지 않습니다.
관계도의 보충 설명
| 범위 | 원문 |
|---|---|
| 본문·주석 | 설명용 1차원 예시입니다. 시작 시 컴포넌트 X=0 cm, 입자 X=10 cm이며 이후 컴포넌트만 +100 cm 이동합니다. 회전·스케일 변화와 입자 자체의 속도·힘·위치 갱신은 없다고 가정합니다. |
| 도표 제목 | 컴포넌트 100 cm, 입자 월드 110 cm |
| 관계·조건 설명 | 이동 후 컴포넌트는 두 경우 100 cm입니다. Local Space 입자는 상대 10 cm를 유지해 월드 110 cm, World Space 입자는 월드 10 cm에 남습니다. |
| 노드·연결선 라벨 | 컴포넌트 100 cm |
| 노드·연결선 라벨 | 입자 110 cm |
| 도표 제목 | Local 110 cm |
| 관계·조건 설명 | 컴포넌트 0→100 cm 이동, 원래 입자 10 cm이며 자체 갱신/회전/스케일은 없다. 작은 사각형은 컴포넌트, 원은 입자를 나타낸다. Local에서는 110 cm, World에서는 10 cm다. |
| 본문·주석 | 입자의 로컬 X=10 cm를 유지합니다. 이동 후 월드 X는 |
| 본문·주석 | 100 + 10 = 110 cm |
| 도표 제목 | 컴포넌트 100 cm, 입자 월드 10 cm |
| 노드·연결선 라벨 | 입자 10 cm |
| 도표 제목 | World 10 cm |
| 본문·주석 | 입자의 월드 X=10 cm를 유지합니다. 컴포넌트가 이동해도 이 입자는 |
| 본문·주석 | 월드 10 cm |
| 관찰·상황 | 값·보충 정보 | 변화·이유 |
|---|---|---|
| 같은 시작 컴포넌트 0과 입자 10의 두 독립 사례다. |
|
|
| 컴포넌트 이동 컴포넌트만 100으로 옮긴다. |
|
|
| 결과 대조 Local은 부모를 따라 110, World는 10이다. |
|
|
그림에서는 컴포넌트가 월드 X=0cm일 때 입자가 X=10cm에 있습니다. 컴포넌트만 X=100cm로 옮기면 Local Space에서는 상대 위치 10 cm를 유지해 월드 X가 100 + 10 = 110cm가 됩니다. World Space에서는 이미 생성된 입자의 월드 X=10cm가 그대로 남습니다. 컴포넌트에 붙는 불꽃과, 이동 경로에 남기는 연기를 선택하는 기준으로 비교해 보세요.
좌표를 바꾸어 판단하기
이번에는 시작 컴포넌트의 월드 X=50cm이고 입자는 그보다 20 cm 왼쪽에 있습니다. 컴포넌트만 월드 X=200cm로 옮겼습니다. 회전·스케일 변화와 입자 자체의 속도·힘·위치 갱신은 없습니다. 같은 시작 위치를 Local Space와 World Space로 각각 해석했을 때 입자의 최종 월드 X는 얼마일까요?
풀이 확인
시작 입자의 월드 X는 50 - 20 = 30cm입니다. Local Space는 상대 X=-20cm를 유지하므로 이동 뒤 200 - 20 = 180cm입니다. World Space는 입자의 월드 X=30cm를 유지합니다. 컴포넌트가 150 cm 이동했다고 월드 공간의 기존 입자에 그 값을 자동으로 더하지 않습니다.
시스템과 이미터 속성의 상호작용
시스템 속성과 이미터 속성은 서로 영향을 주고받으며 최종적인 나이아가라 효과를 만들어냅니다.
- 관리 범위: 시스템은 여러 이미터를 담는 효과 단위이고, 이미터는 독립적인 Execution State와 Life Cycle Mode를 가질 수 있습니다.
- 파라미터 전달: 시스템/User Parameter로 값을 노출하더라도, 이미터나 파티클 모듈이 그 값을 읽어야 실제 시뮬레이션에 반영됩니다.
- 성능 제한: 전체 품질 제한은 Effect Type과 scalability 설정에서, 개별 밀도와 수명은 이미터의 스폰·업데이트·kill 조건에서 함께 결정됩니다.
이러한 속성들을 이해하면 “전체 효과 설정”, “이미터 수명”, “파티클 업데이트 모듈”, “렌더러와 머티리얼”, “scalability 제한”을 섞지 않고 조정할 수 있습니다.
설정 위치 찾기
| 관찰한 문제 | 확인할 범위 |
|---|---|
| 효과 전체가 예상보다 빨리 끝남 | System State의 반복·비활성화 처리와 컴포넌트 활성 상태 |
| 이미터 하나만 다르게 반복함 | 해당 Emitter State의 Life Cycle Mode와 Self 설정 |
| 컴포넌트 이동 시 입자도 함께 움직임 | Emitter Properties의 Local Space |
| 화면 가장자리에서 효과가 사라짐 | Bounds와 실제 적용 중인 컬링 조건 |
| 플랫폼에 따라 밀도·표시가 다름 | Effect Type과 시스템·이미터 Scalability override |
작업 전 전체 지속 시간과 각 이미터의 시각 역할을 정합니다. User Parameter는 이름만 선언하지 말고 소비 모듈의 입력에 연결합니다. 같은 카메라·시간 구간에서 값을 하나씩 바꾸면 범위가 겹치는 설정도 추적하기 쉽습니다.
System Settings에서 Warmup과 사용자 파라미터의 위치를 확인할 수 있습니다.