VFX GRAPH - Reversible effect within specific range

Hi guys, I have a static particle system and I’d like to apply a small force (mostly on Y axis but upward or downward) and a change of the shading within a certain range of my camera. I already have my distance test for the camera but I’d like the force to be applied only on camera hover, meaning that the particles go back to there original place when they are not in the range. Is that possible ?

Here is the inspiration and what I’d like to tend to !

2 Likes

I know this video. I think that using ply to point cloud and glitch shader with post-processing(lut).
By using the photometry the techniques, the model was produced.
I wanted to make the similar contents and it tried but was difficult to make equally.

If the way in which it is able to make will be well known, it will be good if it told together.

Hey !
I already have the model inside a vfx graph and everything. I’m just wondering how I could make the effect when the camera approach, and make this effect reversible (only applied in the camera range)
THX !

Try to multiply the Y position of the particles with your distance from camera. You could also lerp Y positions using a normalized or clamped camera distance value. That way particles are going to come back to their initial position as the camera goes away from the particles.

1 Like

Thx for the tip, I’ll try that !
Nice name BTW !

Sorry but I didn’t manage to mke it work properly ( I’m fairly new to this and I’m terrible at maths…)
Here is my graph

1 Like

I managed to do something like this with some help (obviously). Now everything goes back to its place but this some kind of collider effect, playing with the set position only.
Now I don’t know how to apply it to a force becaus.When I do, it glitches and stutters because of the set position telling the particles not to move I guess :thinking:

Usually this type of stutter is because you are trying to set position in update. So each frame, particles are going back to your set position. Try setting position in the initialize instead and overwrite it in the Output.

Cheers!