Thank you so much! You are a savior. Any idea how to give particles an upward velocity that still follows that curve? it just needs to feel like it’s going up a bit
If you’re following Vlad Solution, you should be able to use the Tangent Vector Output from the Sample Bezier Block.
Multiply it by some strength and use it as Velocity in the initialize Particle Context.
I tried using it in a set velocity node in the initialize context, but the particles don’t exactly follow the curve. They actually offset themselves over time, so my tornado kinda doubles itself in waves
I’ve been trying to plug this into my vfx graph which contains some more controls like particle size relative to the width of the tornado, some randomness, etc.
When I tried adding your “add value over lifetime” group and connect it to my system, it gave me really cool but weird results. Here’s my graph if you wanna take a look, I feel like I’m missing something when simply replacing the output of the first modulo and plugging it into the new group before everywhere else.
Hey @marcrem ,
Is what you attached the latest? It’s missing an output, the blocks are still in initialize, and it doesn’t have the “add value over lifetime” group:
Either way, it might be missing things if it’s not the latest, but I’ve added an output and integrated the bits into your effect (attached below). Btw, I quite like the directional change of the tornado you made!
Thanks, I tried your package and it confused me a lot as almost everything was moved to the output node and I use a lit output node as well.
It looks like not everything worked when I sent the vfx, so I made a package.
Here’s the features I added myself:
Particles scale up when the radius of the arc scales at that position
Rotation will go slower if the radius is bigger and faster if the radius is smaller
Particles are lit and are using a 4x4 sheet flipbook blend
The effect looks like this:
b4symk
Notice how I can move my bezier points and it will follow but only the newer particles will spawn correctly, the old ones are not moved. Probably because they’re not in the output node
So let’s say I move my blocks to the output node, I solve the problem of moving the bezier points, it now works perfectly. However, something’s suddently wrong with my particles, it looks like they’re having a party with strobe lights
Edit: I also used Total Time (VFX) in the “rotate around the bezier curve” instead of delta time like you mentionned.
yd8rb4
And then if I try to add the value to make them go up, this happens:
oxxhpu
Here’s my latest package with what I mentionned above (Bezier works real-time, but everything flashes weirdly, and I can’t get upward movement to work) in case you want to compare the 2 rendering results.
Strangely, if I do what I had done (next screenshot), it does make it faster on small radius and slower on bigger radius, but suddently it rotates the other way around and I can’t figure out why. It also slows it down way too much on the larger parts of the tornado:
I tried using this originally, but the values were just too high so I left a note (but it’s confusing, yes, it’s not needed, you can delete it :))
It helps to visualize things. First, let’s see what the distribution of that Lerp for the TopFunnelWidth / BottomFunnelWidth looks like. We can plug in the value from the Add a value over lifetime to move particles up group to a color gradient in the Output and visualize it:
A linear interpolation between the top and bottom funnel width might not give you enough control to decide what part of the tornado should rotate at which speed (and it makes it at times harder to control two values to get the right look).
We can explore a simpler approach by using a curve. You can control the overall speed with just your Rotation Speed property, and use the curve to determine the distribution along the length of your tornado:
Here’s how that looks in action by modifying the curve:
Hm, maybe lowering the exposed Rotation Speed?
No worries! I’m not able to spend as much time on the forums these days as I’d like, but happy to help
Thanks, most of my issues are now fixed. Except that flashing effect that you clearly don’t get on your side.
Here’s an example, I tried with a lot less particles at the beginning to show you how it’s not rotating that fast. Then I add more particles and you’ll clearly see my problem:
3ov3go
Alright so it’s really weird actually. Just noticed the rotation actually speeds up over time. Something has to be wrong on my side.
I place my VFX prefab on the scene, speed is fine. I wait for about a minute and it’s going about 2 times faster.
The rendering bug where particles are drastically changing their lighting keeps happening no matter what.
I tried to put my entire graph in a screenshot so it’s visible without downloading a package. There has to be something I messed up, but I can’t figure out why
Flickering: to narrow this down, let’s check a few things.
Can you confirm that your flipbook is set right? (I see it’s 6x5 - just to confirm it’s not 5x6). Also what’s the range of the Set Tex Index over Life curve in your Output? What happens if you disable flipbooks and just have the default texture - does it still flicker?
Can you play around with lighting; turn off shadow casting or change the output from lit to unlit (you can right click on the output and pick Convert Output:
A few other potential things to look into: check sorting, start disabling blocks one at a time in the output, and try reducing the capacity (just in case it’s some local error).
Rotation Speed increase
Yup, happens for me too! Looked into it, I think the second Total Time (VFX) is unnecessary, as we are already feeding time earlier in the logic so it was growing exponentially. Just remove this and increase the rotation value a bit: