Particles generated at the character's feet are not displaying correctly.

I want to emit dirt particles from the connector at the character’s feet upon landing, but they are not displaying correctly.

(State sequence: Jump → Air → Land)

I am triggering the particle emission during the “Land” state of these three states.

However, the particles do not display at the moment of landing. They only appear when I jump again after having already landed.

If I emit the same particles from a connector other than the one at the feet, they display correctly. Also, changing the position of the foot connector allows them to display. Even raising the particle image itself makes them visible. Particles generated below the tile collision do not display. However, particles that failed to display at landing somehow appear with a delay after jumping, creating a gap between the tile and the character.

What is the specification behind this? I assumed particles do not have collision detection with tiles, but is that actually the case?

A previous topic mentioned that enabling SDF Collision would cause collisions, but the tile settings are currently off. Is there any other setting required to prevent collisions?

This situation would be nice to have the project files so we can see exactly why this could be happening. Would you mind sending in your project to pgmmv-support@gotchagotcha.jp so we can look into why the particles are not working on the land state?

Thank you. I have sent you the project data.

The controls are as follows:

Movement: A, S, D
Attack: J
Jump: K
Dash: Hold Space while moving left or right

Please check and confirm. Thank you.

I checked your project, so thank you for sending it in!

It definitely looks like there’s a bug happening, as there’s nothing in your logic that should be triggering this out of sync with the character motion. Indeed, even on the first jump of a playtest I can see the landing effect.

Additionally, I saw no other triggers in your logic that would cause the effect to play out of sync with character action.

Accordingly, I will be submitting this as a bug investigation.

Thank you for your confirmation. We appreciate your cooperation.

We have identified the cause. This is a specification issue, not a configuration problem.

There are two main causes:

  1. The visible area rectangle is configured with an unusual shape: x=0, y=0, h=0, w=200.
    This rectangle is used for so-called culling, which determines whether particles are displayed when the rectangle is within the screen bounds. Since this rectangle was positioned outside the screen, the particles were not displayed.
    However, when the character jumps, they move upward and come back into the screen bounds, causing the particles to be displayed.

  2. The position of the GPU particles was changed to (-88, 153), and an additional process was applied to move the particles 150px upward using emission_shape_offset = (100,-150).
    This addresses the question of why the particles are not displayed even though the character’s feet are within the screen bounds.
    The GPUParticles2D node itself is positioned at (-88, 153), which places it 153px below the display position (below the ground), effectively moving it outside the screen.

To resolve this, you can either revert the rectangle size in cause ① to its initial value, or in cause ②, stop the double movement process by setting the position to 0,0 and the particle offset to 0. Implementing either of these fixes (or both for correct behavior) will resolve the issue.

2 Likes

Thank you. The settings you provided worked correctly.

I apologize for the trouble caused by my misunderstanding of the configuration.

1 Like