Basically, I’m trying to create an almost firework trail-esque effect, and I want the “sparks” to shoot out opposite the velocity of the parent particles, to simulate how a real rocket looks, but I can’t find out how to do this. Would it be possible to sample the velocity of the parent emitter, and plug it in to the axis property of the spark emitter’s add velocity module?
Might have an inherit velocity input; try setting that to -1
I haven’t tried it yet, but I mainly wanted a solution for all other problems of linking certain properties. For instance: in another post I made which had no replies, I wanted to uniformly scale ribbon width based on the age of the parent particle, so I wanted something that would allow me to link any kind of property between emitters, not just velocity
What you are looking for is called particle attribute reader. It’s what drives that module internally.
You can make a new scratchpad, add a particle attribute reader input, then use that to read attributes like age, color etc from a source emitter
This might sound kind of dumb, but how would I read the attributes? I’ve never used the scratchpad before, and all I managed to do was pull up the attribute reader
Attribute Reader > Get Float by Index > Attribute : Age
Once i do all that, in this case for the velocity, how would I apply the scratch module to a parameter?
there is a map set node that lets you do that
Sorry for the late reply. This is what it looks like, is this correct? If so, I can’t find out for the life of me how to actually apply the read attribute to another parameter/vector (in the case, the axis of add velocity)
instead of local value, you can press that + button on the Map Set and choose velocity there to get that as a pin to assign values to
Yes.
You can also further modify velocity before adding it in the map set for example
I want to be able to apply the vector sampled from the velocity of one emitter to another vector in another emitter (in this case, sample the vector of the velocity of the parent emitter’s particles, and then plug that into the vector of the axis of the add velocity on the spark emitter) This seems more like it’s just directly sampling the velocity from one emitters particles, and then adding it to the other particles, or am I wrong???
Emitters don’t have velocities, only the particles.
That’s what I meant, basically taking the vector values of the velocity of the individual parent particles that the other particles/sparks are spawning from via the “Spawn particles from other emitter” and then applying the velocity’s vectors (which would be multiplied by -1 to go in the opposite direction) to the axis of the add velocity of the sparks so that they spew out like the fire on a rocket, is this possible?
(Sorry if this is kind of hard to understand, I’m not great at forming my thoughts into words)
That’s what the scratch pad you’re showing would be doing once you set that particle index to the index you want to read from.
you’re on the right track
The scratch pad is only asking me what emitter I want to sample from. It isn’t asking me where I would like to apply the sampled value (aka velocity)
So you set which emitter you want to sample from, then apply the particle index you want to sample from in that particle index input.
It will set the velocity on the current particle you’re running that module for
I don’t want to set the velocity though, I just want to set the axis of the “Add Velocity” module
Oh, ok, that’s a little more involved.
Instead of setting Particles.Velocity in the set map, you can set for example Particles.ParentVelocity.
Then in the Cone Axis, from that down arrow you can select this ParentVelocity to assign it