Woke up early today and did a good ol’ fashioned planning session on pencil and paper. Towards the end of my note taking, I realized that pretty much everything I’d planned out was contingent on the ability to have multiple SDF attractors in a single VFX particle system. This freaked me out, since I’m fairly certain I remembered trying that out without success a while ago. Uncertain doom leaves hope, however. I decided to take a walk and enjoy my morning, setting my worries aside for later when I’ll eventually test it out.
Great news—I curved the bullet! I’m not sure how new this feature is, but there’s a SDF attractor node in VFX graph, and I’ve been using it for my project all this time.

More good news—I can also use multiple SDF collision nodes. I’ve been playing with the configs, trying to understand the relationship between the attractors and colliders.
I’ve learned something very interesting. Stick force conforms the particles to the SDF more fully than attraction force does, and the beautiful thing about it is that the stick force field is confined to a radius from the SDF surface, aka the stick distance. This means that particles outside that radius will not be drawn to the SDF if its attraction force is set to 0. I believe I should have a series of moving transforms animated by Brownian motion between the hand and the energy ball position. This transforms should have SDF attractors with force but no stick; they’ll be using to make the particles emitting from the hand take a more dynamic path to the energy ball. They energy ball SDF will also have an attractor, but it will contain strong stick force and a strong attraction force.
There will also be another attractor that interpolates its position between the user’s hand and the energy ball. This attractor’s forces will be hidden until the hand closes; once that happens, this attractor will move from the energy ball back to the hand with such strong attraction force that it pulls the particles in the energy ball back into the hand.
I just set up my first VFX graph animation without the Unity animator!

I got it working with multiple animations for a single property.

Why do things this way over the Unity Animator? The answer comes down to editability. I’ll figure out the right way to name my variables soon.
And for my next optimization, I present…MODULAR ANIMATION SUBGRAPHS!

I just knew this was gonna get crazy…