does pop awaken work when collision response is to set to "s

   1498   5   1
User Avatar
Member
30 posts
Joined: Oct. 2014
Offline
Hello,

I'm having a weird issue where I have just some particle colliding with a ground node, move to hit, and response to "stop" and "move to hit" checked on. However, when I use the pop awaken the "stopped" attribute goes back to 0, but none of the forces affect it. but the Velocities are updated in the geometry spreadsheet. not sure why that is. any ideas why?
Edited by Angel Negron - June 15, 2022 22:16:56

Attachments:
pop_awaken_stopped.hip (427.2 KB)

User Avatar
Member
30 posts
Joined: Oct. 2014
Offline
seems like checking on "moke to hit" is the issue. in the documentation, it mentioned the 'move to hit' essentially does v@P = v@hitpos.  How do I change the @P not to equal the hitpos once it is set to awaken?
User Avatar
Member
8532 posts
Joined: July 2007
Online
particles are detecting collisions before the position is integrated
and if the collision was detected they will be moved to collision after the integration, essentially keeping them stuck

- you can either use @hittotal to move to collisions only once yourself
- or move them to collisions with slight gap between the collision detection radius and the collider, so that they are not inside collision when awaken

here is a file with both options

Attachments:
pop_awaken_stopped_ts.hipnc (438.3 KB)

Tomas Slancik
FX Supervisor
Method Studios, NY
User Avatar
Member
30 posts
Joined: Oct. 2014
Offline
thank you Tamte, this was a huge help. Love it!!!!

I don't quite get this expression, haspointattrib(0, "pscale") ? 0 : 0.02;

I know its checking if the point has the attribute but the
? 0 : 0.02;

I never used ternary conditional before so if I understand it let me know, looking at the documents ternary conditional is checking if the condition is true or false, and if it is true it takes in the left or false takes the value on the right?

so, in essence, it checks if it has an attribute called pscale from the first context input if it does meaning true it gets the value on the left of the colons(0), and if it's false it gets the value on the right side of the colon(0.02).

thank you again.
User Avatar
Member
8532 posts
Joined: July 2007
Online
That's right
The reason is that the solver uses 0,02 radius if there is no pscale to help avoid leaks, but the hitpos is exactly at the surface
And if there is pscale it uses that but also hitpos is offset from surface by pscale

So in the wrangle I'm just accounting for the difference to apply gap
Therefore if there is pscale I offset just by the offset value
If not, then it needs to be offset by 0.02 and the offset value

Simply to always end up a tiny bit further than the collision detection is checking for
Edited by tamte - June 16, 2022 16:03:40
Tomas Slancik
FX Supervisor
Method Studios, NY
User Avatar
Member
30 posts
Joined: Oct. 2014
Offline
LOVE IT!! thank you
  • Quick Links