PhysX particles to form a logo
#1
Hi,
I´m trying to achieve something like this:

1. animation starts as a pile of PhysX particles (actually pile is created first by dropping lots of particles then waited until it rests still)
2. particles fly off the pile gradually from top to bottom, I use object to activate them
3. flying particles form a logo to a specific location while all the particles collide with each other while flying and stopping to their target positions
4. particles stop gradually after some time

I have done this using two different flows, first one makes the pile and drives the targeting and rest of the animation, second one set the target particles inside the logo objects volume. Problem is that when particles fly to specific targets they collide with each other and form I clump and don´t reach their targets. Is there any way to activate targets by index or something like that? So that way everything would fly to their locations controlled fashion while hitting to each other.


   
  Reply
#2
If your particles are in a random pile, there's no possible way to return them to an arbitrary position while also ensuring they don't block each other along the way (without literally hand-animating them individually).

So you have to come up with a different strategy. It might be something like adding an event which checks how long it's been since the particle starting moving towards its target, and if it's been longer than X frames, collisions get disabled for that particle using a PhysX Switch (because it's assumed to be "blocked" and so you must force it forward).
  Reply
#3
Hi,
I see that this is the problem, just wondering is there any way to target the particles in orderly way...so target particles that are more futher away get targeted first then from top to bottom they get targeted as particles fly off the pile. That way they would not get stucked. In other words can I target particles more specific way..top of the pile targets to top of the logo etc.

Thanks Tyson!
  Reply
#4
You can use a Script operator to measure their distance to target and then send out in order over time.

Keep in mind a particle target is a particle ID, not a simulation index, so if your IDs don't match your simulation indices you'll have to do a bit of bookkeeping in your script to match them up. You can check if they match using a Display Data operator.
  Reply
#5
After testing some more I think the best way to achieve this is to activate the particles in more orderly way, its the only way to avoid big clumps forming and most of the particles get to their target positions. That scripting solutions sounds the best way, but unfortenately can´t do any scripting. Smile
  Reply


Forum Jump: