If the point counts are consistent with Id’s all you need to do is calculate the distance between the shapes to get the length and direction.
sops wrangle: vector targetPos = point(1,”P”,@ptnum); vector restPos = point(0,”P”,@ptnum);
v@splashP = (targetPos – restPos) * ch(“splashPMult”); v@splashV = (targetPos -restPos ) * ch(“splashVMult”);
You can create something like a splashP and splashV attribute to control in flip, pops, etc.
I did something like that on the first badguys and some other shows. zerply.com/r/29FebF6u/badguys-fx
I animated sdf’s and controlled the ocean sim to match the shapes and timing.
You’ll want to calculate a birthFrame in sops, then you can animate the force procedurally.
wrangle in dops: float tf = f@birthFrame ; float offset = f@s;
float tfOffset = tf + ch(“offset_mult”);
float timer = fit(@Frame,tf,tfOffset,1,0);
v@P += (v@splashP * timer)*ch(“amount_mult”);
v@v += (v@splashV * timer)*ch(“amount_mult”);
I did something a bit more technical on elemental using jakes optimal transport but the same idea.