Jump to content

How to spawn new particles on another surface based on collision?


Recommended Posts

Hi,

 

In the old POPs, the Collision POP had a collision event where you could use it with popevent expression in another POP to activate emitting particles on another surface.

 

But with the new POPs, the POP Collision only has a group. I tried using npointsgroup expression with my collision group in a POP Source, but it doesn't work.

 

Basically I want to spawn new particles on the surface which the particles collide with. But I am not sure how to trigger emission based on collision?

 

 

Thanks :)

Link to comment
Share on other sites

Ok I finally explored Doum's file and it works great but I noticed 2 things:

 

1. When you spawn your particles, it seems like the new particles inherit all attributes such as life from the original particles even though you set them in the new POP Source as well. So if you set the life of the new particles to 5 and the original particle life is 100, then they also show up as 100. Is this normal?

 

2. I see that the new particles are spawned at the particle location of the old particles, which is fine. But how can I spawn the new particles on the surface of another SOP? So just like when you have a SOP and you use this in your POP Source, I want to be able to arbitrarily emit new particles anywhere on this other surface.

 

I tried it for an hour but so far only got Doum-style emission working, not brand new surface emission :)

Link to comment
Share on other sites

Hey Ryan,

 

About the particle life, there is a bug/problem, they are always adding the particle life of there parent. I've logged the bug. You can by the way by pass this by going in the pop replicate/Sopsolver/setup life(vopsop node) and plug the add directly in the bind3(life) param.

 

There is another problem with pop replicate, inherite velocity doesn't work as expected too. When inital velocity is set to Use inherited velocity and value is different than 1 it will also change there parent velocity... Change it to add to inherited velocity to workaround the problem.

 

Tell me if you find something else which doesn't seem to work properly.

 

I'm not sure If I understand your second question. You want to emit from another sop when a particle touch it ? I need more infos/example.

 

I like that kind of question to test some part of the software I've never touched yet :)

 

Cheers

 

Doum

  • Like 1
Link to comment
Share on other sites

Thanks Doum, exactly what you said :) I had to set life using POP Wrangle afterwards so they had shorter life. I also noticed setting Inherit Attributes to "" instead of * seem to work a little better. I assume if you inherit everything then after your particle is created, the original attributes like life, etc overwrites your own initial attributes.

 

As for the second question, basically think of 3 objects, A, B, and C. I am emitting particles from A which collide with B, and as soon as any collision happens, I want to emit particles from C just like A, using surface emission. Does it make sense? :) If not, I could make a simple file for you.

Link to comment
Share on other sites

Do you mean on the collision object ( B ) or C? That gives me an idea, for using both A and C for emission and only spawning from A using an attribute but then I will have the same emission style in both objects as opposed to 2 different styles like one regular emission, the other shorter impulse emission.

Edited by magneto
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...