#Recreating Celeste's dust particle jump effects

11 messages · Page 1 of 1 (latest)

hazy quest
#

Hello. Me and a friend are making a platformer, and we have spent a few days trying to recreate the dust effect that happens when Madeline jumps or lands in Celeste.

We initially tried to use the GPUParticles2D node, but found that it wasn't really appropriate for the task, since Celeste's particles seem to be generated by some kind of pattern and not really with a particle system such as Godot's.

So, we looked further into it and realized that the effect could be generated by some kind of cellular automata, since the movement of the particles seems to follow some defined pattern.

However, we attempted to analyze the pattern shown in the gif and we don't really grasp it, so we just took the rougher approach of defining a matrix filled randomly with 0's and 1's (for empty and filled cells) and spawning the particles below our character according to that matrix. We repeat that process a few times and then destroy all the particles randomly. It actually looks okay, but we would love to make it more faithful to Celeste's effect, so we would greatly appreciate some guidance.

Thanks!

tribal slate
#

Isn't this just a sprite animation? I can't imagine you need this to be unique everytime, so no need to generate it on the fly.

#

Just draw each stage of the puff in a sprite sheet, maybe half a dozen images to start with, make it an AnimatedSprite and simply play that animation when needed.

#

Celeste might do it dynamically, I don't know, but I don't think anyone would notice.

hazy quest
#

Yeah, we also tried with a sprite sheet and it looks okay too. In fact a lot of platformers just have a sprite animation for the dust effect. We're just really curious about it hahaha

#

And we're pretty much sure that Celeste generates the dust effect dynamically too

tribal slate
#

I would generally err on the side of not overcomplicating something that most people probably wouldn't notice anyway.

#

But if I wanted to do it dynamically, I would probably make it a shader, rather than trying to use particles. Sample from a small noise texture over time, do some math wizardry to deform it in a specific direction.

#

Well to be fair, you probably would want something like that if you had many variations for different surfaces and speeds, at some point spritesheets would become hard to maintain or change.

#

So maybe not so much overcomplicating at that point 😉

hazy quest
#

Using a shader sounds pretty interesting! We'll look into it, but you're right about not overcomplicating, we probably won't bother with it much further hahah