How to spawn particles on mesh particles spawned in the same Niagara System?

Hi,

I’m trying to spawn particles on meshes that have been already spawned in the same particle system. The idea would be similar to use mesh location but using a mesh rendered particles from another emitter instead of external meshes.

I thought that was a pretty simple task but I found myself lost in a pile of stages, attribute readers and scratch pads.

Probably exist an easy solution a workaround or a different approach to achieve the same results, but I’m not able to find it.

Any Idea?

Thanks for advance.

Thats a good idea for my next tutorial. Im not sure i can do that now. But i will try it. One thing can be done is use component renderer.

1 Like

Would be nice to see your approach.

I’m going to explore the idea of the component renderer.

Thanks

You can set array of points from mesh to spawn particles at same location and can add some movement if needed.
Cause component render is too buggy and not well optimized.

I would simplify it. Don’t actually read position from the meshparticle. Recreate the same data.

  • Read the orientation, scale and location from the particle that has the meshrenderer. Store that as a Particles attribute on the emitter you want to “sample positions” to.

  • Sample a static mesh that’s using the same mesh as the renderer. Apply positions.

  • Orient, scale and offset the positions. It should now match.

If you have multiple potential meshes, either use an array on the recieving emitter, or set up one emitter per mesh if that feels easier.

Edit. Yep, that worked.

Try this, then it should be easy enough to expand to multiple particles and meshes. Have fun.

10 Likes

Thanks Andreas,

Cleary I was overcomplicating the thing.

My idea , before your clean approach, was to import and sample a json file from Houdini. Clearly yours is a much better solution.

Cheers,

Josich

Hello!

Thanks for sharing this method, it was really useful

I’ve upgraded to unreal 5.4, and this method no longer works. They’ve changed the initial position to a Quaternion, that no longer allows any conversion

I wondered if anyone has found a way to get particles to spawn from a particles mesh surface in 5.4?

They’ve also updated the Static Mesh Location module, which comes with some handy features. But it prevents the Sampled Mesh Normal & Sampled mesh Position being explicitly set

If someone has a solution that works with version 1.1 of the Static Mesh Location module too, that would be great!

Thanks again,
Dean

I managed to fix the Quaternion issue. It was happening due to the emitter being in local space

This current method still works with the legacy module types

1 Like