시스템과 이미터 속성
시스템과 이미터의 실행 상태·루프·수명 주기 설정이 적용되는 범위를 구분하고 여러 이미터의 동작을 함께 조율합니다.
우리는 지금까지 나이아가라의 기본 구조와 파티클 생성 및 렌더링에 대해 알아보았습니다.
이제 나이아가라 효과를 더욱 풍부하고 정교하게 만드는 핵심 요소인 시스템 및 이미터 속성에 대해 깊이 있게 파고들 차례입니다.
이 속성들은 여러분이 만들고 있는 나이아가라 효과의 전반적인 동작과 수명 주기를 제어하는 중요한 역할을 합니다.
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 참여 방식을 정리하는 위치입니다.
스폰율, 충돌, 렌더러, 머티리얼 비용은 각각 해당 모듈과 렌더 그룹에서 다시 확인해야 합니다.
시스템과 이미터 속성의 상호작용
시스템 속성과 이미터 속성은 서로 영향을 주고받으며 최종적인 나이아가라 효과를 만들어냅니다.
- 관리 범위: 시스템은 여러 이미터를 담는 효과 단위이고, 이미터는 독립적인 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과 사용자 파라미터의 위치를 확인할 수 있습니다.