I would like to recreate a fireball effect from Paper Mario in OpenGL, but I am not sure where to start. Here is a video of the effect:
[ame]
https://www.youtube.com/watch?v=PklBETCihr0[/ame]
When the enemy is attacked with the fire flower, there is a large explosion of fire:
This was not achieved via pre-rendered sprites, but instead by blending multiple frames of the following animation together:
My problem is that I can't figure out how the frames were layered together. The beginning of the animation seems to use additive blending, but I have no idea how make the fireball open and break apart the way it does.
Here is the (extremely) rough prototype I created to test additive and subtractive blending:
[ame]
https://www.youtube.com/watch?v=G9KZx743r9A[/ame]
I think it's on the right track, but it's definitely not perfect. Do you have any ideas as to what I might be missing?
Replies
It seems to use additive blending throughout the whole sequence, that's why you get the saturated, overexposed colours.
I don't understand the original texture being greyscale, though. Where does the red, orange and white colours come from?
If I understand the animation behind it, it seems to be standard animated particles.
EDIT: There seems to be some change in scaling too, so the further into the animation, the bigger the particles get.
After reflecting some more, I think it happens like this:
- At the start of the effect, spawn some particles with some random scattering (just a small spread) and random rotation. All these particles are textured with frame 1 from the texture.
- At each frame, scale up the particles by some fixed amount (30% larger, for example), and switch their texture to the next frame. Don't change their location or rotation, just the scale.
The particles should have additive blending.
With just this I think it should look like the original.