Unity VFX Graph

Hello !
I’ve been tinkering for a while now with VFX graph in Unity. I’m amazed by its power and I love learning it. So far I have been able to recycle chunks of nodes from other effects and use and adapt them to new graphs.
The more I use it the more I can start making cool effects from scratch. I’m really happy about the progress!

This effect is basically two Pcaches interpolating to one another according to a sine wave over time.
So the sphere shape is 1 and the pyramid shape is 0. The shuffle is a third shape, a cube with turbulence, that is everything in between those values.
The light rays are the same ones as in the Holotable demo. I just needed to interpolate between the same current positions and target positions. I also hooked the same sine wave to the colors and the Y scale of the cube particles for more details.

Any feedback is warmly welcomed and please, if you have any suggestions leave a comment!

giphy

Edit:
I still had some time to play with the effect and added some cool features!
The graph is a bit messy but there is always room for improvement from that point.

giphy%20(1)

Edit2:
Ok, it may or may not be the last edit but I had to show some progress I made today with my system.
Now that I have been playing more with VFX graph, I have even more control over many features than I thought!

I have exposed many of the parameters and binded some of them to an empty game object’s position with the VFX parameter binder script.
In this effect; particle scales, shape lerps and particle orientations are binded to different objects.

The particles scale can be scaled by moving the object in whichever direction we want our particles to grow bigger.
The orientation is looking directly at the game object’s position all the time.
Finally, the shape lerps are binded to a game object’s position in Y.
It then becomes much easier to animate those parameters using a timeline.
The animations are clips containing all the possible lerps position so I can just use parts of the clips to lerp to any positions and back to the original.
Same goes for all the exposed parameters (…rays color, rays width, number of rays…).
We could call this modular VFX animations.

The background is basically a panning perlin noise spawning and scaling particles according to its grayscale values.

Also, the graph is now much cleaner!

FinalMorph2

Edit3 (and final):

I added finishing touches to the cube state and added more control on the textures in the background.
I can now blend 2 noise textures together and adjust their respective tiling and offset in the inspector!


12 Likes

Amazing stuff. You seem to have an extensive knowledge on VFX Graph, I’m just starting with it. And, please, allow me to ask you something very concrete.

Is there a way to control duration on a constant rate spawner? Instead of using a single burst, I need to make a system that has a constant rate of particles over time, but the FX must endure like 4 seconds, so after that time it should all die off. Is there a way to do this?

Thanks!! Awesome work again.

Hi!
Thank you very much!
I think there are many ways to approach this.
One I’m thinking is to tell your spawn block to spawn X number of particles if your totalTime < 4.

So you basically compare your totalTime to 4 and whenever its true you spawn X number of particles.
Hope that helps!

1 Like

Hi Thank you so much! this is better than what I was doing. I chained spawners in a loop using a 2 single burst spawners to control the duration of a constant rate spawner. It works fine, but your approach gives much more flexibility. Thanks.

1 Like

Cool to see you’ve found other ways to do it!
Its a pleasure to help!

1 Like

can you please share the first screenshot again in more resolution when am zoom in it will be blur.

Sure, here’s closeups of every sections of the graph;

BoolSetup

1 Like

thank you soo much
https://www.youtube.com/channel/UCzs8nm1Eym7PY5KzaaQRNYw?view_as=subscriber

Stunning, thanks for the post. I followed your screenshots of VFX graph, but I got stuck and couldn’t get morphing of pCaches work. Would you be so kind and share your project on GitHub, please? Many thanks in any case.