Quick answer: The mesh material must include a VertexColor node multiplied into Albedo (or wherever color affects). For per-instance scalars, use DynamicMaterialParameters renderer module with Particle.DynamicParam attributes.
Here is how to fix Unreal Niagara Mesh Renderer where per-particle Color attribute does not affect the rendered mesh. Mesh particles need the material to sample vertex color; without it the color attribute does nothing.
The Symptom
Niagara emits mesh particles. Particle.Color is set to red in Initialize. Meshes render with their material’s default color, not red.
What Causes This
Material does not read VertexColor. Default Lit materials use only texture albedo; vertex color is ignored unless explicit.
No binding for scalar params. Color binds via VertexColor by default; other per-instance scalars need DynamicMaterialParameters.
Mesh Renderer override. The renderer module has its own override flags that can mask particle color.
The Fix
Step 1: Modify the material to use VertexColor. Open the material assigned to the Niagara Mesh Renderer. Add a VertexColor node. Multiply into BaseColor.
// Material graph wiring
TextureSample (Albedo) -> Multiply -> BaseColor
\-> Multiply with VertexColor RGB
Now per-instance Color affects the rendered mesh.
Step 2: Bind Color in Niagara emitter. In the emitter, open the Mesh Renderer module. Confirm Particle Color Binding is set to Particles.Color (default). Set Particles.Color in Initialize Particle.
Step 3: For arbitrary scalars, use DynamicMaterialParameters.
// In Niagara emitter
Add Module: DynamicMaterialParameters
Bind Particle.DynamicParam0 -> Material DynamicParameter Param 1
// In material
DynamicParameter node -> Param 1 (X) -> some scalar usage
Per-particle scalar values reach the material.
Step 4: Verify with debug colors. Set Particles.Color to a curve from red to blue over lifetime. Each particle should color-shift visibly. If all stay one color, vertex color binding is wrong.
Step 5: For mesh emissive, also wire VertexColor into Emissive Color. Particles glow with their color when emitted via emissive output.
“Material reads VertexColor. Niagara binds Particle.Color. Per-instance color shows up.”
Related Issues
For Niagara not in PIE, see Niagara Not in PIE. For CPU readback events, see CPU Readback Events.
VertexColor in material. Particle.Color binding. Per-instance color renders.