PDA

View Full Version : How To Lock Particles On Emitter ???


rishiinamdar
06-29-2010, 05:32 PM
How To Lock Particles On Emitter ????
I have emitted particles from an object (Ex. Sphere) with zero speed so that they form the shape of the object.. Now i do initial state for the particles and turn rate down to zero...
Now when i animate that object i want the particles to move along with the object..
You can use this to do a teapot dispersing into sand effect...
But how do i do this if the object is moving ???
I can parent the particles to the object... but then they will follow the animation of the object even after leaving the object surface... I can also give the particles goal... but then they seem to arrange themselves on the vertices of the object....
There is a straightforward feature called Lock On Emitter in 3DS Max...
How can i achieve this in maya....
Please Please reply...
Thanks you

mandark1011
06-29-2010, 08:23 PM
you need to use goals but with use parentUV's turned on in emitter. Emit your particles from your object.

then this code in creation and runtime

goalU = parentU;
goalV = parentV;

basically your telling maya where the particles are born on the surface is where they stick.

good luck

edit...this technique will also work for deforming geometry

mduvekot
06-29-2010, 08:24 PM
Add goalUV and parentUV attributes for the particle, turn ON the needParentUV attribute on the emitter make the emitter a goal and add this runtime expression
(assuming your particle is called particleShape1)


particleShape1.goalU = particleShape1.parentU;
particleShape1.goalV = particleShape1.parentV;

then go and tweak the goal smoothness. A value of 0 is boring, but seems to be what you want.

rishiinamdar
06-30-2010, 04:10 AM
Thank you mandark1011, Michiel for your replies....
I tried this but couldn't achieve what i wanted exactly...
Now with goalUV and parentUV i can get the particles to form the shape of the object...
But when i have the goal weight to be zero they dont follow the animation of the object whereas when i have the goal weight to be 1 they are not affected by any force field
For Example - I have a animated teapot made out of particles... now that teapot goes through a turbulence field and all the particles get dispersed..... In this case if i have the goal weight to be zero the particles wont follow the animation of the teapot... whereas if the goal weight is one the turbulence field wont effect them.... i can keep the goal weight to be .5 or something but then the particles lag the animation of the teapot by a few frames... Also they are again attracted towards the teapot after dispersing...
So is there any way where the particles just follow the animation of the teapot 100% and then get dispersed as they pass through a turbulence field...
I hope you can help again
Thank you very much

mandark1011
06-30-2010, 02:23 PM
in this case you need to write a runtime expression on your goal weight. This works on a per particle basis. One of the tricks i use here is to make an event that doesnt actually collide then use the event to trigger my behavior. make a plane or shaped deforming object and make your particles collide with it but set the reilience to -1 then in runtime

if (event >= 1)
goalPP = 0;
else
goalPP = 1;

there are many ways to do this however i like this way because it gives me control on a visual basis of where and when my particles will change behavior.

good luck

rishiinamdar
06-30-2010, 04:19 PM
in this case you need to write a runtime expression on your goal weight. This works on a per particle basis. One of the tricks i use here is to make an event that doesnt actually collide then use the event to trigger my behavior. make a plane or shaped deforming object and make your particles collide with it but set the reilience to -1 then in runtime

if (event >= 1)
goalPP = 0;
else
goalPP = 1;

there are many ways to do this however i like this way because it gives me control on a visual basis of where and when my particles will change behavior.

good luck

Hi
i tried this....
I created a plane and turned its resilience down to -1....
I created a collision event where no particles are emitted and the original particles dont die...
This is the expression i wrote in runtime

particleShape1.goalU = particleShape1.parentU;
particleShape1.goalV = particleShape1.parentV;
if (particleShape1.event0 >= 1)
particleShape1.goalPP = 0;
else
particleShape1.goalPP = 1;

(Actually i am doing this as i type :p )

Now i have put a turbulance field... i have emitted these particles on a sphere and animated the sphere to go through this plane whose resilience is -1... But they dont seem to fly off even after passing through the plane.... I there a step i am missing somewhere..

mandark1011
06-30-2010, 04:24 PM
can you attach the file ill take a look at it.

actually let me just make one up quick ill post in a few

mandark1011
06-30-2010, 04:35 PM
there you go hope this makes things clearer for you

rishiinamdar
07-01-2010, 06:08 AM
there you go hope this makes things clearer for you
Thanks so much for that file.... That solved the problem...
Cant thank you enough really....

CGTalk Moderation
07-01-2010, 06:08 AM
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.