PART 3 · 강의 3/3

Light & Component 렌더러

동적 라이트 이펙트와 임의의 UE 컴포넌트를 파티클로 제어하는 고급 렌더러를 학습합니다.

01

Light Renderer

파티클 위치에 동적 포인트 라이트 생성

Light Renderer는 각 파티클의 위치에 동적 포인트 라이트를 생성합니다. 불꽃, 마법, 반딧불이 등 빛을 내는 이펙트에 시각적 완성도를 크게 높여줍니다.

파라미터 바인딩 설명
Radius Scale float 라이트 반경 스케일. Particles.SpriteSize나 커스텀 값에 바인딩.
Color Add Vector (RGB) 라이트 색상에 추가되는 값. X=Red, Y=Green, Z=Blue.
Use Inverse Squared Falloff bool 물리 기반 감쇠. true면 더 현실적이지만 비용 증가.
Affects Translucency bool 반투명 머티리얼에 영향. 비용이 높으므로 주의.
Alpha Scale for Radius bool Color의 Alpha를 Radius 스케일에 사용.
불꽃 이펙트 Light Renderer 설정
Fire Emitter - Render Group Sprite Renderer // 시각적 불꽃 표현 Light Renderer // 주변 조명 효과 { Radius Scale: 3.0 Color Add: (1.0, 0.6, 0.1) // 따뜻한 주황 빛 Use Inverse Squared Falloff: true Affects Translucency: false // 성능 절약 // Attribute Bindings Light Rendering Enabled: Particles.LightEnabled Radius Binding: Particles.LightRadius Color Binding: Particles.Color } // Particle Update에서 라이트 강도 조절 Set (Particles.LightRadius) = Float from Curve // NormalizedAge 기반 // 0.0 → 0.0 (시작 시 어두움) // 0.1 → 200.0 (빠르게 밝아짐) // 1.0 → 0.0 (서서히 꺼짐)
Light Renderer 성능 경고

Light Renderer는 비용이 매우 높습니다. 각 라이트는 씬에 별도의 포인트 라이트를 추가합니다. 모범 사례: 파티클 수를 소수(1~5개)로 제한하고, Renderer Visibility 바인딩으로 가장 밝은 파티클만 라이트를 생성하도록 하세요.

02

Component Renderer

임의의 UE 컴포넌트를 파티클로 스폰

Component Renderer는 파티클 위치에 임의의 Unreal Engine 컴포넌트(Static Mesh, Skeletal Mesh, Audio, Decal 등)를 스폰합니다. 가장 유연하지만 가장 비용이 높은 렌더러입니다.

파라미터 설명
Component Type 스폰할 컴포넌트 클래스 (UStaticMeshComponent, UAudioComponent 등)
Component Property Bindings 컴포넌트의 프로퍼티를 파티클 Attribute에 바인딩
Enable Pooling 컴포넌트 풀링으로 생성/소멸 비용 감소
Audio Component Renderer 예시
Impact Emitter - 충격 이펙트 Render Group: Sprite Renderer // 시각적 충격파 Component Renderer // 효과음 재생 { Component Type: UAudioComponent Component Properties: Sound: ImpactSound_Cue Volume Multiplier: Particles.AudioVolume Pitch Multiplier: Particles.AudioPitch Enable Pooling: true Pool Size: 8 } // Particle Spawn에서 오디오 파라미터 설정 Set (Particles.AudioVolume) = Uniform Ranged Float Min = 0.5, Max = 1.0 Set (Particles.AudioPitch) = Uniform Ranged Float Min = 0.8, Max = 1.2
Component Renderer 사용 제한

Component Renderer는 CPU Sim에서만 동작합니다 (GPU Sim 불가). 파티클 수를 최소화하고 반드시 풀링(Pooling)을 활성화하세요. 대량의 파티클에 Component Renderer를 사용하면 심각한 성능 저하가 발생합니다.

03

다중 렌더러 조합 패턴

실전 이펙트의 렌더러 구성

프로덕션 이펙트는 대부분 여러 렌더러를 조합합니다. 각 렌더러는 이펙트의 서로 다른 시각적 측면을 담당합니다.

폭발 이펙트 - 다중 렌더러 구성
NS_Explosion (Niagara System) Emitter 1: Flash // 섬광 Render: Sprite Renderer (밝은 흰색 스프라이트, 짧은 수명) Light Renderer (강한 백색 라이트, 급격히 감소) Emitter 2: Fire // 불꽃 Render: Sprite Renderer (불꽃 텍스처, SubUV 애니메이션) Emitter 3: Smoke // 연기 Render: Sprite Renderer (연기 텍스처, 큰 크기, 느린 소멸) Emitter 4: Debris // 파편 Render: Mesh Renderer (파편 메시 3종 랜덤) Emitter 5: Sparks // 불꽃 입자 Render: Sprite Renderer (작은 밝은 점, 물리 기반 이동) Ribbon Renderer (짧은 트레일, 속도 기반) Emitter 6: Shockwave // 충격파 Render: Mesh Renderer (구체/링 메시, 급격히 확대)
렌더러 조합 원칙

1) 각 시각적 요소를 별도 Emitter로 분리하여 독립적으로 튜닝합니다. 2) Light Renderer는 가장 밝은/중요한 Emitter에만 적용합니다. 3) Component Renderer는 소리나 Decal 등 필수적인 경우에만 최소 파티클로 사용합니다.

04

Renderer Visibility와 조건부 렌더링

파티클 속성에 따라 렌더링 제어

렌더러의 Renderer Visibility 바인딩을 사용하면 파티클마다 해당 렌더러의 표시 여부를 제어할 수 있습니다.

조건부 렌더링 예시
// 파티클의 속도에 따라 렌더러 전환 Particle Update: // 빠른 파티클은 Ribbon으로, 느린 파티클은 Sprite로 Set (Particles.ShowRibbon) = length(Particles.Velocity) > 200.0 ? 1 : 0 Set (Particles.ShowSprite) = length(Particles.Velocity) <= 200.0 ? 1 : 0 Render: Sprite Renderer: Renderer Visibility: Particles.ShowSprite Ribbon Renderer: Renderer Visibility: Particles.ShowRibbon
SUMMARY

핵심 요약

  • Light Renderer는 파티클 위치에 동적 포인트 라이트를 생성하며, 비용이 높으므로 파티클 수를 최소화해야 합니다.
  • Component Renderer는 임의의 UE 컴포넌트를 스폰하며, CPU Sim에서만 동작하고 풀링이 필수입니다.
  • 프로덕션 이펙트는 다중 렌더러를 조합하여 완성도를 높입니다.
  • Renderer Visibility 바인딩으로 파티클마다 렌더러 표시를 조건부로 제어할 수 있습니다.
  • 각 시각적 요소를 별도 Emitter로 분리하면 독립적인 튜닝과 최적화가 용이합니다.
  • 렌더러 비용 순서: Sprite(낮음) < Ribbon/Mesh(중간) < Light(높음) < Component(매우 높음)
PRACTICE

도전 과제

배운 내용을 직접 실습해보세요

실습 1: Light Renderer 기본 설정

Light Renderer를 추가하여 파티클마다 Point Light를 생성하세요. Particle Color로 라이트 색상을, Particles.LightRadius와 Particles.LightIntensity로 범위와 강도를 제어하세요.

실습 2: Component Renderer 활용

Component Renderer를 사용하여 파티클 위치에 Audio Component를 배치하세요. 파티클이 바닥에 충돌할 때만 사운드가 재생되도록 이벤트 기반 트리거를 구현하세요.

심화 과제: 성능 고려한 Light Renderer

수백 개의 발광 파티클에 Light Renderer를 사용할 때의 성능 영향을 측정하세요. Max Light Count, Light Distance Fade를 조절하고, Emissive 머티리얼만 사용하는 것과 비교하세요.