LC #42 Pipers Alley

View Full Version : Making particles follow a curve

03-19-2003, 10:48 PM

I`d like to make particles travel along a curve..
Am I missing something simple here?..
I saw a plugin for this some time ago but it was only for
Unix. Is there some way I can acheive this using vanilla


03-19-2003, 11:17 PM
Yes, under the Effects menu you can use Curve Flow!

03-21-2003, 07:58 PM
Thank Jozvex,

Doh! I can`t see the wood from the trees... I actually used the curve flow some time ago.. so wrapped up in expression writing...

I am losing my mind Dave I can definately feel it going , Daisy ... Daisy...


03-22-2003, 01:09 AM
You might want to have a look at this also:

Very handy if you want to branch your curve flow up into different curves or visa-versa.


03-22-2003, 02:13 PM
Thanx Richard ...

This is more what I had in mind ..originally

03-23-2003, 03:06 AM
If you have fluids you can paint vectors for particles to flow through it looks really good and you can have them steam off etc.

03-23-2003, 09:34 PM
You can also write this simple runtime expression.
Assuming your curve is named curve1:

float $pos[] = `pointOnCurve -pr (age) -p curve1`;
position = <<$pos[0], $pos[1],$pos[2]>>;

Then copy the same expression in creation to get rid of the possible particle you can find at emitter position.
You may also want to set to 0 the emitter speed.


03-25-2003, 11:44 PM
Wow, Thank alex the particles are rock solid on the
curve.. something the flow does not quite acheive ..

Thanx to all forum replies ... am managing to
sort my objectives out.


03-27-2003, 09:04 PM
and there's always the option of making the curve a goal for the particles and putting a ramp in the goalU attribute. They'll follow precisely and you can use the goalOffset attrib to vary their position. Works with surfaces too.


03-30-2003, 09:44 PM
Noxy, Hi

This sounds very interesting I tried to set this
up but got in a mess ..if could you take the time to outline
this is detail step by would be cool...


04-02-2003, 07:23 PM
Can u elaborate Noxy......

This sounds interesting but I`ve not had much
success .. could you outline
your procedure in detail ?


04-06-2003, 07:15 PM
create your curve, than rebuild the curves, keeping CVs and setting the ranges 0 to 1.
Add you particle emitter, then set the curve as the particle goal object.
If you play, you will see your particles stick to the curve cvs.
Now, select the particles and open the Attribute Editor.
In the Per Particle (Array) Attribute, add Dynamic attribute, click on General, then Particle and finally ad a GoalU attribute.
Now you can control this attribute with an expression, or, as Noxy said, with a ramp.
Right click in the goalU field and choose, create Ramp.
If you now play the animation, you will see your particle follow the curve path.
Now you can play with the Ramp color and value to get the desired effects.


04-23-2003, 09:17 PM

Thanks 4 replying Alex... this is a really sexy solution...

Its also given me an incite into the goalU..V attributes which I`ve not used before.....


06-04-2003, 12:54 AM
What if wanted particles to follow a path and then attach to a goal object?

Can particles follow a polygon surface from the bottom to the top or should I convert the object to nurbs?

06-06-2003, 02:39 AM
Since for each goal object you add you get a separate GoalWeight channel, I suppose you could animate the goal weight for each object. What might be cool, is if it is a nurbs surface, you coul extend one of the edges and then use the uv of the surface so the particles follow along one of the sides (similar to flowing along a curve) and then spread out on U when they reach the object (using a ramp or runtime expression).
If you want particles to flow along a surface with any control, I would suggest using a nurbs surface.


Originally posted by sinistar
What if wanted particles to follow a path and then attach to a goal object?

Can particles follow a polygon surface from the bottom to the top or should I convert the object to nurbs?

CGTalk Moderation
01-14-2006, 05:00 PM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.