Something needs to be done about the SDF attraction issues.

As you can see in this video, the mere presence of a second SDF completely throws off the flows of the particles. Simply put: the particles aren’t prioritizing their own player, and even distance doesn’t help. I have some ideas on how to fix this, but they need proper testing, which means I need to test without the Kinect.

Speaking of the Kinect, I figured out the max distance apart two hands would be (based on my own hands) and adjusting the sphere size accordingly. I also fixed an error in the initial velocity spreader section of the VFX graph which was causing asymmetry. I was adding the same position spread value to each hand, forgetting that each one’s velocity vector negated the other. The solution was to use a switch node to add or subtract the spread position based on the hand.

It only makes sense that I made a new scene for testing. I’m doing this more quickly and less eroneously each time. Search and replace (Case sensitive) baby!

What I’d like to test is using multiple ‘Conform to Signed Distance Field’ nodes sequentially in the same graph. I’ll no longer use a mesh combiner script to make a universal mesh. Instead, I’ll have a separate node for each player in the scene. I just learned from this thread that I can use boolean values to enable and disable blocks. Therefore, I can subscribe to player added/removed events to control my VFX graph!


I wasted way too long creating a script to more easily transform my dummy players. Sheesh.


Glad I tested a manual draft before going at it in the code and mapping each player’s transform to a graphic buffer. Even minimal attraction force from the second SDF throws off the flow of the particles significantly. The additional attraction tuning gained by having multiple SDFs doesn’t correct the root issue of particle over-redirection.


Tags: unity vfx gamedev sdf particles scripting debugging