Hi,
I created a particle wave that goes up and down at set intervals, similar to the beam in Ghost Busters. Unfortunately, the whole wave also moves on the y-axis. In addition, there are sometimes inexplicable outliers upwards (waves become larger for a short time). And at the start of the effect, the waves are much smaller than after a few seconds. I don’t understand what’s going on here. I hope someone can help me. Thanks in advance.
Best regards,
Felix
The nodes are connected with z-position in update particles. This is due to the rotation. However, it goes up and down in the y direction. Unfortunately, I can’t show it because I can only upload one image.
Morning. I will do my best without having the whole picture of your graph.
-
Y-Axis wave motion :
I would say that by default it is expected as you are using a sine wave:

Now, for a Beam, you can multiply the amplitude of your Sine wave with a value that represents your beam’s length. For this, usually what I like to do is to create a 0-1 value that can be used to sample a curve. This curve is then used to control the profile of my trail/beam.

In Unity 6, this 0-1 value is created for you, and you can use the Get Ratio Over Strip.
From your screenshot, you are adding the Sine Wave as a float to your (0,0,0) vector. Adding a float to a vector means that the float will be added to all components resulting in a diagonal.
You can change the “B” input to a Vector3 by clicking the cogwheel:
This allows you to add your Sine Wave to the desired component.
- Shifting Wave length
I’m not sure what is happening here, and it’s difficult to tell has I can’t see your update context. Now I’m guessing that you might have been using an “Add position” block. If so, this could explain this kind of behaviour as the Update context is executed every frame.
For this kind of position-based motion that is driven by maths, here how I usually tackled it:
- Set the Initial Beam position in the
Initialize Context. In my case, I’m using a Line Sequencer Block.
- Store this Position in a Custom Vector3 Attribute. (Create it in the blackboard and drag and drop it in the Context).
- Create a
Wave thanks to Sine Operator. I’m using the Get Ratio Over Strip as my Sine input.
- Multiply the Sine Wave by my Curve profile.
- Add the Sine Wave to my stored initial position.
- Set the Position.
With this, you can now play with the Size over the Strip length, the Color to get a lively Ghostbuster Beam. Here are some other recipes to make it pop:
-
Using a CurlNoise instead of a Sine Wave:
-
Modulating the Size over the Strip length:
-
Animated Noise on the Size to add details:
-
Use a Gradient to Control Color over the strip’s length:
-
Adding some Stroboscopic Noise on the Emissive:
I hope that this post will help you achieve what you are looking for. Wish you a beautiful day.