object bind -break on movement
#1
im adding water drops to a surface, based on the nice tutorial here: 

https://www.youtube.com/watch?v=wccOSFz-CeU


which ive spiced up a bit by having the larger drops moving faster than smaller ones etc.. 

im also using vraymetaballs to get some nice drip shapes.. 

overall its working quite nicely. 


HOWEVER, i now need to animate the base object (it will eventually be a cloth surface from tyflow actually)    

and my client requires droplets to fly off during sudden movements. 



i had hoped that adding an acceleration test after the object bind, and using that to pass to a new event, where object bind is not present,  or featuring a "surface force"  operator might do the job. but it seems the acceleration test does not consider movement imparted by the bound target object. 

(for example if i set the acceleration test low enough it will spit out the particles that are dripping down faster than others. , but it will not trigger when the target geometry spins violently. )

any tips most appreciated.
  Reply
#2
why dont you try using groups to test the acceleration on it ?
  Reply
#3
(04-07-2019, 05:14 PM)peshang Wrote: why dont you try using groups to test the acceleration on it ?

probably because i have no idea what that means or how to do it Smile
  Reply
#4
nobody? there has to be a way to get an object bind to "let go" of particles when forces get too high..?

im not sure where particle groups could be useful here.. i dont want to manually define particles behaviour.. i wish particles on the surface of a dynamic mesh to fly off if the mesh "flicks" them off...
  Reply
#5
EDIT: ignore all this and see next post Smile

So as you've noticed....velocity from bound objects doesn't transfer to particles, because particles are bound by position, not velocity...there is a workaround for this though.

Above your acceleration test, add a speed operator (set to continuous) and set both modes to 'verlet'. This will artificially assign velocity to your particles, based on the difference between their current position and their position at the last time step. Now, if your particles aren't locked to a specific place on the surface, modifying their velocity like that will also inject that same value into their motion...which you may not want. So you may need to save their original velocity before your verlet assignment and property test, and then restore it immediately after, using 2 custom property operators above and below your speed/test operators.

This can also all be simplified with a script operator, but for your purposes maybe using built-in operators is still easier. Eventually I may add 'verlet velocity' to the custom properties operator directly, so you don't need to manually construct it.
  Reply
#6
Oh, I just remembered....alternative to that whole somewhat-complicated setup, you can also use a surface test to test for surface velocities...which should do the trick.
  Reply
#7
Here's a scene file showing how the surface test method would work.


Attached Files
.max   angularToss_001.max (Size: 660 KB / Downloads: 341)
  Reply
#8
that is exactly what i was looking for.. many many thanks.
  Reply
#9
ok i have incorporated the "surface test" and "surface force" into my scene.

however ive noticed a problem.

the particles are on a surface which expands rapidly and suddenly ( its a cached tyflow cloth object which expands)

the whole system works, but there is a "lag" as the surface expands the particles dissapear inside the surface (it expands past them) , before they "catch up" and fly outwards away from the surface as expected.

ive tried playing with simulation substeps, and ive got the "surface force" set to 100% with no variation...

how to resolve this ?
  Reply
#10
Has there been any update to the best way to test for surface velocity? I am in a similar bind, except that I need particles to break when the slam into a wall. Would that be testing for Differential Magnitude?
  Reply


Forum Jump: