이미터 업데이트(Emitter Update) 모듈은 CPU에서 이미터 틱이 발생할 때마다 발생합니다. 이 그룹의 모듈은 해당 프레임에서 파티클 스폰이나 업데이트 파라미터 값을 계산해야 합니다. 모듈은 스택의 위에서 아래 순서로 실행됩니다.
이 문서에는 이미터 업데이트 그룹의 각 모듈 타입별 섹션이 준비되어 있으며, 해당 모듈 타입에서 사용할 수 있는 디폴트 옵션의 목록과 설명을 포함한 표도 준비되어 있습니다. 나이아가라 이미터의 모든 부분에 대해 커스텀 모듈을 생성할 수 있습니다. 여기에 나열된 모듈은 언리얼 엔진 4에 자동으로 포함되어 있는 모듈로 한정됩니다.
빔 모듈
모듈 | 설명 |
---|---|
빔 이미터 구성(Beam Emitter Setup) | 이 모듈은 빔 이미터의 시작점, 끝점, 탄젠트를 구성 및 관리합니다. |
카오스 모듈
모듈 | 설명 |
---|---|
카오스에서 스폰(Spawn from Chaos) | 이 모듈은 파티클이 카오스 이벤트에 반응하여 스폰되도록 합니다. |
이미터 상태
파라미터 | 설명 |
---|---|
라이프 사이클 모드(Life Cycle Mode) | 이 세팅은 라이프 사이클(루핑, 수명 및 사망)을 이미터 자체에서 관리할지 아니면 이미터를 소유한 시스템에서 관리할지 결정합니다. 다음과 같은 세팅이 있습니다.
|
비활성 반응(Inactive Response) | 이 세팅은 이미터가 비활성 상태에 진입했을 때 어떤 일이 발생할지 결정합니다. 비활성이란 이미터가 휴면 상태에 들어가 더 이상 파티클을 스폰하거나 관리하지 못하는 상태를 말합니다. 다음과 같은 옵션이 있습니다.
|
루프 행동(Loop Behavior) | 이미터의 행동을 결정합니다. 다음 중에서 선택할 수 있습니다.
|
루프 경과시간(Loop Duration) | 루프를 얼마나 지속할지 결정합니다. |
루프 경과시간 모드(Loop Duration Mode) | 루프의 유한 또는 무한 여부를 결정합니다. |
루프 딜레이(Loop Delay) | 지정한 시간만큼 다음 루프를 딜레이하는 세팅입니다. |
엔진 퀄리티(Scalability) | |
엔진 퀄리티 모드(Scalability Mode) | 이미터가 시스템에서 엔진 퀄리티 세팅을 취할지 아니면 자체의 고유한 엔진 퀄리티 세팅을 사용할지 결정합니다. 다음 중에서 선택할 수 있습니다.
|
디스턴스 컬링 활성화(Enable Distance Culling) | 이 박스를 체크해 활성화합니다. 카메라와 이미터 간의 거리를 기반으로 이미터 컬링을 활성화합니다. 이미터는 카메라에서 특정 거리로 떨어져 있을 때 대기, 재활성화, 소멸 등이 가능합니다. |
비저빌리티 컬링 활성화(Enable Visibility Culling) | 이 박스를 체크해 활성화합니다. 카메라에 대한 시각화 여부를 기반으로 이미터 컬링을 활성화합니다. 이미터는 온스크린 또는 오프스크린 여부에 따라 대기, 재활성화, 소멸 등이 가능합니다. |
재활성화 시 수명 초기화(Reset Age on Awaken) | 이 박스를 체크해 활성화합니다. 엔진 퀄리티 세팅으로 대기 상태가 된 후 이미터가 재활성화되면 이 세팅은 이미터의 수명을 리셋합니다. 즉, 스폰 버스트가 재발동되고 이미터의 라이프 사이클이 다시 시작됩니다. |
위치 모듈
모듈 | 설명 |
---|---|
그리드에 파티클 스폰(Spawn Particles in Grid) | 사용자가 정의한 그리드 해상도 세팅을 기반으로 파티클을 스폰합니다. |
최대 스크립트 모듈
모듈 | 설명 |
---|---|
최대 스크립트 버텍스 애니메이션 툴 모프 타깃 스폰(Spawn MS Vertex Animation Tools Morph Target) | 버텍스 애니메이션 툴을 사용하여 생성된 모프 타깃 텍스처를 스폰 및 샘플링합니다. 버텍스 애니메이션 툴은 모프 타깃 블렌드 형태를 나타내는 텍스처를 생성합니다. 이 모듈은 툴에서 캡처한 모든 버텍스마다 파티클을 하나씩 스폰합니다. 최대 스크립트 버텍스 애니메이션 툴 모프 타깃 업데이트(Update MS Vertex Animation Tools Morph Target) 모듈과 함께 사용됩니다. |
스포닝 모듈
모듈 | 설명 |
---|---|
즉각적인 스폰 버스트(Spawn Burst Instantaneous) | 이 모듈은 파티클의 버스트를 즉시 스폰합니다. |
프레임별 스폰(Spawn Per Frame) | 이 모듈은 프레임마다 파티클 버스트를 스폰합니다. |
유닛별 스폰(Spawn Per Unit) | 이 모듈은 언리얼 유닛의 이동 거리를 기반으로 파티클을 스폰합니다. |
스폰 속도(Spawn Rate) | 이 모듈은 특정 속도로 계속해서 파티클을 스폰합니다. |
유틸리티 모듈
모듈 | 설명 |
---|---|
이미터 프레임 카운터(Emitter Frame Counter) | 이 모듈에서 증가 카운터를 활성화하면 이미터의 애니메이션 프레임별로 카운터가 증가합니다. |
새 스크래치 패드 모듈
더하기 기호 모양의 추가(Add) 메뉴에서 이 항목을 선택하면 스크래치 패드(Scratch Pad) 패널(기본적으로 시스템 개요(System Overview) 옆에 도킹되어 있음)이 실행되어 스크래치 패드 모듈(Scratch Pad module) 을 선택(Selection) 패널에 배치합니다. 창(Windows) > 스크래치 패드(Scratch Pad) 로도 스크래치 패드 패널을 실행할 수 있습니다. 하지만 스택에 스크래치 패드 모듈을 배치할 경우, 스크래치 패드에서 생성한 모든 모듈이나 동적 입력은 스크립트에 자동으로 연결됩니다. '창' 메뉴로 '스크래치 패드' 패널을 열 경우, 스크래치 패드에서 생성한 모든 항목은 스크립트에 직접 추가해줘야 합니다.
새 값 또는 기존 값 직접 설정
추가(Add) 메뉴에서 이 항목을 선택하면 파라미터 설정(Set Parameter) 모듈을 선택(Selection) 패널에 배치합니다. 더하기 기호 모양의 + 아이콘을 클릭하여 파라미터 추가(Add Parameter) 또는 새 파라미터 생성(Create New Parameter) 을 선택합니다.
파라미터 추가
파라미터 추가(Add Parameter) 를 선택하면 나열된 파라미터 목록에서 선택하게 됩니다. 그러면 이미터 업데이트 그룹의 파라미터 설정(Set Parameter) 모듈에 해당 파라미터가 추가됩니다.
파라미터 | 설명 |
---|---|
Emitter.Age | 해당 이미터의 수명을 정의합니다. |
Emitter.CurrentLoopDelay | 이미터의 현재 루프를 반복하기 전 현재 딜레이 양을 정의합니다. |
Emitter.CurrentLoopDuration | 현재 이미터 루프의 경과시간을 정의합니다. |
Emitter.ExecutionState | 이미터의 상태에 영향을 줍니다. 다음의 유효한 값을 선택할 수 있습니다.
|
Emitter.ExecutionStateSource | 실행 상태 세팅의 소스를 보여줍니다. 엔진 퀄리티가 상태를 변경할 수 있게 해주지만, 해당 상태가 더 높은 우선순위로 정의되지 않은 경우에만 사용됩니다. |
Emitter.LocalSpace | 파티클의 위치 기준이 월드 원점인지, 자체 나이아가라 컴포넌트인지 정의합니다.
|
Emitter.LoopCount | 이미터의 루프 반복 횟수를 정의합니다. |
Emitter.LoopedAge | 현재 루프와 관련된 이미터의 수명을 계산합니다. 예를 들어 이미터가 8초 동안 활성화 되었고 매 5초마다 루프한다면, 이미터의 LoopedAge는 3초 가 됩니다. LoopedAge 는 이미터가 루프할 때마다 0을 반환합니다. |
Emitter.NormalizedLoopAge | 현재 루프와 관련된 이미터의 수명을 계산하며 0 에서 1 까지 정규화됩니다. NormalizedLoopAge는 CurrentLoopDuration 으로 나눈 LoopedAge 로 표시됩니다. 이미터가 8초 동안 활성화 되었고 매 5초마다 루프한다면, 이미터의 LoopedAge는 3 이 됩니다. 이미터의 NormalizedLoopAge는 0.6 이 됩니다. |
System.ExecutionState | 시스템의 상태에 영향을 줍니다. 유효한 값 선택은 활성(Active), 비활성(Inactive), 비활성 초기화(InactiveClear), 완료(Complete), 비활성화됨(Disabled), 숫자(Num) 입니다. |
System.ExecutionStateSource | 시스템 실행 상태 세팅의 소스를 보여줍니다. 엔진 퀄리티가 상태를 변경할 수 있게 해주지만, 해당 상태가 더 높은 우선순위로 정의되지 않은 경우에만 사용됩니다. |
새 파라미터 생성
새 파라미터 생성 을 선택하면 나열된 파라미터 목록에서 선택하게 됩니다. 파라미터 설정(Set Parameter) 모듈을 이미터 업데이트 그룹에 추가합니다.
파라미터 | 타입 | 설명 |
---|---|---|
오디오 오실로스코프(Audio Oscilloscope) | 데이터 인터페이스 | 이미터에 새로운 오디오 오실로스코프 데이터 인터페이스 모듈을 추가합니다. 오디오 오실로스코프 모듈은 오디오 신호의 웨이브폼 데이터에 직접 액세스할 수 있습니다. |
오디오 스펙트럼(Audio Spectrum) | 데이터 인터페이스 | 이미터에 새로운 오디오 스펙트럼 데이터 인터페이스 모듈을 추가합니다. 오디오 스펙트럼 모듈은 특정 주파수에서의 오디오 음량을 기반으로 시각화를 구동할 수 있습니다. |
부울(Bool) | 프리미티브 | True/False 체크박스가 있는 '변수 설정(Set Variable)' 모듈을 추가합니다. |
카메라 쿼리(Camera Query) | 데이터 인터페이스 | 이미터에 새 카메라 쿼리 데이터 인터페이스 모듈을 추가합니다. 이 데이터 인터페이스는 특정 컨트롤러 인덱스에 대한 카메라 정보 (카메라 위치, 회전, FOV 등)를 얻는 데 사용할 수 있습니다. |
콜리전 쿼리(Collision Query) | 데이터 인터페이스 | 이미터 스택에 콜리전 데이터 인터페이스를 추가합니다. 보통 콜리전 모듈과 조합하여 사용됩니다. |
컬 노이즈(Curl Noise) | 데이터 인터페이스 | 이미터 스택에 컬 노이즈 데이터 인터페이스를 추가합니다. 컬 노이즈 포스 모듈과 함께 사용할 경우, 이 데이터 인터페이스는 시뮬레이션에 다른 타입의 노이즈를 주입합니다. |
컬러 커브 (Curve for Colors) | 데이터 인터페이스 | 시뮬레이션에 4채널 컬러 커브 데이터 인터페이스를 추가합니다. 이 커브는 동적 입력이나 다른 모듈에 의해 샘플링되어 시간에 따라 다양한 컬러를 생성할 수 있습니다. |
플로트 커브(Curve for Floats) | 데이터 인터페이스 | 시뮬레이션에 단일 채널 커브 데이터 인터페이스를 추가합니다. 이 커브는 동적 입력이나 다른 모듈에 의해 샘플링되어 시간에 따라 다양한 플로트 값을 생성할 수 있습니다. |
벡터 2D 커브(Curve for Vector 2Ds) | 데이터 인터페이스 | 시뮬레이션에 2채널 커브 데이터 인터페이스를 추가합니다. 이 커브는 동적 입력이나 기타 모듈을 통해 샘플링하여 시간 변동에 따른 플로트 쌍을 생성할 수 있습니다. |
벡터 3 커브(Curve for Vector 3s) | 데이터 인터페이스 | 시뮬레이션에 3채널 커브 데이터 인터페이스를 추가합니다. 이 커브는 동적 입력이나 다른 모듈에 의해 샘플링되어 시간에 따라 다양한 플로트 세트를 생성할 수 있습니다. |
벡터 4 커브(Curve for Vector 4s) | 데이터 인터페이스 | 시뮬레이션에 4채널 커브 데이터 인터페이스를 추가합니다. 이 커브는 동적 입력이나 다른 모듈에 의해 샘플링되어 시간에 따라 다양한 플로트 세트를 생성할 수 있습니다. |
ENiagaraBooleanLogicOps | 열거형 | 다양한 모듈 및 동적 입력에 의해 사용되는 열거형으로서 다음과 같은 부울 로직을 사용하여 테스트합니다.
|
ENiagaraCoordinateSpace | 열거형 | 다양한 모듈 및 동적 입력에 의해 사용되는 열거형으로서 좌표 공간을 서로 구별합니다.
|
ENiagaraExecutionState | 열거형 | Emitter.ExecutionState 나 System.ExecutionState 같이 시스템을 관리하거나 이미터 실행 상태를 관리하는 파라미터에 의해 사용되는 열거형입니다. |
ENiagaraExecutionStateSource | 열거형 | 실행 상태 세팅의 소스를 보여줍니다. 엔진 퀄리티가 상태를 변경할 수 있게 해주지만, 해당 상태가 더 높은 우선순위로 정의되지 않은 경우에만 사용됩니다. |
ENiagara ExpansionMode | 열거형 | 위치 모듈에서 사용되는 열거형으로서 다음과 같은 확장의 원점을 확인합니다.
|
ENiagaraOrientationAxis | 열거형 | 다양한 모듈에서 사용되는 열거형으로서 다음을 사용하여 계산할 축을 결정합니다.
|
ENiagaraRandomnessMode | 열거형 | 이 이미터에서 사용되는 랜덤 숫자 생성 타입을 설정합니다. 유효한 선택은 다음과 같습니다.
|
플로트(Float) | 프리미티브 | 플로트 값 변수를 생성합니다. |
그리드 2D 컬렉션(Grid2D Collection) | 데이터 인터페이스 | 시뮬레이션 단계에서 사용됩니다. 사용자가 데이터의 2D 배열을 읽거나 쓴 후 시뮬레이션 단계에서 그리드의 각 픽셀을 반복작업할 수 있게 해 줍니다. |
Int32 | 프리미티브 | 인티저 값 변수를 생성합니다. |
선형 컬러(Linear Color) | 프리미티브 | 색 선택 툴로 표시되는 RGBA 컬러 변수를 생성합니다. |
매트릭스(Matrix) | 프리미티브 | 4x4 매트릭스 변수를 생성합니다. |
메시 트라이앵글 좌표(Mesh Tri Coordinate) | 구조체 | 트라이앵글 인덱스와 함께 해당 트라이앵글 페이스의 중심 좌표를 포함하는 단순한 구조체입니다. |
이웃 그리드 3D(Neighbor Grid 3D) | 데이터 인터페이스 | 시뮬레이션 단계에서 사용됩니다. 사용자가 데이터의 3D 배열을 읽거나 쓰고, 시뮬레이션 단계에서 볼륨의 각 픽셀에 반복작업할 수 있도록 해 줍니다. |
나이아가라 ID(Niagara ID) | 구조체 | 파티클 트래킹에 사용되는 구조체로서 두 부분으로 구성됩니다. 이 파티클의 인디렉션 테이블 인덱스입니다. 이 파티클의 데이터에 빠르게 액세스할 수 있게 해 줍니다. 현재 살아있는 파티클에서는 항상 고유하지만, 파티클이 소멸한 후에는 재사용됩니다. AcquireTag 는 해당 ID의 획득 시간을 나타내는 고유 태그입니다. 이를 통해 특정 파티클이 소멸하고 다른 파티클이 소멸한 파티클의 인덱스를 재사용할 때 각 파티클을 구별할 수 있습니다. |
오클루전 쿼리(Occlusion Query) | 데이터 인터페이스 | 이미터에 새 오클루전 쿼리 데이터 인터페이스 모듈을 추가합니다. 이 데이터 인터페이스는 뎁스 버퍼 오클루전 정보를 읽는 데 사용됩니다. |
파티클 어트리뷰트 리더(Particle Attribute Reader) | 데이터 인터페이스 | 이미터에 새 파티클 어트리뷰트 리더 데이터 인터페이스를 추가합니다. 이 데이터 인터페이스는 다른 이미터의 파티클 페이로드 값을 쿼리하는 데 사용할 수 있으며, 일부의 경우에는 이벤트를 사용하는 것보다 더 쉬울 수 있습니다. |
쿼트(Quat) | 프리미티브 | 회전을 나타내는 데 사용되는 쿼터니언 변수를 생성합니다. |
심플 카운터(Simple Counter) | 데이터 인터페이스 | 이미터에 새 단순 카운터 데이터 인터페이스 모듈을 추가합니다. 이 데이터 인터페이스를 사용하여 스레드 세이프 카운터를 증가시킬 수 있습니다. |
스켈레탈 메시(Skeletal Mesh) | 데이터 인터페이스 | 스켈레탈 메시의 본이나 소켓과 스킨을 입힌 지오메트리와 인터랙션할 수 있는 함수가 포함된 데이터 인터페이스입니다. |
스폰 정보(Spawn Info) | 구조체 | 생성할 파티클의 수(Count) 를 지정하는 스폰에 사용되는 구조체로서 InterpStartDt 나 현재 프레임의 오프셋은 스폰 시간을 시작하고, IntervalDt 는 각 파티클이 스폰되는 시간차를 정의하며, SpawnGroup 은 스폰된 파티클이 각각 다른 카테고리에 속할 수 있도록 합니다. |
스플라인(Spline) | 데이터 인터페이스 | 스플라인 에셋과 인터랙션하는 데이터 인터페이스입니다. |
스태틱 메시(Static Mesh) | 데이터 인터페이스 | 스태틱 메시의 표면과 인터랙션할 수 있는 함수가 포함된 데이터 인터페이스입니다. |
텍스처 샘플(Texture Sample) | 데이터 인터페이스 | GPU의 텍스처와 인터랙션할 수 있는 함수가 포함된 데이터 인터페이스입니다. |
벡터(Vector) | 프리미티브 | 플로트 3채널 세트를 생성합니다. |
벡터 2D(Vector 2D) | 프리미티브 | 플로트 2채널 세트를 생성합니다. |
벡터 4(Vector 4) | 프리미티브 | 플로트 4채널 세트를 생성합니다. |
벡터 필드(Vector Field) | 데이터 인터페이스 | 벡터 필드를 쿼리할 수 있는 함수가 포함된 데이터 인터페이스입니다. |
볼륨 텍스처 샘플(Volume Texture Sample) | 데이터 인터페이스 | 이미터에 신규 볼륨 텍스처 데이터 인터페이스 모듈을 추가합니다. 이를 사용하여 볼륨 텍스처를 샘플링할 수 있습니다. |