Jump to content

how to stop particles


Lukich

Recommended Posts

Hello. I was wondering if there's a way to set up a particle system so that when the first of the particles emitted from a location collides with some object, the emitter turns itself off and all the partciles that have been already emitted acquire the velocity of 0. Thank you very much,

Luka

Link to comment
Share on other sites

Lukich!

You gave me the problem of a day! I mean I do have other things to do but your challenge sounded so irresistable that I couldn't help it but try to figure it out and guess what, I did! :D

Ok, so if I understood you correctly, you wanted all your particles to stop where they are and stop emitting as soon as one of them hits an object.

Ok, so you need a location POP, a collision POP and a split POP. I assume you allready have your object with which you want your particles to collide and the particles are moving towards it. Let them run and note on which frame the first one hits it. In the impulse activation of the location POP type this expression: if($F>X,0,1) where x is the number a bit larger than the frame you noted.

In the collision POP, specify the object you want it to collide it with and in the behavior bar name the collision event, for example stick.

Then attach split pop to the collision pop and type in the activation: popevent("stick"). Make sure that you check the Kill original particles ON in the Birth menu and the inherited velosity is set to 0.

Hope that helps

Katherine.

Link to comment
Share on other sites

I am not sure what you are going to do, but I guess here's another cheat. :P Can you also set up a single dummie particle or something so that this particle will go first before the rest of the mass, and so that if this dummie particle hit something first, then turn on the popevent for the collision and suppress the rest of the particle system?

(Aieeek! now my sentence structure is beginning to look like the horrible book that I have to read for my english class 2 weeks ago!)

Or another suggestion would be that you might be able to use Proximity POP to calculate the distance between the collision object and the nearest particle to that collision object -- which then if the distance is approaching .01 or something, suppress the rest of the particles motion.

Anyhow, just guessing here...

Link to comment
Share on other sites

Katherine: I was wondering if there's a way to do it procedurally, so it wouldn't matter what I do with my particle system - it would stop emmitting as soon as the first particle hits the collision object. I was trying to use if(NUMHIT>1, 0, 1) in the location activation, but it wouldn't work. Also, in your system only the particles that collide with an object stop. I'm trying to make all the emmited particles stop as soon as the first one of them collides. :o

Alex: How can I use popevent to suppress the emmission? I tried "if (popevent("event")>0, 0, 1)", but it didn't work either. Also, how can I stop the particles that are already born? I was trying to override their velocity in chops (variance =0) , but when the velocity equals 0, the particles slow down, but still keep on moving. Argh!!!! :(

Luka

Link to comment
Share on other sites

No no no,

Lukich, unless you forgot to include something that I mentioned all the particles should stop. Ok, sometimes Houdini is like a cat won't do what you tell it, so your only option is to outsmart it and create an illusion so it looks like what you want it to do but "it" thinks it does something else.

Ok you have 2 partcle systems in one, you location pop and your split pop. Your initial particles are invisible because you specified in the split pop to kill them (did you?) Make sure you check that box or they'll keep on going. Also make sure that in the split pop you have your inherited velocity 0 not 1 by default.

So what actually happens is, the particles that you see moving at first are your location particles, then once one of them hits the object the split particles get activated while at the same time location particles get killed. Your split pops have velocity or 0 and inherited velocity of 0 so they should be just birthed from the "ghost" location particles and be stationary.

As far as emmiting, your original particles are killed at birth so you never see them being emmited after the popevent is activated. However if you don't put down anything in the activation parameter then it becomes a continuous process of particles being born then one of them collides then they all stop, then after a while they are born again and the same thing happens over and over again. so you have to specify in the activation for particles to stop emmiting some frame after one of them hits but before new ones are born, doesn't matter which one. I don't think you can really suppress the emmition for an event that happens afterwards. Hope that helps and I hope I make sense.

Kat.

Link to comment
Share on other sites

Yeah sirogi,

I must admit your solution was a bit more presice than mine. There is of course more than one way you can do things in Houdini sometimes the result is the same, sometimes slightly different. But thanks for the tip, I've learned a couple new things from your file.

;)

Kat

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...