VFX-Unreal
Cascade: la versión antigua de Niagara
Referencias:
- guild wars 2
- monster hunter wilds vfx
- borderlands
- kingdom hearts 3
Un sistema puede contener varios emisores
Preview scene settings



Basics
Properties:
- ✅Local space
desactivado: partículas están con coordenadas de mundo, cuando se mueve el sistema, las partículas se van quedando en su sitio
activado: es como si estuviera precompuesto, si mueves el sistema (en el nivel) las partículas lo siguen, útil para: que un efecto quede pegado a algo
-
✅Determinism: dejarlo siempre desactivado para que la simulaciones siempre sean aleatorias, o sea con un seed distinto, pero es un poco más pesado. Si se marca determinista, siempre tendrá el mismo resultado, siempre tendrá el mismo seed
-
Sim target:
CPU: pensado para sistemas pequeños, que no incluyen demasiadas partículas: máx. 5k, el sistema de físicas es más fiable
GPU: orientada a sistemas grandes, sobre todo de mundo: lluvia, nieve hojas cayendo en un bosque, humo
Si hay varios emisores, los emisores más pesado de calcular, poner en GPU, los otros CPU -
Calculate bounds mode: si usas cpu-> dynamic, si usas gpu->fixed
-
✅Persisten ID: le da un ID a cada partícula, sirve para ...
Emitter update
indica cuántas partículas se emiten
se sigue ejecutando como un tick puedes definir cada cuanto
Emitter spawn
variaciones random para cada emisor👇
UE5 Niagara Basic | Emitter Spawn | #7
Emitter state

Si está en self, sus settings son independientes, si está en System, heredará sus settings del system
UE5 Niagara Basic | Emitter Update - Emitter State - Life Cycle | #8

Cuando es Infinite, solo hay que setear la duración de la emisión

Cuando es Once y Fixed, sólo se emitirá una vez, como un disparo único, durante el tiempo indicado en el Loop duration

Cuando es Once y Infinite, es igual que poner Infinite en el Loop behavior, PERO! además hay la opción de ponerle un Loop delay, en este caso sirve para darle un delay antes de que empiece a emitir infinitamente

Cuando es Multiple...primero para que funcione bien, tienes que quitar el Spawn rate y poner un Spawn Burst instantaneous (no olvides subirle el count particles en este componente)

Luego tienes parámetros...
Loop count: cuántos disparos
Loop duration: cuánto dura cada disparo
Recalculate duration ?
Loop delay: delay entre disparo y disparo
Scalability mode
tiene System o Self, para indicar si hereda del sistema o tiene sus propias settings
tiene opciones de culling y optimización cuando está lejos de cámara
UE5 Niagara Basic | Emitter Update - Emitter State - Scalability | #9
Spawn
Por defecto viene el Spawn rate, pero podemos desactivarlo/borrarlo y elegir otro
Hay que agregarlos desde el + rojo

Spawn probability (random de spawn) (0-1)
- Spawn rate: emite x partículas por segundo sin parar
- Spawn burst instantaneous: emite x número de partículas en una explosión
- Spawn per frame...Spawn per unit... Spawn particles from other emitter etc
Desde uno de estos (el que elijas) se controla el número de particulas
Spawn groups
UE5 Niagara Basic | Spawn Rate | #10
Particle Spawn
Cosas que están desde el principio: color inicial, impulso inicial,
"como el construction script" o "begin play" solo se ejecuta una vez
se pueden meter los mismos nodos que el particle update pero solo se ejecutan una vez
Add velocity: es una velocidad constante
Shape location: forma del emisor: Sphere, cylinder, Box/plane, torus, Ring/Disc, Cone
Particle update
Cosas que pasan constantemente: gravedad, viento, fuerzas,
(por lo general puedes pasar los "nodos" entre los módulos, como particle update, emitter spawn..etc, pero a veces te puede dar un error, solo hace falta con que le des a Fix issues y se arregla)
Render
aquí se escoge qué se renderiza, puede ser un sprite pero también mallas 3D
por ejemplo aquí además del sprite agregamos un mesh render, pero esto hará que se renderice otra vez las partículas, por ejemplo si se están generando 2k partículas, se generarán 2k y 2k de meshes...asi que cuidado con esto

si quieres mitad y mitad, crea 2 emisores
si son mallas (y en baja cantidad) y va a colisionar con el entorno, se podría poner por CPU para que calcule mejor las colisiones, pero en la mayoría de los casos mejor GPU para meshes
El material usado en Niagara tiene que estar seteado de cierta manera para poder ser usado en Niagara, sino no se pueden cambiar sus parametros
Variar posición en las partículas
- curl noise
- aerodinamic drag+wind force
- jitter
Event Handler
Para crear un evento, el emisor debe cumplir 2 requisitos en Properties
- Estar funcionando en CPU
- ✅ Requieres persistent ID
En el Emisor padre
Particle update
➕"Event"... puede ser "Generate Collision/Death/Location Event"
En el emisor child
➕ (STAGE naranja de arriba del Emisor)-> Agregar un Event handler, esto creará un módulo de Event Hanlder
Event Handler
➕ "Receive"...Collision/Death/Location...Event, el que toque
Event Handler Properties/Source > Escoger el emisor que está emitiendo el evento, escoger escoger el event hander (collision/death/location) que quieres que reciba

Choque de gota -Event handler
Particle update agregar:
- Collision
- Kill particle (poner este al final de módulo)
agregar un Generate...collision event
Luego en properties, ✅Requieres persistent IDs
particle update
Particle
add emitter (nuevo) la plantilla de empty (no usar el Add empty emitter)

Crear el event handler en Stage del empty (al empty lo llamamos Rain splash)

(como a las 8:47 hizo un repaso de esta parte) será como a la 1:17h del video
Efecto granada racimo
otro ejemplo de event handler
agregar en el Emitter update un Spawn burst instantaneous

Luego agregar un Mesh renderer

y darle una malla de...una silla por ejemplo
también agregar Gravity force y Collision en el Particle update

además en el particle update agregar un Kill particles
y agregarle la condición de H as collided
Emission from chaos
- Crear un emisor vacío
- Referir a la data de Chaos

En el emitter setearlo en GPU, no olvidar Calculate bounds Mode-> Fixed
- Emitter update/Life Cycle Mode: System
- ❌Borrar el Spawn Burst Instantaneous
- En Emitter update, add Spawn from Chaos (marcar "Plugins" para ver la opción)

Same with Particle Spawn un agregar un "Apply chaos Data"
Luego en el Spawn from Chaos (emitter update) y el Apply Chaos Data (Particle spawn) agregar desde el triángulo invertido, "user"

Luego agregar el Niagara System al nivel, y en sus detalles (en el nivel) poner esto

Y el Min speed to spawn trailling particles: 10
Luego seleccionando el Geometry collection ( la geometría fracturada, simulada y grabada)
Chaos Physics/Events
✅Notify Breaks
✅Notify Collisions
✅Notify Trailing

En Project settings, activar:
✅Generate Trailing Data
Smoke/Debris FX from Chaos (2D)
Simulation con Chaos+Grabarla en Sequencer
Chaos+Niagara
Sprite render seleccionar M_Fire_SubV
(como es un 6x6) subir su Sub Image size a 6x6
Marcar ✅ Sub UV Blending Enabled

Initialize particle
Color: al gusto
Sprite size: 75..?
Sprite rotation mode: random
Particle update
➕Drag
➕Acceleration force
subir el Z axis a 100
➕SubUV animation
Peces/cardumen/flock
1 Million Fish? How to Simulate Fish with Niagara in Unreal Engine - YouTube
Caida de hojas
- Comenzar el emitter (plantilla) Blowing particles: hojas cayendo
Bandada aves
How to create a Bird Flock using Niagara System in Unreal 5.3 - YouTube
Electric FX
Electrified Skull FX in Unreal Engine 5.4 Niagara Tutorial - YouTube
Particulas: Aplicar Fuerzas
Animación de Material
Ue5 Niagara Ground Attack VFX Tutorial - YouTube
GROUND ATTACKS
Ice Attack Effect
Stylized Smoke VFX
Event Handlers -> Location Events
Levantar polvo con los pies
Crear un Niagara System, preset: Smoke
Leyenda
➕Agregar
/ Un nivel abajo
> Dropdown
✅ Activar
->