Ribbon 렌더러
파티클을 연결하는 띠(Strip) 형태의 렌더러로 트레일, 빔, 연기 궤적 등을 구현합니다.
Ribbon 렌더러 개념
파티클을 연결하는 연속 띠
Ribbon Renderer는 개별 파티클을 독립적으로 렌더링하는 대신, 파티클의 위치를 연결하여 연속적인 띠(Strip) 형태의 메시를 생성합니다. 검 궤적, 미사일 트레일, 연기 꼬리, 빛줄기 등의 이펙트에 필수적입니다.
Trail Emitter
Emitter Update:
Spawn Per Frame = 1 // 또는 Spawn Rate 사용
Particle Spawn:
Initialize Particle
Lifetime = 1.0
RibbonWidth = 20.0 // 리본 폭
Color = (1, 0.8, 0, 1)
Particle Update:
Particle State
Scale Color // 페이드아웃
Scale Ribbon Width // 폭 감소
Render:
Ribbon Renderer
Ribbon은 파티클의 생성 순서(Age)에 따라 자동으로 연결됩니다. 가장 최근에 생성된 파티클이 리본의 머리(Head)가 되고, 오래된 파티클이 꼬리(Tail)가 됩니다. Ribbon Link Order 바인딩으로 연결 순서를 커스터마이징할 수 있습니다.
Ribbon 주요 파라미터
Tessellation, UV, Facing 설정
| 카테고리 | 파라미터 | 설명 |
|---|---|---|
| Tessellation | Curve Tension |
0~1. 0이면 직선, 1이면 Catmull-Rom 곡선. 기본 0.5. |
Tessellation Factor |
파티클 사이에 삽입되는 세그먼트 수. 높을수록 부드러움. | |
| UV | UV0 Settings |
UV 타일링/오프셋. Scale/Offset으로 텍스처 스크롤 가능. |
UV0 Distribution Mode |
Scaled Uniformly, Tiled Over Ribbon Length, Tiled From Start Over Ribbon Length | |
UV1 Settings |
두 번째 UV 채널. 복잡한 머티리얼에 활용. | |
| Facing | Facing Mode |
Screen(카메라 향함), Custom, Custom Side Vector |
Twist |
리본을 길이 방향으로 비틀기. Particles.RibbonTwist로 제어. |
Ribbon Renderer
{
UV0 Settings:
Distribution: Tiled From Start Over Ribbon Length
Tiling Distance: 100.0 // 100 유닛마다 UV 반복
Offset U: 0.0
Offset V: 0.0
// 머티리얼에서 UV를 시간으로 오프셋하면 흐르는 효과
// Material: TexCoord + (Time * ScrollSpeed, 0)
}
트레일 이펙트 구현
이동하는 오브젝트의 궤적 따라가기
트레일(궤적) 이펙트는 이동하는 소스(캐릭터, 탄환 등)의 위치를 따라가며 파티클을 생성하고, Ribbon으로 연결하는 방식입니다.
Sword Trail System
Emitter Properties:
Sim Target: CPUSim
Local Space: false // 월드 스페이스
Emitter Update:
Spawn Per Frame = 1
Particle Spawn:
Initialize Particle
Lifetime = 0.3 // 짧은 수명 = 짧은 트레일
RibbonWidth = 50.0 // 검 길이에 맞춤
Color = (0.5, 0.8, 1.0, 1.0)
Particle Update:
Particle State
Scale Color:
Alpha Curve: 1.0 → 0.0 // 페이드아웃
Scale Ribbon Width:
Scale Curve: 1.0 → 0.0 // 끝으로 갈수록 좁아짐
Render:
Ribbon Renderer
Facing Mode: Custom Side Vector
// 검의 방향에 수직으로 리본 펼침
Ribbon ID로 다중 리본
하나의 Emitter에서 여러 독립적인 리본을 생성하려면 Ribbon ID를 사용합니다.
// 파티클에 Ribbon ID를 설정하면,
// 같은 ID를 가진 파티클끼리만 리본으로 연결됩니다.
Particle Spawn:
Set (Particles.RibbonID) = Uniform Ranged Int
Min = 0, Max = 4
// 결과: 5개의 독립적인 리본 스트립 생성
Ribbon Renderer:
Ribbon ID Binding: Particles.RibbonID
Ribbon 최적화 팁
성능과 품질 균형 맞추기
| 최적화 항목 | 방법 | 효과 |
|---|---|---|
| Tessellation 제한 | Tessellation Factor를 최소 필요값으로 설정 | GPU 버텍스 처리 비용 감소 |
| 파티클 수 제한 | 짧은 Lifetime과 적절한 Spawn Rate 사용 | 메모리와 연산 비용 감소 |
| Max Particles | Emitter Properties에서 최대 파티클 수 설정 | 무한 증가 방지 |
| Distance Culling | 카메라 거리에 따라 Spawn Rate 조절 | 먼 거리 이펙트 비용 절감 |
UE5.4+에서는 Lightweight Trail 옵션이 도입되어, 단순한 트레일 효과를 더 적은 비용으로 구현할 수 있습니다. Ribbon의 모든 기능이 필요하지 않은 경우 고려해 보세요.
핵심 요약
- Ribbon Renderer는 파티클을 연결하여 연속적인 띠 형태의 메시를 생성합니다.
- 파티클은 생성 순서(Age)에 따라 자동 연결되며, Ribbon ID로 다중 리본을 관리합니다.
- Tessellation으로 리본의 곡선 부드러움을 조절하고, UV 모드로 텍스처 매핑을 제어합니다.
- 트레일 이펙트는 Spawn Per Frame + 짧은 Lifetime + Ribbon Renderer 조합으로 구현합니다.
- Facing Mode를 Custom Side Vector로 설정하면 검 궤적 등 특정 방향의 리본을 만들 수 있습니다.
- Tessellation Factor와 파티클 수를 적절히 제한하여 성능을 최적화하세요.
도전 과제
배운 내용을 직접 실습해보세요
Ribbon Renderer로 이동하는 파티클 뒤에 꼬리를 생성하세요. Ribbon Width를 NormalizedAge에 따라 감소시키고, UV Tiling으로 흐르는 텍스처 애니메이션을 적용하세요.
Ribbon Renderer에 Noise 모듈로 불규칙한 변위를 추가하여 번개 이펙트를 만드세요. Spawn Burst로 짧은 수명의 파티클을 생성하고, Emissive 머티리얼로 발광 효과를 더하세요.
캐릭터의 무기에서 나오는 칼 궤적 이펙트를 Ribbon으로 구현하세요. Skeletal Mesh Data Interface로 소켓 위치를 추적하고, Width를 시간에 따라 페이드시켜 자연스러운 잔상을 만드세요.