Issue with electric arc between two points on animated character Niagara

Hi everybody! I’ve started learning real time VFX not long ago and Niagara is quite daunting to be honest :sweat_smile:

My goal is to, on death, have electric arcs running on this character. I figured out the way to spawn two particles and connect them with a ribbon. It works in Niagara, during game play the two particles pop correctly on the character but the ribbons are in 0,0,0 world.
Any idea on how to fix that? Is my approach correct?

Thank you guys in advance for you help :slight_smile:

ElectricArc

2 Likes

Here is how I did the effect:

1 Like

This may sound obvious, but did you make sure your Emitters are set to local space?
If it’s just the ribbon that is out of place, I would check there. Its a checkbox under “Emitter Properties”

1 Like

Thank you so much! The tunnel vison was real haha:

Now another thing, I like the beam emitter a lot more in this case but I have no idea how I can change the beam end according to those two particles I’m spawning. The beam start alternates between the two particles but keeps the original offset I give it:

Glad that worked. It feels nice when a solution is so simple.

As for the second question, can you explain further? I’m not sure I understand the intended effect.

Yes, so easy this time. Thank you again ^^

The idea is to do the exact same effect with a beam emitter instead since the the behavior/look is more appropriate for this effect in my opinion.
Now when the beam spawns, one end flickers between the two particle locations but the other end stays still.
So more generally I’m wondering how I can set or update the start and end of a beam according to a particular particle position.

I really like how it looks:


Here start is 0.0.0 and end is 100.0.0

Honestly I’m not sure. I tried testing it out, but I don’t know. Maybe I can try again later.

A dynamic beam can change length, so I imagine if you use persistent ids you could get a particle’s location and update to that parameter. Not sure though.

heya, thanks for showing the setup so useful, I was wondering if you found the solution for this to work with the Beam, I have same problem :slight_smile:

Can you accept in more detail how to get the vertex position from another emitter?

The way I would do it is:

  • Create two emitters, one is your source emitter with the source particles, the other one is your beam emitter.
  • Spawn exactly two particles with your source emitter. You can spawn these directly on your skelmesh if you prefer, via the SkelMeshLocation module.
  • Create a ParticleAttributeReader on your beam emitter. Create a custom scratch pad module (inside Emitter Update) which returns two vectors (positions), ‘BeamSourceLoc’ & ‘BeamEndLoc’. Read the positions of your source emitter particles via the Attribute Reader. You can do this via index, as you only have two particles it should be index 0 and 1.
  • Use your two new Loc parameters inside your Beam Emitter Setup module for Beam Start & Beam End

Hope that helps, haven’t tried this, so no guarantee that this actually works…

3 Likes

Hi

I am trying to making something like this too but I have no idea how do you get the position data from the particles and generate the link between 2 points to make the electricity.

thank you