-
Niagara Namespace 종류와 활용도쓰리디/Unreal, 언리얼 2025. 2. 8. 14:41반응형
Niagara활용 시에도 중요하지만
특히나
Niagara Module Scratch Pad에서 더욱 중요한!
Name Space를 알아봅시다.
Niagara, NameSpace
어떤 Scratch Pad를 작성 한 이후, 어떤 이유에선지 실행이 되지 않는다구요?
그렇다면 이 사항! 한번 확인해 보세요!
Namespace에 대해서 알아보려 합니다.Niagara NameSpace 개요
Niagara에서는 변수를 구분하기 위해 여러 개의 네임스페이스(Namespace)를 제공하는데,
각 네임스페이스는 어느 단계(Stage)에서 데이터를 설정하고 읽을 수 있는지를 정합니다.NameSpace 종류 Namespace설정(Stage) 읽기 가능(Stage) 특징
NameSpace Stage Read/Write 특징 System System Stage 모든 Stage에서 읽기 쓰기 가능 Niagara System 전체에 공유되는 변수 Emitter Emitter Stage Emitter, Particle Stage
읽기 전용같은 Emitter 안에서 공유되는 변수 Particles Particle Stage Particle Stage에서만 읽기 전용 각 개별 Particle 마다 다른 값 Output 모든 Stage 가능 해당 변수 이후의 모든 Stage
쓰기후 읽기 가능- 이후 모듈에서 사용할 변수
- Stage 범위에는 없지만 Module 내부에서 사용 가능Transient 모든 Stage 가능 이후의 Stage에서 읽기 / 쓰기 가능 - 임시 저장용 (다음 프레임에 사라짐)
- 한 모듈 내에서만 사용 가능StackContext 모든 Stage 가능 모든 Stage에서 읽기/쓰기 가능 모든 곳에서 공유 가능 + Stage를 넘어도 유지됨 Namespace 각각의 종류 및 특성
1. System Namespace
- System에서 설정된 변수는 모든 Emitter, Particle에서 읽을 수 있다.
- EX) System.Age- Niagara System이 실행된 이후의 경과된 시간
- Emitter, Particle 등 어디든 읽을 수 있다.
- 활용 사례
- Niagara 전체적인 Control값 저장.
- Niagara System 전체의 Speed, Gravityu, Global Position
2. Emitter Namespace
- 같은 Emitter 내에서만 공유 가능.
- Emitter에서 설정된 값은 Particle에서도 읽을 수 있다.- EX) Emitter.Age
- 해당 Emitter 실행된 이후의 경과된 시간
- 해당 Emitter안에있는 Particle stage에서도 읽을 수 있음
- 활용 사례
- 특정 Emitter 내에서만 영향을 주는 값( Vel, Color 변경 등)
- Leader Particle을 따라가는 다른 Follow Particle에 활용
* Emitter에서 값을 저장하고, particle에서 읽을 수는 있지만, 반대는 불가능!
* 다른 Emitter에서는 이 값들을 읽을 수 없다!
3. Particle Namespace
- 각 Particle마다 개별적으로 값을 가짐.
- Particle Update, Particle Spawn에서만 값을 설정 가능- EX) Particles.Age
- 각각의 Particle이 생성된 이후의 경과된 시간
- 활용 사례
- Particle 각각의 Vel, Position, Rotation 등의 Data.
- Particle별, 다른 Vel, Attribute를 설정하고 싶을 때
* 다른 Stage에서는 Particle Variable을 설정할 수 없다!
* Emitter나 System에 있는 변수는 Particle Stage에서 읽을 수 있지만, 반대는 불가!
4. Output Namespace
- 이전에 설정한 값을 이후 Stage에 사용 가능 하도록 이용되는 Namespace
- EX) Output.Color- 현재 Stage에서 Color 값을 설정, 다음 Stage에서 이 값을 사용 가능.
- 활용 사례
- 여러 Module에서 같은 변수를 공유시
* Output 변수는 Stage 간 유지되지는 않음!
=> Particle에서 설정한 Output변수는 다음 프레임에서 사라질 수 있다!5. Transient Namespace
- 일시적(Temp) Data 저장소
- 다음 Frame이 되면 사라진다( Stage간 유지 x)- 활용 사례
- 임시로 특정 계산 값을 저장 시 활용
- Particle Update에서 TemporarySpeed 변수를 설정하고, 그 값을 바로 다음 모듈에서만 사용
* Transient 변수는 다음 Frame에서 유지되지 않는다!
6. StackContext Namespace
- 모든 Stage에서 읽을 수 있다
- Stage를 넘어서도 값이 유지됨!- 활용 사례
- Emitter와 Particle 사이에서 데이터를 공유할 때
- 현재 Loop상태, Random값 저장 등
- 다른 곳에서 동일한 변수를 사용해야 할 때 유용!
* Namespace 중 활용도, 가장 높은 variable 저장소!
=> Stage를 넘어서도 값이 유지되는 유일한 Namespace!
마무리
NameSpace 종류 System: 시스템 전체에서 공유 가능
Emitter: 같은 Emitter 안에서만 공유 가능
Particles: 개별 Particle마다 다른 값
Output: 이후 Stage에서만 사용 가능
Transient: 임시 값 (다음 프레임에서 사라짐)
StackContext: 모든 곳에서 사용 가능 + Stage를 넘어도 값 유지!
남만 알고 있는 쓰리디에 대한 정보를
속이 쓰리지 않게,
소기쓰리디반응형'쓰리디 > Unreal, 언리얼' 카테고리의 다른 글
UE5 Material, Transform Vector 활용 예시 - (Tangent Space to World Space) (0) 2025.02.14 Niagara Namespace01 - System Emitter Particles (0) 2025.02.05 Mixamo to Unreal Animation (for Mannequins) (0) 2025.01.12 Unreal Auto Exposure 좀 꺼줘라.. (0) 2024.09.12 Unreal Engine HLSL기초 Custom Material? (0) 2024.09.07