Speed Lines for Motion Blurring

In both comics and animation, fast action is often represented by speed lines, which suggest the distance an object or character has travelled across the camera before its shutter is closed again. Motion blurring is particularly important in animation because it reduces temporal aliasing effects. Its method of generation in vector based cartoon has not been, however, a well addressed problem.

One possible way is to employ temporal antialiasing techniques like stochastic sampling across the time di-mension[19,20] or the recently proposed more efficient technique of Spatio-temporal Filtering [45]. These methods involve considerable computational cost which would not be practical for interactive use unless on high-end machines. 2^D image based techniques have also been proposed[33] which are more efficient. However all these techniques require the resultant picture to be a raster image and therefore might not always be appropriate for use in an interactive vector-based drawing system. In traditional comics, the use of crisp lines and strokes to indicate motion is usually the preferred way. We have therefore implemented a simple method to efficiently generate speed lines based on the traditional approach for blurring cartoon objects.

The traditional technique used by famous animators like Shamus Culhane is to do nothing to the leading edge of the moving object but blur the trailing edge with a trail (which is the same colour as the object) along the direction of motion[18]. Based on this approach, our system generates speed lines as follows. The moving object is a polygon enclosed possibly by skeletal strokes (the polygons inside a skeletal stroke are handled in the same way). First we have to determine which points outlining the polygon make up the trailing edge of the object. For each evenly spaced outlining point then, this question is asked: does a point a very small distance away from it along the direction of the velocity lie inside or outside of the polygon? If it lies inside, the outlining point is on the leading edge, and nothing would be done to it. For points on the trailing edge, each would be attached with a thin triangle the colour of the polygon. The base of the triangle would coincide with the outlining point; the apex would lie at a distance proportional to the speed along the velocity direction.

The spacing of the speed lines now varies with the curvature of the trailing edge, or, to be precise, the sine of the angle 8 between the velocity direction and the tangent of the polygon at the base of the speed line. This variation in spacing is annoying especially at curved trailing edges. To achieve uniform spacing between the resultant speed lines, we have to correct the step size of the speed line base point along the polygon by the factor sin(8). We only draw the next speed line when the accumulated corrected spacing is greater than the specified spacing (Figure 14).

Evenly spaced speed line base points

Direction of Motion

Angle adjusted speed lines base points spacing

Evenly spaced speed line base points

Direction of Motion

Angle adjusted speed lines base points spacing

Figure 15: A keyframe drawing for the animation sequence, The Cat in Skeletal Strokes. The speed lines in this still picture are generated by manually moving the umbrella and the hat. The ones in the animation are derived automatically from object movements.

Figure 14: Adjusting the speed line spacing.

Figure 15: A keyframe drawing for the animation sequence, The Cat in Skeletal Strokes. The speed lines in this still picture are generated by manually moving the umbrella and the hat. The ones in the animation are derived automatically from object movements.

To introduce more variety to speed lines, which is particularly important for static pictures, the spacing and length of the speed lines are given a certain randomness (Figure 15). In fact, there is no reason why speed lines cannot be shapes other than triangles. Why not arbitrary skeletal strokes along curved speed lines? So this is what we have done. To give an object drawn with Skeletal Draw a motion blur, the user only needs to transform the object to a new configuration (position and orientation). Using the specified stroke and speed line spacing, the system would create the speed lines from the new configuration to the old one. If a few intermediate configurations are marked before generating the speed lines, their paths would then be Catmull-Rom splines interpolating the various configurations.

Was this article helpful?

0 0

Post a comment