smoke_title

We strive to bring an element of procedural generation to a lot of the art of Backworlds – this gives us the opportunity to create large amounts of content without spending too much time, but more importantly it gives us the opportunity to animate the art from the way it is generated. As an example, this is an in-development effect regarding a smoke particle.

  The style of Backworlds is very stylistic and flat in order to not be cluttered – we look at a lot of animated video for references. The work for this particle was specifically inspired by the effects in Samurai Jack and the particle effects in the Legend of Zelda: the Wind Waker.

smoke_0The image shows how the cloud was constructed from a spiral of progressively smaller circles with some offset in size and position. An outline is added to the outside of the circles in order to give it contrast.

It would be possible to just generate a bunch of circles, put them on a spiral and figure out the outlines automatically, but a simpler and more flexible way would be to separate the billowy shapes from the basic shapes of the particlesmoke_1

The left piece is a simple shape, a circle connected to an inward spiral. The right is a straight line with rounded offsets – there are several ways to create this but I chose to give a speed to the line tip, accelerate it towards the straight line and generate a new random speed away from the line when the incline got too steep.

In essence, this is the trail of a ball bouncing on a surface with uneven restitution. The result of this is a one-dimensional array of scalar values describing the offsets from the original line at a certain progression – applied to the spiral, it gives a shape like the third one in the picture. Note that it can be applied to any shape, not just a circle.

smoke_2Finally, we can automatically add a background texture and some shape to the line itself.

At this point, the functionality is already pretty helpful since it allows us to dynamically generate seemingly unique smoke particles, but it is easy to do trivial improvements.

By filling in the spiral gradually, we can make the particle appear to grow in detail as it is animated – making it slightly more interesting than a regular fade-in or increase in scale.

smoke_anim