View Full Version : Making particles follow a curve

03 March 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 March 2003, 11:17 PM
Yes, under the Effects menu you can use Curve Flow!

03 March 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 March 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 March 2003, 02:13 PM
Thanx Richard ...

This is more what I had in mind ..originally

03 March 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 March 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 March 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 March 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 March 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 April 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 April 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 April 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 June 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 June 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 January 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.