Hello.
My name is Orson Favrel, I’m currently a Senior VFX Tech Artist at Unity. My daily task is to help improve VFX Graph and overall the VFX tools and workflow in Unity.
Previously I was an VFX Artist and Ready & Dawn and a Lead VFX Artist at Dontnod Studio.
I’ll be using this Topic to share some of my experiments, use of new VFX Graph feature etc…
Feel free to comment, ask questions or criticize.
Sorry for the late answer.
All the different elements: VFXGraphs, Mesh swap, lights etc… are triggered and synchronized thanks to Timeline in Unity.
If you’re not familiar with Unity, Timeline is their sequencing tool that allow you to animate, synch, triggers events etc. The cool thing is that it has scrubbing feature.
So I just “pause” the explosion in Timeline and control the camera to revolve around the explosion.
I’ve been playing around with this 6-way lighting Shader to make some Environment VFX. I wanted to see if the Light response would match up with Volumetric Clouds in Unity, and while it isn’t perfect, it’s pretty close. Volumetric Clouds often have to be set to low quality for performance reasons, so it’s nice that you can mix them with 6-way lit Particles that are packed with intricate details.
Thanks for sharing the texture file. Can you tell us how you created TX_Pyro_RollingBall, TX_Pyro_SmokeLoop?
It is difficult to create Loop Simulation in Houdini.
Hello. To be honest, I remember that I had a hard time creating the Smoke loop that gives this impression of infinitely rising smoke. Regarding the looping part, I usually use the SideFXLabs tools, with the Make Loop node that does most of the heavy work for you. You can check this webinar from Urban Bradesko that includes hip files or even this post from Simon Trümpler.. You can also take a look at this hip file that was used to create one of the textures in the 6W pack. It’s nothing fancy but it might help you .
Here is an old VFX that I did to test the Strip/Ribbon workflow in Unity with VFXGraph. Everything is made with one parametric VFXGraph with the Source and Target sphere being binded thanks VFX property binder script. When the target is Hit, an event is sent from VFXGraph. This allows to do some Vertex deformation and color modulation on the Target Sphere.
This looks so awesome! I would love to hear how the VFX graph works and how you created this effect if you find time. Nevertheless, great work! I hope that one day I can create something that looks so cool.
With pleasure . Here is a minor breakdown that I hope you’ll find helpful.
Overall, the scene isn’t complex and is composed of two spheres, one VFX Graph, and a simple C# Script. The VFX is a component of the Source Sphere, and I’ve set up a VFX property binding so that the VFX can access the Target Sphere’s properties, such as its radius and position.
The VFX Graph is composed of 5 systems, all driven by a “Main system.”
This Main system spawns particles whose positions are being interpolated between the Source Sphere and the Target Sphere along their lifetime.
But a straight-line interpolation isn’t interesting. So I’m adding a Spherical offset to this position and lerp between this Linear Path and the offset Path by sampling a curve with the normalized particle’s lifetime.
Here’s a visualization helper to help you understand.
Now, to get an even more interesting projectile path, I’m adding a rotation/twist along this path.
Here’s a visualization helper that displays the different controls that shape the path of the projectiles.
So, in summary, the Main system is spawning particles that move along a randomized projectile’s path. Those particles are not Rendered; instead, they are used to spawn other children’s particles along the path.
First, a trail spawns along the path. There is nothing fancy here, just a gradient over the trail’s length, some size variations, and simple Screen Distortion/Blur.
Then, additive dust particles spawn along the same projectile’s path. They share the color with the trails and are revealed with a slight delay compared to the trails. The idea is to give the impression that the trails dissolve into dust.
Slow-motion Visualisation.
Regarding velocity, it mixes some curlNoise, their parent’s velocity, and velocity vectors pointing away from the projectile’s path.
Finally, I’ve tweaked the sorting order to draw the trails on top of the dust particles. This helps blend the two, increases the velocity impression and the dissolve-to-dust idea.
The Trail distorting/blurring the dust particles.
The Next system comprises particles that spawn when the particle’s projectile collides with the Target Sphere. Those particles are emitted from a half-sphere, which is oriented thanks to the normalized vector between the Source and Target Spheres. From here, the particle’s behavior is mainly influenced by the initial velocity, a Collision block with the Target Sphere, some turbulence forces, and a Conform to Sphere Block that allows sticking to the Target Sphere.
The final system is made of trails spawned with the same behaviors as the previous system. Regarding their visuals, they follow the same recipe as the main trails.
To finish, I wanted the target sphere to react to the hit. For this, I’m using an Event Sender(CPU) that is being caught by a C# script. This Event is sending the Source position and color to the script. The script is simple and passes the event information to the Target Sphere ShaderGraph. Those parameters allow us to animate the Glow, Colors, some Vertex Deformation, and Custom Motion vectors.
So, without going into too much detail, that’s it, and I hope that this was helpful. And if you have further questions, don’t hesitate.