커스텀 머티리얼과의 통합
이전 절에서 우리는 Sprite Renderer
와 기본적인 파티클 머티리얼 설정에 대해 알아보았습니다. 이제 나이아가라 시스템의 렌더링 파이프라인에서 가장 강력한 기능 중 하나인 커스텀 머티리얼과의 통합에 대해 자세히 살펴보겠습니다. 단순히 색상과 텍스처를 입히는 것을 넘어, 나이아가라 시스템에서 계산된 복잡한 데이터를 머티리얼로 직접 전달하여 파티클의 시각적인 표현을 훨씬 더 풍부하고 동적으로 만드는 방법을 배우게 될 것입니다.
이 기능은 파티클이 단순한 2D 스프라이트를 넘어, 빛에 반응하거나, 특수 셰이더 효과를 적용받거나, 주변 환경에 따라 다르게 렌더링되는 등 여러분의 상상력을 현실로 만들 수 있는 핵심적인 도구입니다.
왜 커스텀 머티리얼과 통합해야 할까요?
기본적인 Particle Color
노드만으로는 파티클의 색상과 알파값만 제어할 수 있습니다. 하지만 나이아가라 시스템은 파티클마다 수많은 속성(예: Velocity
, SpriteSize
, RandomSeed
, CustomFloat
, CustomVector
)을 가지고 있습니다. 커스텀 머티리얼과의 통합은 이러한 파티클 개별의 동적인 데이터를 머티리얼 그래프로 가져와서, 파티클의 렌더링 결과에 직접 영향을 미치게 하는 것을 의미합니다.
이를 통해 다음과 같은 고급 렌더링 기법을 구현할 수 있습니다.
- 속도에 따른 밝기/색상 변화: 파티클의 속도 크기에 비례하여 발광 강도를 조절하거나 색상을 변경합니다.
- 충돌 지점의 특수 효과: 파티클이 충돌한 지점의 UV 좌표나 노멀 정보를 머티리얼로 전달하여 충돌 이펙트를 섬세하게 제어합니다.
- 임의의 데이터 전달: 나이아가라 스크립트에서 계산된 사용자 정의
Float
나Vector
값을 머티리얼로 전달하여, 셰이더 내부의 복잡한 논리(예: 특정 임계값을 넘으면 다른 텍스처 사용)를 구동합니다. - 노이즈나 패턴 조절: 파티클마다 다른 노이즈 시드(Seed) 값을 머티리얼로 전달하여 각 파티클의 텍스처 패턴을 미묘하게 다르게 만듭니다.
커스텀 머티리얼 통합의 핵심: Niagara Particle Attribute
노드
커스텀 머티리얼에서 나이아가라 파티클의 속성을 가져오는 가장 중요한 노드는 바로 Niagara Particle Attribute
노드입니다. 이 노드는 나이아가라 파티클 시스템의 특정 매개변수(Parameter) 값을 머티리얼 그래프로 가져오는 역할을 합니다.
Niagara Particle Attribute
노드
- 머티리얼 에디터 열기: 나이아가라 시스템에 할당된 머티리얼을 더블 클릭하여 머티리얼 에디터를 엽니다.
- 노드 추가: 머티리얼 그래프의 빈 공간에 마우스 우클릭하고
Niagara Particle Attribute
를 검색하여 추가합니다. - 매개변수 선택: 추가된
Niagara Particle Attribute
노드를 선택합니다. 디테일(Details) 패널에서Parameter Name
속성을 찾습니다. Parameter Name
드롭다운 메뉴를 클릭하거나 직접 입력하여, 가져오고 싶은 나이아가라 파티클 속성 매개변수의 정확한 이름을 입력합니다.- 예시
Particles.Velocity
(파티클의 속도 벡터)Particles.SpriteSize
(파티클의 스프라이트 크기 벡터)Particles.NormalizedAge
(파티클의 정규화된 수명)Particles.Lifetime
(파티클의 총 수명)Particles.Position
(파티클의 월드 위치)- 사용자 정의 매개변수: 나이아가라 스크립트에서
Set New or Existing Parameter
노드를 통해 정의한Particles.MyCustomFloat
나Particles.MyCustomVector
와 같은 사용자 정의 속성도 가져올 수 있습니다.
- 예시
- 출력 연결:
Niagara Particle Attribute
노드는 선택된 매개변수의 값을 출력 핀으로 내보냅니다. 이 출력 핀을 머티리얼 그래프 내의 다른 연산 노드나 머티리얼의 입력(예:Emissive Color
,Roughness
)에 연결하여 시각적인 효과를 만듭니다.
실제 예시: 파티클 속도에 따른 발광 강도 조절
파티클의 속도가 빠를수록 더 밝게 빛나도록 만들어 보겠습니다.
나이아가라 시스템 설정
- 이전에 만든
NS_BasicSpawn
시스템을 엽니다. - 이미터에
Spawn Rate
(값: 100 정도),Initialize Particle
(Lifetime: 1.02.0, Sprite Size: 50 정도),500 정도),Add Velocity
(Z: 200Solve Forces and Velocity
모듈이 있는지 확인합니다. Particle Update
섹션에Add Velocity
가 파티클을 위로 솟아오르게 하고 있는지 확인합니다.Initialize Particle
모듈에서Color
를 흰색 (R:1, G:1, B:1, A:1)으로 설정합니다. (Scale Color
모듈이 있다면 잠시 비활성화하거나 제거합니다.)
커스텀 머티리얼 생성 및 설정
-
콘텐츠 브라우저에서 새 머티리얼을 만들고
M_VelocityGlow
와 같이 이름을 지정합니다. 더블 클릭하여 머티리얼 에디터를 엽니다. -
Details
패널에서Blend Mode
를Additive
로,Shading Model
을Unlit
으로 설정합니다. -
머티리얼 그래프에 다음 노드를 추가합니다.
Particle Color
노드 (파티클의 기본 색상 및 알파를 가져옴)Niagara Particle Attribute
노드 (이름:Particles.Velocity
)Vector Length
노드 (Vector Velocity의 길이를 계산하여 속도 크기를 얻음)Multiply
(Float * Float) 노드 (속도 크기에 곱하여 발광 강도를 조절)Multiply
(Vector * Float) 노드 (Particle Color
의RGB
에 발광 강도를 곱함)
-
노드 연결
Particle Color
의Alpha
출력을 머티리얼의Opacity
입력에 연결합니다.Niagara Particle Attribute
(Particles.Velocity
)의 출력을Vector Length
노드의 입력에 연결합니다.Vector Length
의 출력을 첫 번째Multiply (Float)
노드의 입력에 연결합니다. 이Multiply
노드의 두 번째 입력에는0.01
과 같은 작은 상수를 입력하여 발광 강도를 조절합니다. (속도 값이 클 수 있으므로 작은 값으로 스케일링)Particle Color
의RGB
출력을 두 번째Multiply (Vector)
노드의 첫 번째 입력에 연결합니다.- 첫 번째
Multiply (Float)
노드의 출력을 두 번째Multiply (Vector)
노드의 두 번째 입력(Float)에 연결합니다. - 두 번째
Multiply (Vector)
노드의 출력을 머티리얼의Emissive Color
입력에 연결합니다.
-
머티리얼을 저장합니다.
나이아가라 시스템에 머티리얼 적용
NS_BasicSpawn
나이아가라 시스템으로 돌아갑니다.Sprite Renderer
모듈을 선택하고Material
속성에 새로 만든M_VelocityGlow
머티리얼을 할당합니다.
이제 파티클이 위로 솟아오르면서, 속도가 빠를수록 (특히 생성 직후) 더 밝게 빛나고, 정점에 가까워져 속도가 줄어들면 어두워지는 것을 확인할 수 있을 겁니다.
고급 활용 및 고려 사항
- 사용자 정의 파티클 속성: 나이아가라 스크립트에서
Set New or Existing Parameter
노드를 통해Particles.MyCustomFloat
와 같은 사용자 정의 속성을 생성한 후, 이 이름을Niagara Particle Attribute
노드에 정확히 입력하여 머티리얼에서 가져올 수 있습니다. - 데이터 타입 일치:
Niagara Particle Attribute
노드에서 가져오는 매개변수의 데이터 타입(Float, Vector, Color 등)과 머티리얼에서 사용하는 데이터 타입이 일치해야 합니다. - 성능: 머티리얼 그래프가 복잡해지면 렌더링 성능에 영향을 줄 수 있습니다. 필요한 만큼만 복잡도를 유지하고, 최적화 기법(예: 불필요한 연산 피하기, 텍스처 압축 등)을 적용하세요.
- 버전 호환성: 언리얼 엔진 버전이 업데이트되면서
Niagara Particle Attribute
노드의 이름이나 사용법이 미묘하게 변경될 수 있으므로, 항상 최신 문서를 참조하는 것이 좋습니다.
커스텀 머티리얼과의 통합은 나이아가라 파티클 효과의 시각적인 품질을 비약적으로 향상시킬 수 있는 강력한 기능입니다. 나이아가라 스크립트에서 계산된 데이터를 머티리얼로 보내 파티클의 외형을 동적으로 조절함으로써, 여러분은 단순한 시뮬레이션을 넘어선 예술적인 시각 효과를 창조할 수 있을 것입니다.