Wew almost forgot about this
So here’s my final version I guess, the floaty feel of the climax I was looking for turned out ok.
I’ll make a small breakdown at some point… maybe…
EDIT : OK BREAKDOWN TIME
So there are two parts in the VFX, the rotating portal, which serves as an anticipation, and the tentacles for the climax.
The portal is composed of three elements :
- The core part,
the central spikes,
and the outer trails going to the center.
The central spikes and the outer trails work the same way : I use a shader that lerps the position of the vertices of the object from the original one to a center point (0,0,0) in this case. This basically rescales them down to 0.
For the interpolation value of the lerp, I use the particle age, that I drive in my shader using custom vertex streams.
This stores a float going from 0 to 1 in the z component of the UV0 of each particle, that I then retreive in my shader to use it for most of my motion.
Now onto the core part of the portal :
I recently created a procedural mesh tool for unity, to easily create simple meshes for projectiles/slashes/whatever :
I used it to create the portal mesh : the idea is to have the V component of the Texcoord being equal to 0 at the center and 1 on the outer edge, so that a simple texture panning makes it warp from the outside of the circle to the center.
My mesh tool features a vertex twist option, to get a spiralling motion.
I also made possible to remap the position of the vertex to get higer density at certain places : this allows to change the rhythm at which the scrolling texture moves, a trick I learned from @Keyserito which is very neat !
The shader is pretty basic stuff, I scroll two textures with different speed/tilings, a bit of erosion as well as alpha fading on the edges. Again, using the particle age to modify my parameters as the particle evolves.
Finally, I make the whole portal appear with a scale-in animation, with a similar technique as described before, however I wanted an easing at the end, so I played with Desmos curves and got what I wanted with the log() function.
The tentacles are actually pretty simple : I make them appear with a similar scale-in motion as the portal, using the log() function shown higher, as well as using a fade in from bottom to top UV, to make them come out from the center (I simply multiply the particle age to change the fade-in speed.)
Aside from that, the rest is fairly basic : Texture scrolling again, erosion based on particle age, a sine-wave vertex distortion on the Y axis, to make them float around, as well as a distortion using normals, to make the tentacles bulge. With a bit of UV manipulation, I can make the bulge scroll from the bottom to the top of the mesh, and by using the frac() of the time i can make it loop and repeat.
Finally, some grab-pass distortion and a lens distortion post-process to get that watery feeling, to go with the medusa theme.
So that’s pretty much it I guess, hope you enjoy my entry and good luck to all participants !
Previous WIPs :
Progress so far, gathering all the features in the shader, next step is an actual animation with a nice rythm with all this ! Not gonna be easy using only maths, but we’ll see where this goes !
I’ll try to make a small breakdown after that.
Quickly prototyping ideas, to get the overall feel. Simple tentacle mesh for now, might generate it procedurally in C# later?
Time for some VFX
Did a quick concept for this one, I rarely do this but with restricted motion options I figured it’d help.
Sooo tentacles I guess? Let’s do this