Setting Particles Up Vector (or always facing positive Z)

   4771   6   1
User Avatar
Member
12 posts
Joined: Feb. 2009
Offline
I have a polygonal mesh box emitting particles from the center with no velocity or variance set to the particles, thus leaving a trail. After a certain frame a activate a follow force to have the particles go back to the center of the box as if it is being absorbed.

The issue that I am having is when the particles start moving towards the leader, they orient themselves toward the leader (to create an absorbing effect). I want them to keep their initial orientation (pointing toward the positive Z axis like when they are first emitted). I can't use a Trail SOP because I need a delay from when they are absorbed.

I have attached my HIP file so you can see what I am doing. Any advice or pointing out of my errors would be much appreciated.

Attachments:
Logo_Follow.hipnc (60.3 KB)

User Avatar
Member
512 posts
Joined: July 2009
Offline
well the easiest solution in this case would be to turn off
“Transform Using Template Point Attributes” in your copy1 SOP.
http://vimeo.com/user2522760 [vimeo.com]
http://stormbornvfx.com/ [stormbornvfx.com]
Manuel Tausch
User Avatar
Member
12 posts
Joined: Feb. 2009
Offline
And I'm an idiot. Thanks for your quick response.
User Avatar
Member
512 posts
Joined: July 2009
Offline
well, you're not. If you display the particle gnomon and run through your simulation it clearly shows that the orientation switches as soon as they start following the leader. I couldn't seem to fix that behaviour, not with an upvector POP, not with an orientation POP and not even the trick to create an attribute “orient” in SOPs helped in this case.
It'd be nice to know how to control the particles instead of just forcing an orientation on the copy SOP …
http://vimeo.com/user2522760 [vimeo.com]
http://stormbornvfx.com/ [stormbornvfx.com]
Manuel Tausch
User Avatar
Member
12 posts
Joined: Feb. 2009
Offline
I tried everything you said except for creating an “orient” attribute. It would be nice to control each particle in such a way, but at this time your solution is exactly what I needed.

Now the only thing I need to work on is having the particles furthest away accelerate faster than the ones closer to the emitter. I tried multiplying the Speed Scale in the Force node by $LIFE, but that didn't work too well. Everything still had a constant speed. Do I need to multiply by $PT as well?
User Avatar
Member
512 posts
Joined: July 2009
Offline
You could get the distance between the emitter and each particle with either a VOPPOP or the distance() expression and then multiply that value with your velocity i.e.
Or you could try to calculate the acceleration (velocity vector on the current frame minus velocity vector of the previous frame) and use that value as a multiplier.
http://vimeo.com/user2522760 [vimeo.com]
http://stormbornvfx.com/ [stormbornvfx.com]
Manuel Tausch
User Avatar
Member
12 posts
Joined: Feb. 2009
Offline
I'll give that a try tonight. Thanks so much for your help!
  • Quick Links