GpuParticles2d scale changes emission box "y"

Godot Version

4.4.1

Description

I have spike rise effect via sprite(rising spike) and gpuParticles2D, emission is “box”, the box extents is: x: 50, y: 0, z: 1.
At this point all works just fine, spikes are rising with random x shift but same y.
I need them to be random sized so I set display -> scale min: 0.25, max: 0.5 and with size they also change their y. Setting emission shape scale y to 0 doesn’t change anything. Below you can see my spikes without/with scale.
noScale
withScale

Question

Am I missing something or it’s proper behavior and how can I achieve random sized rising spikes using gpuParticles2D with same y for all of them?

They are not changing their y position, their scale is based on the center of the sprite, so lowering the scale reduces from the top and bottom. I don’t think there is a way around this with the default ParticleProcessMaterial, so you may need a custom shader for this.

1 Like