Procedural gooey bits.
Added 2019-10-08 01:27:47 +0000 UTCI wanted to create goopy strands that spawn between contact points on lewd actions, I had a couple of properties I wanted to emulate from a viscous fluid.
The first property was that it droops and thins out when the contact points separate.

This is easy enough to emulate with a standard Verlet integration of particles. Each particle can have a spring force that pulls itself taut. with a gravity force that causes it to droop.
I also wanted to make it so that the goopy strand expands and turns into a "drop" when the contact points get close.

This is easy enough to emulate by simply approximating the width of the line renderer by the volume of the strand compared to the distance of the contact points. However, the verlet particles would be drooping a bunch, so to fix that I also dynamically spawn more or less particles based on the distance of the contact points.
With all that implemented I went to test out my first iteration!

....oh dear....
Spawning new particles on the fly causes my verlet integration to become unbalanced, making it violently adjust to the new particle. Even if I spawned it in about the right place, or randomly along the line, my verlet integration was too bad to work well with it.
Otherwise at least the droopy effect was working!
Luckily for me, I realized I could just grab an open-source verlet simulator online: https://github.com/mattatz/unity-verlet-simulator
Wow this is a great lesson in not re-inventing the wheel. This verlet integration works fantastically, and even has a mode to simulate it on the GPU.

Woo!
It was pretty easy to replace my crappy verlet integration with it, this is what it looked like at this point:

It exhibits all the properties I wanted in the goopy strands!
I needed few more things though, I needed the strand to snap if it got too far, and to smooth the polygons.
Smoothing the polygons is easy with a texture, and causing a snap was fairly simple distance checks.

Success! Now to spawn them on pseudo-random positions on the penetrators.
You can find a video of it in-action here: https://twitter.com/naelstrof/status/1177765788641423363?s=20