Cascade: Color over Life x axis values can be over 1 even if those values will never actually have an effect

Cascade: Color over Life x axis values can be over 1 even if those values will never actually have an effect. The x axis goes from 0 (life) to 1 (death) but you can still have values over 1 which seems strange. I saw a person who was confused because they were changing the alpha value to blend in and blend out the particles, but the particles were never blending out. The person had the value for blending out the value at x=2 (and the “middle” fully visible value at x=1) so the particles were never blending out (since they were already gone by that point).

This is a bit confusing to have lots of numbers for these “… over Life” functions if they can only work properly within one certain range (0-1) anyway.

Hi cyaoeu,

A test can prove that X-axis values over 1.0 do have an effect on particles in the Color Over Life module. If you look at the screen shots provided, you will see my emitter I set up to spawn one color and change to another color over the life of the particle. First I set the ‘In Val’ for the second point of the Distribution Vector Constant Curve to
1.0:

Here is the result from changing the value from 1.0 to 1.5:

And here is the result from changing the value from 1.0 to 2.0:

As you can see, since 1.0 is the lifetime of the particle, by changing the X-value to 2.0 the color will only be able to transition half-way from Pink to Green.

Maybe “not have an effect” was a bad way of phrasing it. It does have an effect (a bad one). But you proved my point, if you change the In Val to 2 your particles will never be green. Sure it’s possible to “scale” the values using strange values there (instead of using Scale Color/Life which would make more sense), but you’ve esentially got dead values that don’t do what you expect them to.

Is this a workflow that’s actually used in practice though? It doesn’t make much sense to me to just put some random color and then drag the curves out beyond the lifetime of the particle since you could just get the real color you want and put that at x=1 so things make sense.

Like in your case, consider if a user wanted to have green particles at the end and set it up like your last picture and wondering why their particles don’t turn green. Which is exactly what happened with the user who used alpha fade out on x=2 for their value and wondered why the particles weren’t fading out correctly.

I’m just saying that the current system isn’t very helpful to new people. The person I was helping out thought that 1 meant one second (which makes more sense than 1 arbitrarily meaning lifetime of the particle).

If 1 means lifetime it should say lifetime and not 1. (and the same with 0)

Edit: or more specifically 0 should say “birth” and 1 say “death”.

All particle properties rely on some distribution, and you select the appropriate one for the type of data you want to drive your effect.

For OverLife operators, they usually use a curve distribution which is data that changes over another value, generally time. These generally define a property value at some point along the lifetime of a particle or the duration of an emitter.

The tricky part is the fact that a curve distribution is simply a curve that will do something over time; it doesn’t care what type of property it’s driving, which is why you can set the X values to something greater than 1: the curve doesn’t know it should be restricted.

I agree that this can be confusing! When dealing with data types (in this case a curve distribution) that are not connected to the actual property they are driving, the responsibility falls on us as developers to understand that no matter what the curve says, a “ValueOverLife” property is always going to sample the 0.0 - 1.0 spectrum.

Hopefully this helps! For more information about Distributions, I recommend checking out Understanding the Basics of Unreal Engine | Unreal Engine 5.1 Documentation