이미터 업데이트 그룹

이 문서에서는 나이아가라 이미터의 이미터 업데이트 모듈에 대한 레퍼런스 정보를 제공합니다.

Choose your operating system:

Windows

macOS

Linux

이미터 업데이트(Emitter Update) 모듈은 CPU에서 이미터 틱이 발생할 때마다 발생합니다. 이 그룹의 모듈은 해당 프레임에서 파티클 스폰이나 업데이트 파라미터 값을 계산해야 합니다. 모듈은 스택의 위에서 아래 순서로 실행됩니다.

이 문서에는 이미터 업데이트 그룹의 각 모듈 유형별 섹션이 준비되어 있으며, 해당 모듈 유형에서 사용할 수 있는 디폴트 옵션의 목록과 설명을 포함한 표도 준비되어 있습니다. 나이아가라 이미터의 모든 부분에 대해 커스텀 모듈을 생성할 수 있습니다. 여기에 나열된 모듈은 언리얼 엔진 4에 자동으로 포함되어 있는 모듈로 한정됩니다.

빔 모듈

모듈

설명

빔 이미터 구성(Beam Emitter Setup)

이 모듈은 빔 이미터의 시작점, 끝점, 탄젠트를 구성 및 관리합니다.

카오스 모듈

모듈

설명

카오스에서 스폰(Spawn from Chaos)

이 모듈은 파티클이 카오스 이벤트에 반응하여 스폰되도록 합니다.

이미터 상태

파라미터

설명

라이프 사이클 모드(Life Cycle Mode)

이 세팅은 라이프 사이클(루핑, 수명 및 사망)을 이미터 자체에서 관리할지 아니면 이미터를 소유한 시스템에서 관리할지 결정합니다. 다음과 같은 세팅이 있습니다.

  • 시스템(System): 이 옵션을 선택하면 소유 시스템이 모든 라이프 사이클 함수를 계산합니다. 대부분의 경우 시스템에서 라이프 사이클을 계산하게 하면 최적화 수준이 높아집니다. 이 옵션을 선택하면 다른 영역이 숨겨집니다.

  • 셀프(Self): 이 옵션을 선택하면 이미터가 모든 라이프 사이클 함수를 계산합니다. 이 옵션을 선택하면 아래와 같은 다른 세팅을 사용할 수 있게 됩니다.

비활성 반응(Inactive Response)

이 세팅은 이미터가 비활성 상태에 진입했을 때 어떤 일이 발생할지 결정합니다. 비활성이란 이미터가 휴면 상태에 들어가 더 이상 파티클을 스폰하거나 관리하지 못하는 상태를 말합니다. 다음과 같은 옵션이 있습니다.

  • 완료(Complete): 파티클이 완료된 다음 이미터가 소멸됩니다.

  • 소멸(Kill): 이미터와 파티클이 둘 다 즉시 소멸됩니다.

  • 계속(Continue): 이미터는 비활성화되지만 시스템이 소멸하기 전까지는 소멸하지 않습니다.

루프 비헤이비어(Loop Behavior)

이미터의 비헤이비어를 결정합니다. 다음 중에서 선택할 수 있습니다.

  • 한 번(Once): 애니메이션을 한 번만 재생합니다.

  • 여러 번(Multiple): 이미터가 지정된 횟수만큼 애니메이션을 재생합니다.

  • 무한(Infinite): 이미터가 애니메이션을 계속 재생합니다.

루프 경과시간(Loop Duration)

루프를 얼마나 지속할지 결정합니다.

루프 경과시간 모드(Loop Duration Mode)

루프의 유한 또는 무한 여부를 결정합니다.

루프 딜레이(Loop Delay)

지정한 시간만큼 다음 루프를 지연하는 세팅입니다.

엔진 퀄리티

엔진 퀄리티 모드(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

이미터의 상태에 영향을 줍니다. 다음의 유효한 값을 선택할 수 있습니다.

  • 활성(Active)

  • 비활성(Inactive)

  • 비활성 초기화(InactiveClear)

  • 완료(Complete)

Emitter.ExecutionStateSource

실행 상태 세팅의 소스를 보여줍니다. 엔진 퀄리티가 상태를 변경할 수 있게 해주지만, 해당 상태가 더 높은 우선 순위로 정의되지 않은 경우에만 사용됩니다.

Emitter.LocalSpace

파티클의 위치 기준이 월드 원점인지, 자체 나이아가라 컴포넌트인지 정의합니다.

  • False: 파티클 위치는 WorldSpace 내부이며, 월드 원점을 기준으로 합니다. 0,0,0 위치의 파티클은 월드 원점에 렌더링됩니다.

  • True: 파티클 위치는 LocalSpace 내부이며, 자체 나이아가라 컴포넌트의 위치를 기준으로 합니다. 0,0,0 위치의 파티클은 자체 나이아가라 컴포넌트의 위치에 렌더링됩니다.

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

시스템 실행 상태 세팅의 소스를 보여줍니다. 엔진 퀄리티가 상태를 변경할 수 있게 해주지만, 해당 상태가 더 높은 우선 순위로 정의되지 않은 경우에만 사용됩니다.

새 파라미터 생성

새 파라미터 생성(Create New Parameter) 을 선택하면 나열된 파라미터 목록에서 선택하게 됩니다. 파라미터 설정(Set Parameter) 모듈을 이미터 업데이트 그룹에 추가합니다.

파라미터

유형

설명

오디오 오실로스코프(Audio Oscilloscope)

데이터 인터페이스

이미터에 새로운 오디오 오실로스코프 데이터 인터페이스 모듈을 추가합니다. 오디오 오실로스코프 모듈은 오디오 신호의 웨이브폼 데이터에 직접 액세스할 수 있습니다.

오디오 스펙트럼(Audio Spectrum)

데이터 인터페이스

이미터에 새로운 오디오 스펙트럼 데이터 인터페이스 모듈을 추가합니다. 오디오 스펙트럼 모듈은 특정 주파수에서의 오디오 음량을 기반으로 시각화를 구동할 수 있습니다.

부울(Bool)

프리미티브

True/False 체크박스가 있는 변수 설정 모듈을 추가합니다.

카메라 쿼리(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

열거형

다양한 모듈 및 동적 입력에 의해 사용되는 열거형으로서 다음과 같은 부울 로직을 사용하여 테스트합니다.

  • 보다 큼(Greater Than)

  • 보다 크거나 같음(Greater Than Or Equal To)

  • 같음(Equal To)

  • 같지 않음(Not Equal To)

ENiagaraCoordinateSpace

열거형

다양한 모듈 및 동적 입력에 의해 사용되는 열거형으로서 좌표 공간을 서로 구별합니다.

  • 시뮬레이션(Simulation): 이미터가 로컬로 설정되어 있는 경우 로컬을 사용합니다. 그렇지 않은 경우에는 월드를 사용합니다.

  • 월드(World): 게임의 월드 스페이스입니다.

  • 로컬(Local): 자체 컴포넌트의 좌표 공간입니다.

ENiagaraExecutionState

열거형

Emitter.ExecutionStateSystem.ExecutionState 같이 시스템을 관리하거나 이미터 실행 상태를 관리하는 파라미터에 의해 사용되는 열거형입니다.

ENiagaraExecutionStateSource

열거형

실행 상태 세팅의 소스를 보여줍니다. 엔진 퀄리티가 상태를 변경할 수 있게 해주지만, 해당 상태가 더 높은 우선 순위로 정의되지 않은 경우에만 사용됩니다.

ENiagara ExpansionMode

열거형

위치 모듈에서 사용되는 열거형으로서 다음과 같은 확장의 원점을 확인합니다.

  • 내부(Inside)

  • 중앙(Centered)

  • 외부(Outside)

ENiagaraOrientationAxis

열거형

다양한 모듈에서 사용되는 열거형으로서 다음을 사용하여 계산할 축을 결정합니다.

  • X축(X Axis)

  • Y축(Y Axis)

  • Z축(Z Axis)

ENiagaraRandomnessMode

열거형

이 이미터에서 사용되는 랜덤 숫자 생성 유형을 설정합니다. 유효한 선택은 다음과 같습니다.

  • 시뮬레이션 디폴트(Simulation Defaults)

  • 결정론적(Deterministic)

  • 비결정론적(Non-Deterministic)

플로트(Float)

프리미티브

플로트 값 변수를 생성합니다.

그리드 2D 컬렉션(Grid2D Collection)

데이터 인터페이스

시뮬레이션 단계에서 사용됩니다. 사용자가 데이터의 2D 배열을 읽거나 쓴 후 시뮬레이션 단계에서 그리드의 각 픽셀을 반복작업할 수 있게 해줍니다.

Int32

프리미티브

인티저 값 변수를 생성합니다.

선형 컬러(Linear Color)

프리미티브

색 선택 툴로 표시되는 RGBA 컬러 변수를 생성합니다.

매트릭스(Matrix)

프리미티브

4x4 매트릭스 변수를 생성합니다.

메시 트라이앵글 좌표(Mesh Tri Coordinate)

구조체(Struct)

트라이앵글 인덱스와 함께 해당 삼각형 면의 중심 좌표를 포함하는 단순한 구조체입니다.

이웃 그리드 3D(Neighbor Grid 3D)

데이터 인터페이스

시뮬레이션 단계에서 사용됩니다. 사용자가 데이터의 3D 배열을 읽거나 쓰고, 시뮬레이션 단계에서 볼륨의 각 픽셀에 반복처리할 수 있도록 해줍니다.

나이아가라 ID(Niagara ID)

구조체(Struct)

파티클 트래킹에 쓰이는 구조체로서 두 부분으로 구성됩니다. 이 파티클의 인디렉션 테이블 인덱스입니다. 이 파티클의 데이터에 빠르게 액세스할 수 있게 해줍니다. 현재 살아있는 파티클에서는 항상 고유하지만, 파티클이 소멸한 후에는 재사용됩니다. AcquireTag 는 해당 ID의 획득 시간을 나타내는 고유 태그입니다. 이를 통해 특정 파티클이 소멸하고 다른 파티클이 소멸한 파티클의 인덱스를 재사용할 때 각 파티클을 구별할 수 있습니다.

오클루전 쿼리(Occlusion Query)

데이터 인터페이스

이미터에 새 오클루전 쿼리 데이터 인터페이스 모듈을 추가합니다. 이 데이터 인터페이스는 뎁스 버퍼 오클루전 정보를 읽는 데 사용됩니다.

GPU 이미터와만 사용할 수 있습니다.

파티클 어트리뷰트 리더(Particle Attribute Reader)

데이터 인터페이스

이미터에 새 파티클 어트리뷰트 리더 데이터 인터페이스를 추가합니다. 이 데이터 인터페이스는 다른 이미터의 파티클 페이로드 값을 쿼리하는 데 사용할 수 있으며, 일부의 경우에는 이벤트를 사용하는 것보다 더 쉬울 수 있습니다.

쿼트(Quat)

프리미티브

회전을 나타내는 데 사용되는 쿼터니언 변수를 생성합니다.

심플 카운터(Simple Counter)

데이터 인터페이스

이미터에 새 단순 카운터 데이터 인터페이스 모듈을 추가합니다. 이 데이터 인터페이스를 사용하여 스레드 세이프 카운터를 증가시킬 수 있습니다.

CPU 이미터와만 사용할 수 있습니다.

스켈레탈 메시(Skeletal Mesh)

데이터 인터페이스

스켈레탈 메시의 본이나 소켓과 스킨을 입힌 지오메트리와 인터랙션할 수 있는 함수가 포함된 데이터 인터페이스입니다.

스폰 정보(Spawn Info)

구조체(Struct)

생성할 파티클의 수(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)

데이터 인터페이스

이미터에 새 볼륨 텍스처 데이터 인터페이스 모듈을 추가합니다. 이를 사용하여 볼륨 텍스처를 샘플링할 수 있습니다.