Something tells me my superposition isn’t working correctly…

If that’s the case, I’ll just need to make a separate particle system for each hand. This is how I made the original V1 simulator, so it isn’t a huge deal performance-wise (as far I know). But it just looks messier! Ugh.

I tried out two improvement ideas I came up with yesterday after logging off. First, I tried randomizing velocity on a per-particle basis using a chain of the randomize, round, and switch nodes instead of using the Add Velocity Random (Per-Component) block. It didn’t seem to work at all. As a workaround, I used a Set Position (Shape: Arc Sphere) block, which got rid of the linear particle flow from the hand spawn positions.

My second idea was to use the distance between a hand and its body as a scaler for the initial velocity of the particles from that hand toward the body. It makes sense that larger bodies would attract particles more aggressively than smaller ones. Since larger bodies are made by bringing the hands further apart and smaller bodies made by bringing them closer together, this works out naturally. The correct distance-to-initial-velocity scaling ratio will take some additional tuning nodes, but this is the basic configuration.

Well, this actually works like I intended it to. Notice how the particles continue to travel to the correct body regardless of proximity to a closer body.

For some finishing touches on today, I copied over my size settings from V1 of this project. I orient size along the particle velocity. It’s a neat trick I picked up from one of the Unity VFX sample projects.

I’d like to add displacement to the spheres to make them look like they’re bubbling a bit. I tried adding a Vector Field Force **block after the Conform to SDF block but that didn’t produce the effect I desired. Perhaps I should use a compute shader on the meshes? Dang, I really need to figure those out…


Tags: unity vfx particles gamedev shaders mesh sdf